امروزه اکثر محصولات الکترونیکی که در اطرافمان میبینیم از CPU استفاده میکنند، البته استفاده از پردازندهها تنها محدود به این دستگاهها نمیشود و حتی فضاپیماها هم از آنها بهره میبرند. با این حال، کامپیوترها و گوشیهای هوشمند مرسومترین دستگاههایی هستند که ما از آنها استفاده میکنیم و از پردازنده مرکزی بهره میبرند. این پردازندهها پیکربندیهای متنوعی دارند، اما چندین سال میشود که دیگر خبری از پردازندههای تک هستهای نیست و تنها با پردازنده های چند هسته ای روبهرو هستیم. اما این پردازندهها از کجا آمدهاند، چه مسیری را طی کردهاند و چه آیندهای در انتظار آنهاست؟
CPU قلب یک دستگاه محسوب میشود و کارهای مختلفی از اجرای دستورالعملها گرفته تا هدایت سایر قطعات را برعهده دارد. اگر کامپیوتری که از آن استفاده میکنید، عمری کمتر از دو دهه داشته باشد، به احتمال بسیار زیاد از پردازندهای چند هستهای بهره میبرد، البته این موضوع تنها درباره این محصولات صادق نیست و حتی گوشیهای هوشمند و دستگاهی مانند اپل واچ سری 7 هم تراشههای چند هستهای دارند. اندازه کوچک اپل واچ، ساعت هوشمندی که اغلب اوقات روی مچ کاربران قرار دارد، نشان میدهد که معماری چند هستهای تا چه اندازه مهم است و میتواند چه تاثیری روی عملکرد دستگاهها داشته باشد.
حکمرانی پردازنده های چند هسته ای در دنیای PC
تعداد هستههای پردازندهها در سالهای اخیر افزایش داشته و حتی اینتل در جدیدترین نسل از پردازندههای Core موسوم به آلدر لیک از 16 هسته استفاده کرده است. با این وجود، طبق گزارشی که Steam ماهانه منتشر میکند، اکثر کاربران از پردازندههای 4 یا 6 هستهای استفاده میکنند و سهم پردازندههای 8 هستهای هم رو به افزایش است، با این حال پردازندههای 10، 12 و 16 هستهای هنوز سهم کمی در بازار دارند و مدتی طول میکشد که به جریان اصلی تبدیل شوند.
قبل از اینکه بیشتر وارد جزییات شویم، باید بگوییم که در این مقاله با پردازندههای دسکتاپ سروکار داریم، با این حال اکثر گفتهها تفاوتی با پردازندههای موبایل و سرور ندارند و برای آنها هم صادق است.
اول از همه بیایید به سراغ خود هسته برویم و آن را تعریف کنیم. هسته یا Core، یک ریزپردازنده کاملا مستقل است که میتواند برنامههای کامپیوتری را اجرا کند. یک هسته معمولا شامل بخش محاسبات، منطق، واحد کنترل، کش و همچنین باسهای دیتا میشود که به آن اجازه میدهند بطور مستقل دستورالعملهای برنامهها را اجرا کند.
یک پردازنده چند هسته ای به پردازندهای گفته میشود که درونش بیش از یک هسته دارد و این هستهها با همدیگر به صورت یک واحد کار میکنند. این پیکربندی به هستهها اجازه میدهد که برخی منابع رایج مانند کش را با یکدیگر به اشتراک بگذارند که چنین کاری به افزایش سرعت اجرای برنامهها کمک میکند. با توجه به این موضوع، احتمالا تصور میکنید که هرچقدر تعداد هستهها بیشتر باشد، برنامهها سریعتر اجرا میشوند. اما باید بگوییم همیشه چنین چیزی صادق نیست و تعداد هستههای بالاتر نمیتواند بطور قطع عملکرد بالاتر را تضمین کند.
یکی از مباحث در زمینه طراحی CPU که میتواند کاربران را سردرگم کند، تفاوت میان هسته منطقی و فیزیکی است. یک هسته فیزیکی به واحد سخت افزاری فیزیکی اشاره دارد که از ترانزیستورها و مدارها تشکیل شده است. اما در سوی مقابل، هسته منطقی به توانایی اجرای رشته یا ترد (Thread) مستقل هسته اشاره دارد. البته این رفتار تنها وابسته به خود هسته CPU نیست و عوامل دیگری هم در آن نقش دارند که برای مثال میتوان به سیستم عامل برای زمانبندی این پردازشها اشاره کرد.
یکی دیگر از این عوامل، توسعه برنامه به گونهای است که بتواند از حالت چند ریسمانی یا Multithreading است. این ویژگی چالشبرانگیز است چرا که دستورالعملهایی که یک برنامه واحد را میسازند، به سختی مستقل هستند.
علاوه بر این، یک هسته منطقی نشاندهنده نگاشت منابع مجازی به منابع هسته فیزیکی است، بنابراین اگر یک منبع فیزیکی توسط یک رشته استفاده شود، رشتههای دیگر که به همین منبع نیاز دارند، باید فعالیتشان را متوقف کنند که روی عملکرد تاثیر منفی دارد. بنابراین یک هسته فیزیکی باید به گونهای طراحی شود که امکان اجرای همزمان بیش از یک رشته را فراهم کند. در این حالت تعداد هستههای منطقی نشاندهنده تعداد رشتههایی است که میتواند بطور همزمان اجرا کند.
تقریبا طراحی تمام CPUهای اینتل و AMD به گونهای است که به چند ریسمانی همزمان دو طرفه (SMT) محدود میشود، در حالی که برخی پردازندههای IBM از SMT هشت طرفه هم پشتیبانی میکند که اغلب در سرورها و سیستمهای ورکاستیشن استفاده میشوند. البته عملکرد CPU تنها به خودش مربوط نمیشود و سیستم عامل به همراه برنامه در حال استفاده هم روی آن تاثیر دارند.
دوران پیش از CPUهای چند هستهای
همانطور که میتوان حدس زد، از همان ابتدا با پردازنده های چند هسته ای روبهرو نبودهایم و مدتی طول کشیده تا مهندسان به چنین سبک طراحی دست پیدا کنند. پیش از آنها، با پردازندههای تک هستهای روبهرو بودیم که تنها یک هسته فیزیکی داشتند. اولین پردازندهای که بطور تجاری عرضه شد، اینتل 4004 بود که سال 1971 از راه رسید.
این پردازنده 750 کیلوهرتزی نه تنها طراحی ریزپردازنده را متحول کرد، بلکه انقلابی در کل صنعت مدار مجتمع ایجاد کرد. تقریبا در همان زمانها، پردازندههای قابل توجهی دیگری هم از راه رسیدند که برای مثال میتوان به TMS-0100 شرکت «تگزاس اینسترومنت» اشاره کرد. از آن زمان تا به امروز، عملکرد پردازندهها به لطف افزایش فرکانس و پهنای باند باس بهبود پیدا کرده است. این موضوع در اینتل 8086 مشهود بود؛ پردازندهای که در سال 1979 از راه رسید و حداکثر فرکانس 10 مگاهرتز داشت.
اینتل با پردازنده 4004 دنیای ریزپردازندهها را متحول کرد
اینتل در پردازنده 8086 نسبت به 4004، از 10 برابر ترانزیستور بیشتر استفاده کرد که البته برای چندین نسل تعداد ترانزیستورها تغییری نکرد و مشخصات فنی بهبود داشتند. در کنار بهبود فرکانس و پهنای باند دیتا، موارد دیگری مانند واحدهای اختصاصی نقطه شناوری و بهبودهای مجموعه دستورالعمل (ISA) منجر به بهبود عملکرد CPUها شدند.
ادامه تحقیق و توسعه شرکتها و البته افزایش سرمایهگذاریها باعث خلق طراحی پردازنده اینتل i386 شد که امکان اجرای موازی چندین دستورالعمل را فراهم میکند. چنین دستاوردی با جداسازی جریان اجرای دستورالعمل به مراحل مجزا بدست آمد، بنابراین زمانی که یک دستورالعمل در یک مرحله اجرا میشد، امکان اجرای دستورالعملهای دیگر در مراحل دیگر وجود داشت.
در آن سالها معماری سوپراسکالر هم معرفی شد که میتوان آن را پیش زمینهای برای طراحی چند هستهای دانست. سوپراسکالر برخی واحدهای اجرای دستورالعمل را کپی میکند که امکان اجرای چندین دستورالعمل بطور همزمان را به CPU میدهد. اینتل i960CA، پردازندههای سری 29000 شرکت AMD و موتورولا MC88100 تعدادی از اولین پردازندههای تجاری با این فناوری هستند.
یکی از دلایل اصلی افزایش عملکرد پردازندهها در هر نسل، پیشرفت فناوری ترانزیستورها بود که امکان کوچک کردن اندازه آنها را فراهم کرد. همین پیشرفتها باعث کاهش چشمگیر ولتاژ عملیاتی شد و همچنین CPUها به تعدادی بسیا بیشتری ترانزیستور مجهز شدند. علاوه بر این، اندازه کلی پردازندهها کاهش یافت، میزان حافظه کش بیشتر شد و شتابدهندههای اختصاصی برای آنها درنظر گرفته شد.
در سال 1999 شرکت AMD پردازنده محبوب «اتلون» (Athlon) را روانه بازار کرد که فرکانس 1 گیگاهرتز را در اختیار کاربران قرار میداد و تمام فناوریهای بالا را داشت. این تراشه عملکرد فوقالعادهای داشت، اما این موضوع مانع از پیشرفت در این صنعت نشد و شرکتها به بهینهسازی و نوآوریهایشان ادامه دادند.
تمام این تلاشها منجر به تولید پردازنده تک هستهای شد که موفقیتی بزرگ در آن زمان به حساب میآمد. این پردازنده، اینتل پنتیوم 4 بود که حداکثر فرکانسی برابر 3.8 گیگاهرتز داشت و همچنین از 2 رشته پشتیبانی میکرد. در آن زمان همین افزایش فرکانسها باعث میشد که فکر کنیم شرکتها به سمت فرکانسهای 10 گیگاهرتزی هم میروند، اما این موضوع به ضرر کاربران تمام میشد.
با این حال فرکانس پردازندهها افزایش پیدا کرد و اندازه ترانزیستورها هم کوچکتر شد که تمام آنها منجر به افزایش عملکرد CPUها شد، اما در این میان یک مشکل وجود داشت: افزایش مصرف انرژی بخاطر ارتباط میان توان و فرکانس. این افزایش توان نتیجهاش افزایش نشتی جریان بود. اگرچه چنین موضوعی برای یک پردازنده با 25 هزار ترانزیستور مشکل بزرگی نیست، اما چیپهای مدرن که از میلیاردها ترانزیستور بهره میبرند، با مشکل بزرگی روبهرو میشوند.
افزایش فرکانس باعث افزایش دمای پردازنده میشود که همین مشکل در صورتی که گرما به درستی و بطور موثر پخش نشود، آسیب به CPU را در پی دارد. همین محدودیت در فرکانس باعث شد که شرکتها به فکر طراحی جدیدی برای پردازندهها باشند تا همچنان بتوانند عملکردشان را بهبود دهد.
ورود به دوره پردازنده های چند هسته ای
اگر پردازندههای تک هستهای با چندین هسته منطقی را یک انسان درنظر بگیریم، فردی میشود که یک مغز و چندین بازو دارد. اما در پردازندههای چند هستهای موضوع متفاوت است و برای مقایسه با انسان، باید فردی درنظر گرفته شود که چندین مغز و چندین بازو داشته باشد. این موضوع به معنای آن است که قدرت تفکرتان بطور چشمگیری افزایش پیدا میکند. اما قبل از اینکه به سراغ پردازنده های چند هسته ای برویم، بیایید نگاهی به سیستمهای چند پردازندهای داشته باشیم.
این سیستمها بیش از یک CPU فیزیکی دارند و منابع و حافظه را از طریق یک مادربورد با یکدیگر به اشتراک میگذارند. مانند اکثر سیستمهای خلاقانه، این طراحی هم برای سرورها و ابرکامپیوترها ایجاد شد، اما به علت عملکرد نامناسبی که داشت، هیچوقت بطور عمده وارد دنیای کامپیوترهای مصرفی نشد. این سیستمها باید از طریق باسها و رم خارجی با یکدیگر ارتباط برقرار کنند که این موضوع منجر به تاخیر بالایی میشود.
اگرچه رم سرعت بالایی دارد، اما در مقایسه با رجیسترها و همچنین حافظه کش که در هسته CPU قرار دارند، سرعتش بسیار پایینتر است. علاوه بر این، اکثر برنامههای دسکتاپ به شکلی نوشته نشدهاند که بتوانند از چنین سیستمهایی استفاده کنند، بنابراین این سبک طراحی برای سیستمهای خانگی کاربردی ندارد.
در مقابل، با CPUهای چند هستهای روبهرو هستیم که تمام هستهها روی یک پکیج قرار میگیرند و باسهای سریعتری برای برقراری ارتباط با یکدیگر دارند. علاوه بر این، این هستهها از کش اشتراکی بهره میبرند که از کش اختصاصی هرکدام از هسته مجزا است و با کاهش چشمگیر تاخیر، به ارتباط میان هستهای کمک میکند. در نهایت چنین سبک طراحی عملکرد بسیار بهتری نسبت به سیستمهای چند هستهای دارد و برنامههای کامپیوتر بهتر میتوانند از آن استفاده کنند.
در سال 2001، اولین پردازنده چند هستهای واقعی دنیا با معماری Power4 از سوی IBM عرضه شد و همانطور که انتظار میرود، برای ورکاستیشنها و سرورها مورد استفاده قرار گرفت. اما مدت زیادی طول نکشید تا اینتل چنین سبک طراحی را برای پردازندههای مصرفی استفاده کرد. در سال 2005، اینتل اولین پردازنده دو هستهای خود را برای مصرفکنندگان عادی عرضه کرد. در همان سال AMD هم پردازندههایش را با معماری «اتلون X2» در اختیار کاربران قرار داد.
با کاهش رقابت در زمینه فرکانس، شرکتها روی نوآوریهای دیگری برای بهبود عملکرد CPU تمرکز کردند که نتیجهاش، چندین بهینهسازی طراحی و بهبودهای کلی معماری بود. یکی از جنبههای اصلی طراحی چند هستهای، افزایش تعداد هستهها در هر نسل بود. اینتل با پردازندههای سری Core 2 شروع به عرضه CPUهای دو هستهای کرد و به مرور زمان تعداد آنها را افزایش داد و شاهد عرضه پردازندههای چهار هستهای بودیم. رقیب اینتل یعنی AMD هم چنین مسیری را پیش گرفت و پردازندههای اتلون 64 X2 با طراحی دو هستهای از راه رسیدند و CPUهای Phenom شامل طراحیهای سه و چهار هستهای میشدند.
اینتل با Core 2 و AMD با اتلون 64 X2 وارد بازار پردازندههای چند هستهای شدند
حالا در جدیدترین پردازندههای این کمپانیها با هستههای بسیار بیشتری روبهرو هستیم. پردازندههای نسل یازدهم Core اینتل حداکثر از 10 هسته و 20 رشته بهره میبرند و در پردازندههای نسل دوازدهم اینتل موسوم به Alder Lake شاهد استفاده از حداکثر 24 رشته هستیم. این پردازندهها از معماری هیبریدی بهره میبرند و در بالاترین نسخه خود دارای 8 هسته قدرتمند و 8 هسته کممصرف هستند که در مجموع تعداد هستهها را به 16 عدد میرساند.
در کنار افزایش تعداد هستهها، این شرکتها میزان حافظه و سطح کش را هم در CPUهای خود افزایش دادهاند و همچنین با افزونههای ISA جدید و بهینهسازیهای معماری روبهرو هستیم.
تا به اینجای کار از پردازنده های چند هسته ای دسکتاپ حرف زدیم و اشارهای به CPUهای مخصوص لپتاپ نداشتیم، اما مانند تمام نوآوریها، این پردازندهها هم پیشرفتهای چشمگیری داشتهاند. در این بخش شرکتها روی توازن میان مصرف انرژی و عملکرد تمرکز دارند که نتیجهاش دستیابی به پردازندهها با مصرف انرژی بسیار بهینه شده است.
برای مثال میتوان به تراشه اپل سیلیکون M1 اشاره کرد که در کنار بهرهوری انرژی بالا، عملکرد فوقالعادهای هم دارد. البته کوپرتینوییها چیپهای M1 پرو و مکس را هم معرفی کردهاند که در رده بالاتری نسبت به M1 قرار میگیرند. البته اپل در این زمینه تنها نیست و ویندوز 11 بطور بومی از معماری Arm پشتیبانی میکند که نتیجهاش ورود تراشههای کممصرف و قدرتمند کوالکام و سامسونگ به بازار لپتاپهای ویندوزی خواهد بود.
اگرچه هم اکنون با چندین تراشه با مصرف انرژی بهینه روبهرو هستیم، اما چنین موفقیتی یک شبه بدست نیامده و نتیجه سالها تلاش سازندگان CPU مانند اینتل، اپل، کوالکام و AMD است. در سالهای آینده هم این شرکتها به نوآوری در این حوزه ادامه خواهند داد و شاهد پردازندههای مخصوص لپتاپ بهینهتر خواهیم بود تا در کنار عملکرد مناسب، شارژدهی بالایی را هم برای کاربران این محصولات به ارمغان بیاورند.
آینده پردازندههای دسکتاپ
همانطور که پردازندههای تک هستهای به تاریخ پیوستهاند، احتمالا روزی چنین سرنوشتی هم در انتظار پردازنده های چند هسته ای خواهد بود. اما پیش از اینکه چنین روزی را ببینیم، شاهد بهینهسازیهایی در این طراحیها خواهیم بود. در حقیقت شرکتهای اینتل و AMD رویکرد متفاوتی را برای ایجاد تعادل میان عملکرد و بهرهوری انرژی در پردازندههایشان در پیش گرفتهاند.
جدیدترین پردازندههای دسکتاپ اینتل یا همان آلدر لیک، از طراحی منحصر بهفردی بهره میبرند که شامل ترکیبی از هستههای قدرتمند و کممصرف میشود. در حقیقت اینتل برای این سبک طراحی از تراشههای موبایل و معماری big.LITTLE الهام گرفته است. بالاترین عضو این خانواده از 8 هسته قدرتمند با 16 رشته و 8 هسته کممصرف بهره میبرد که تعداد کل رشتهها را به 24 عدد میرساند.
در مقابل اینتل، AMD قرار دارد که ظاهرا هنوز اعتقادی به معماری هیبریدی ندارد، با این حال همچنان میخواهد تعداد هستههای پردازندههایش را افزایش دهد. طبق شایعات، نسل بعدی CPUهای دسکتاپ این کمپانی با معماری Zen 4 به 32 هسته مجهز میشوند، اما نمیدانیم AMD چگونه میخواهد این هستهها را در یک دای (Die) قرار دارد و از چه طراحی استفاده کند.
در کنار شایعات، خود AMD اطلاعات رسمی درباره پردازندههای آیندهاش اعلام کرده که یکی از آنها، فناوری کش «3D-V» است که امکان قرارگیری میزان بالایی کش در بالای هسته پردازنده را فراهم میکند. این رویکرد منجر به کاهش میزان تاخیر و همچنین افزایش چشمگیر عملکرد CPU میشود. این فناوری همچنین منجر به شکل جدیدی از قرارگیری هستهها روی دای میشود و پتانسیل زیادی برای آینده دارد.
در مقابل تمام رویکردها، با یک مشکل روبهرو هستیم: اندازه ترانزیستورها. اندازه ترانزیستور با توجه به دانش کنونیمان یا آنطور که آنها را میشناسیم، در حال نزدیک شدن به یک محدودیت است و نمیتوانیم آنها را کوچکتر کنیم. در حال حاضر با پردازندههای 5 و 4 نانومتری روبهرو هستیم و شرکتهای TSMC و سامسونگ روی لیتوگرافی 3 نانومتری کار میکنند. در ادامه با ترانزیستورهای کوچکتر و حداکثر 1 نانومتری روبهرو میشویم، اما بطور دقیق نمیدانیم بعد از آن چه چیزی در انتظار این صنعت است.
در حال حاضر تلاشها معطوف به پیدا کردن جایگزینی برای سیلیکون است که یکی از آنها، نانولولههای کربنی است که کوچکتر از سیلیکون هستند و میتوان برای مدت طولانیتری روی کاهش ابعاد آنها کار کرد. یکی دیگر از بخشهایی که پژوهشگران روی آنها تمرکز کردهاند، پیکربندی ترانزیستورها و نحوه قرارگیری آنها درون دایها است که برای مثال میتوان به فناوری V-Cache شرکت AMD و بستهبندی Foveros-3D شرکت اینتل اشاره کرد که میتوانند منجر به بهبود ادغام IC و همچنین افزایش عملکرد شوند.
یکی دیگر از پخشهایی که میتواند دنیای محاسبات را متحول کند، پردازندههای فوتونیک است. برخلاف فناوری ترانزیستور نیمهرسانا که حول الکترونیک است، پردازندههای فوتونیک بجای الکترونها از نور یا فوتونها استفاده میکنند. با توجه به ویژگیهای نور با مزیت امپدانس بسیار پایینتر در مقایسه با الکترونها که باید از سیمهای فلزی عبور کنند، سرعت پردازندهها افزایش چشمگیری پیدا میکند.
اگر بخواهیم واقعبینانه به موضوع نگاه کنیم، احتمالا دهها سال با ساخت کامپیوترهای نوری فاصله داشته باشیم، اما احتمالا در چندین سال آینده میتوانیم کامپیوترهای هیبریدی را ببینیم که CPUهای فوتونیک را با مادربوردهای الکترونیکی سنتی و سایر تجهیزات ترکیب میکند تا عملکرد مطلوبی را در اختیارمان قرار دهند.
در حال حاضر چندین شرکت روی سیستمهای محاسباتی نوری کار میکنند که برای مثال میتوان به «Lightmatter» و «LightElligence» اشاره کرد. البته کمپانیهای دیگری هم در این زمینه مشغول فعالیت هستند تا این فناوری را بطور تجاری روانه بازار کنند.
یکی دیگر از سیستمهایی که پژوهشگران بطور جدی روی آن کار میکنند، کامپیوترهای کوانتومی هستند که رویکرد متفاوتی دارند و سالها با رواج این سیستمها فاصله داریم. البته در سالهای اخیر پیشرفتهای زیادی در این زمینه صورت گرفته است. اولین پردازندههای 1 کیوبیتی در گذشته نه چندان دور معرفی شدند و یک پردازنده 54 کیوبیتی هم در سال 2019 از سوی گوگل معرفی شد.
رقابت در دنیای کامپیوترهای کوانتومی بسیار فشرده است و برای مثال یک تیمی از طراحان چینی از سوپرکامپیوتر 66 کیوبیتی خود در سال 2021 رونمایی کردند و پس از آن کمپانیهایی مانند IBM تراشه محاسبات کوانتومی 127 کیوبیتی خود را معرفی کردند. گوگل و مایکروسافت هم در این زمینه مشغول فعالیت هستند.
اگرچه شانس کمی برای استفاده از این فناوریها در سیستمهای خانگی در آینده نزدیک وجود دارد، اما در نهایت یکی از این تکنولوژیهای نوین به دست مصرفکننده عادی هم میرسد. استفاده گسترده از فناوریهای نوین، منجر به کاهش هزینههای آنها میشود و شرکتها شروع به سرمایهگذاری روی نسل بعدی آنها میکنند.
در این مطلب سعی کردیم نگاهی مختصر به تاریخچه پردازنده های چند هسته ای داشته باشیم و همچنین چندین پیشبینی برای آینده پردازندههای دسکتاپ ارائه کنیم. اگر میخواهید بیشتر با CPU آشنا شوید، پیشنهاد میکنیم مطلب آناتومی CPU را بخوانید. در این مطلب میدونی هم میتوانید بطور کامل با رایانش کوانتومی آشنا شوید.