تاریخچه مختصری از CPU دسکتاپ چند هسته ای
سخت است که بیش از حد تأکید کنیم که رایانه ها تا چه حد پیشرفت کردند و چگونه تقریباً همه جنبه های زندگی ما را متحول نمودند. از دستگاههای ابتدایی مانند توستر تا دستگاههای پیشرفته مانند فضا پیماها، به سختی میتوانید این دستگاهها را که از نوعی قابلیت محاسباتی استفاده میکنند، پیدا نکنید. در قلب هر یک از این دستگاهها نوعی CPU وجود دارد که مسئول اجرای دستورالعملهای برنامه و همچنین هماهنگی تمام بخشهای دیگری که باعث تیک زدن کامپیوتر میشود. برای توضیح عمیق در مورد طراحی CPU و نحوه عملکرد داخلی پردازنده، این مقاله ی شگفت انگیز را در این بخش سایت رایانو ببینید. با این حال، در این مقاله، تمرکز بر یک جنبه واحد از طراحی CPU است: معماری چند هستهای و نحوه عملکرد آن در CPUهای مدرن.
اگر از یک کامپیوتر دو دهه قبل استفاده نمی کنید، به احتمال زیاد یک CPU چند هسته ای در سیستم خود دارید. این به سیستم های دسکتاپ و سرور با اندازه کامل محدود نمی شود. بلکه دستگاه های موبایل و کم مصرف را نیز شامل می شود. برای ذکر یک مثال رایج، اپل واچ سری 7 از یک CPU دو هسته ای استفاده می کند. با در نظر گرفتن این که این دستگاه کوچکی است که دور مچ دست شما می پیچد. نشان می دهد که نوآوری های مهم طراحی چقدر به افزایش عملکرد رایانه ها کمک می کند.
در بخش دسکتاپ، نگاهی به بررسیهای اخیر سختافزار Steam میتواند به ما بگوید که پردازندههای چند هستهای چقدر بر بازار رایانههای شخصی تسلط دارند.
بیش از 70 درصد از کاربران Steam دارای یک CPU با 4 هسته یا بیشتر هستند. اما قبل از اینکه عمیقتر به تمرکز این مقاله بپردازیم. بهتر است برخی اصطلاحات را تعریف کنیم.
حتی اگر دامنه را به CPUهای رومیزی محدود میکنیم، بیشتر مواردی که مورد بحث قرار میدهیم به طور یکسان در مورد پردازندههای موبایل و سرور در ظرفیتهای مختلف صدق میکنند.
اول از همه، اجازه دهید تعریف کنیم که “هسته” چیست. هسته یک ریزپردازنده کاملاً قسمت مستقل است که قادر به اجرای یک برنامه کامپیوتری است. هسته معمولاً از حساب، منطق، واحد کنترل و همچنین حافظه پنهان و گذرگاه های دیتا تشکیل می شود.
که به آن اجازه می دهد به طور مستقل دستورالعمل های برنامه را اجرا کند.
اصطلاح چند هسته ای به سادگی یک CPU است که بیش از یک هسته را در یک بسته پردازنده ترکیب می کند و به عنوان یک واحد عمل می کند.
این پیکربندی به هسته های منفرد اجازه می دهد تا برخی از منابع مشترک مانند حافظه پنهان را به اشتراک بگذارند و این به سرعت اجرای برنامه کمک می کند. در حالت ایدهآل، انتظار دارید که تعداد هستههای یک CPU دارای مقیاس خطی با عملکرد باشد، اما معمولاً اینطور نیست و چیزی است که بعداً در این مقاله به آن خواهیم پرداخت.
یکی دیگر از جنبه های طراحی CPU که باعث سردرگمی بسیاری از افراد می شود، تمایز بین هسته فیزیکی و منطقی است. هسته فیزیکی به واحد سخت افزار فیزیکی اشاره دارد که توسط ترانزیستورها و مدارهایی که هسته را تشکیل می دهند، انجام وظیفه می نماید. از سوی دیگر، یک هسته منطقی به توانایی اجرای رشته مستقل هسته اشاره دارد. این رفتار توسط تعدادی از عوامل ممکن می شود که فراتر از هسته CPU است و زمان بندی این فرآیند ها به سیستم عامل بستگی دارد. یکی دیگر از عوامل مهم این است که برنامه در حال اجرا باید به گونه ای توسعه یابد که خود را به چند رشته ای تبدیل کند، و این گاهی اوقات می تواند چالش برانگیز باشد زیرا دستورالعمل هایی که یک برنامه واحد را تشکیل می دهند به سختی مستقل هستند.
علاوه بر این، هسته منطقی نگاشت منابع مجازی به منابع هسته فیزیکی را نشان میدهد.
از این رو در صورت بکارگیری یک منبع فیزیکی توسط یک رشته، رشتههای دیگری که به همان منبع نیاز دارند باید متوقف شوند که بر عملکرد تأثیر میگذارد. این بدان معنی است که یک هسته فیزیکی می تواند به گونه ای طراحی شود که به آن اجازه می دهد بیش از یک رشته را به طور همزمان اجرا کند. در حالی که تعداد هسته های منطقی در این مورد، تعداد رشته هایی که می تواند به طور همزمان اجرا کند را نشان می دهد.
تقریباً تمام طراحیهای CPU دسکتاپ از اینتل و AMD به چند رشتهای همزمان دو طرفه (SMT) محدود میشوند، در حالی که برخی از CPUهای IBM تا SMT 8 طرفه را ارائه میدهند. اما این موارد بیشتر در سیستمهای سرور و ایستگاه کاری به چشم میآیند.
هم افزایی بین CPU، سیستم عامل و برنامه کاربردی کاربر بینش جالبی را در مورد اینکه چگونه توسعه این مؤلفه های مستقل بر یکدیگر تأثیر می گذارند ارائه می دهد، اما برای اینکه از آن دور نشویم، این موضوع را به مقاله بعدی واگذار می کنیم.
قبل از CPU های چند هسته ای
نگاهی کوتاه به دوران پیش از چند هستهای به ما این امکان را میدهد تا از میزان پیشرفت خود قدردانی کنیم. یک CPU تک هسته ای همانطور که از نام آن پیداست معمولاً به CPU هایی با یک هسته فیزیکی اطلاق می شود. اولین CPU تجاری موجود Intel 4004 بود که در زمان عرضه در سال 1971 یک شگفتی فنی بود.
این CPU 4 بیتی 750 کیلوهرتز نه تنها در طراحی ریزپردازنده بلکه کل صنعت مدارهای مجتمع را متحول کرد. در همان زمان، پردازنده های قابل توجه دیگری مانند Texas Instruments TMS-0100 برای رقابت در بازارهای مشابه که شامل ماشین حساب ها و سیستم های کنترل بود، توسعه یافتند. از آن زمان، بهبود عملکرد پردازنده عمدتاً به دلیل افزایش فرکانس ساعت و گسترش عرض گذرگاه دیتا/آدرس بود. این امر در طراحی هایی مانند Intel 8086 مشهود است که یک پردازنده تک هسته ای با حداکثر فرکانس ساعت 10 مگاهرتز و پهنای داده 16 بیتی و عرض آدرس 20 بیتی بود که در سال 1979 منتشر شد.
رفتن از اینتل 4004 به 8086 نشان دهنده ی افزایش 10 برابری تعداد ترانزیستورها بود.
با افزایش مشخصات برای نسل های بعدی ثابت ماند. علاوه بر فرکانس معمولی و افزایش عرض دیتا، نوآوریهای دیگری که به بهبود عملکرد CPU کمک میکردند.
شامل واحدهای ممیز شناور اختصاصی، ضربکنندهها و همچنین بهبودها و الحاقات معماری مجموعه دستورالعملهای عمومی (ISA) بود.
ادامه تحقیقات و سرمایه گذاری منجر به اولین طراحی CPU خط لوله در Intel i386 (80386) شد. که به آن اجازه داد چندین دستورالعمل را به صورت موازی اجرا کند.
این با جدا سازی جریان اجرای دستورالعمل به مراحل مجزا حاصل شد و از این رو به عنوان یک دستورالعمل در حال اجرا بود. در یک مرحله، دستورات دیگری را می توان در مراحل دیگر اجرا کرد.
معماری فوق اسکالر نیز معرفی شد.
می توان آن را پیشروی طراحی چند هسته ای در نظر گرفت. پیاده سازی های Superscalar برخی از واحدهای اجرای دستورالعمل را کپی می کنند. که به CPU اجازه می دهد چندین دستورالعمل را همزمان اجرا کند.
زیرا هیچ وابستگی در دستورالعمل های در حال اجرا وجود ندارد. اولین پردازندههای تجاری برای پیادهسازی این فناوری شامل Intel i960CA، سری AMD 29000 و Motorola MC88100 بودند.
یکی از عوامل اصلی افزایش سریع عملکرد CPU در هر نسل، فناوری ترانزیستور بود که باعث کاهش اندازه ترانزیستور شد. این امر به کاهش قابل توجه ولتاژ کاری این ترانزیستورها کمک کرد و به CPUها اجازه داد تا تعداد زیادی ترانزیستور را جمع کنند و سطح تراشه را کاهش دهند، با این وجود حافظه پنهان و سایر شتاب دهنده های اختصاصی را افزایش یافت.
در سال 1999، AMD پردازنده ی کلاسیک و مورد علاقه طرفداران Athlon را منتشر کرد.
که ماهها بعد به فرکانس ساعت حیرتانگیز 1 گیگاهرتز رسید، همراه با تمام فناوریهایی که تا این لحظه در مورد آنها صحبت کردهایم. این تراشه عملکرد قابل توجهی را ارائه کرد. بهتر از این، طراحان CPU به بهینه سازی و نوآوری در ویژگی های جدید مانند پیش بینی شاخه و چند رشته ای ادامه دادند.
اوج این تلاشها منجر به این شد که یکی از برترین پردازندههای تک هستهای رومیزی در زمان خود (و سقف آنچه میتوان از نظر سرعت کلاک به دست آورد)، اینتل پنتیوم 4 تا 3.8 گیگاهرتز کار کرد و از 2 رشته پشتیبانی کرد. با نگاهی به آن دوران، بسیاری از ما انتظار داشتیم فرکانسهای ساعت افزایش یابد و امیدواریم پردازندههایی با فرکانس 10 گیگاهرتز و فراتر از آن کار کنند، اما میتوان ناآگاهی خود را توجیه کرد زیرا کاربر معمولی رایانه شخصی مانند امروز از فناوری اطلاعاتی برخوردار نبود.
افزایش فرکانس ساعت و کوچک شدن اندازه ترانزیستور منجر به طراحی سریعتر میشود، اما این به قیمت مصرف انرژی بیشتر به دلیل رابطه متناسب بین فرکانس و توان انجام میشود. این افزایش توان منجر به افزایش جریان نشتی میشود که به نظر میرسد وقتی تراشهای با 25000 ترانزیستور دارید مشکل چندانی نیست، اما با داشتن تراشههای مدرن که میلیاردها ترانزیستور دارند، مشکل بزرگی ایجاد میکند.
افزایش قابل توجه دما می تواند باعث شکسته شدن تراشه ها شود زیرا گرما نمی تواند به طور موثر دفع شود. این محدودیت در افزایش فرکانس ساعت به این معنی بود که اگر قرار بود پیشرفت معنیداری در ادامه روند بهبود عملکرد CPU انجام شود، طراحان باید در طراحی CPU تجدید نظر کنند.
وارد دوران چند هسته ای شوید
اگر پردازندههای تک هستهای با چندین هسته منطقی را به یک انسان با تعدادی بازو به عنوان هستههای منطقی تشبیه کنیم. آنگاه پردازندههای چند هستهای مانند یک انسان با چند مغز و تعداد بازوهای متناظر خواهند بود. از نظر فنی،داشتن چند مغز به این معنی است که توانایی شما برای تفکر می تواند به طور چشمگیری افزایش یابد. اما قبل از اینکه ذهن ما خیلی دور شود و به شخصیتی که به تازگی تجسم کردهایم فکر کنیم. بیایید یک قدم به عقب برگردیم و به یک طراحی کامپیوتری دیگر که قبل از طراحی چند هستهای بود و آن سیستم چند پردازندهای است نگاه کنیم.
اینها سیستم هایی هستند که بیش از یک CPU فیزیکی و یک حافظه اصلی مشترک و تجهیزات جانبی روی یک مادربرد دارند. مانند بسیاری از نوآوریهای سیستم، این طرحها عمدتاً برای بارهای کاری و برنامههای کاربردی خاص طراحی شدند. که با آنچه در ابررایانهها و سرورها میبینیم مشخص میشوند. این مفهوم هرگز در سطح دسکتاپ مطرح نشد، زیرا عملکرد آن برای اکثر برنامههای کاربردی معمولی بسیار ضعیف بود. این واقعیت که CPU ها باید از طریق گذرگاه های خارجی و RAM ارتباط برقرار می کردند. به این معنی بود که آنها باید با تأخیرهای قابل توجهی مقابله کنند. RAM “سریع” است اما در مقایسه با رجیسترها و حافظه های نهان که در هسته CPU قرار دارند، RAM بسیار کند است. همچنین، این واقعیت که اکثر برنامههای دسکتاپ برای بکارگیری این سیستمها طراحی نشدند. به این معنی بود که هزینه ساخت یک سیستم چند پردازنده برای استفاده خانگی و رومیزی ارزش آن را ندارد.
با وجود مطلب فوق، چون هستههای یک طراحی CPU چند هستهای بسیار نزدیکتر هستند. بر روی یک بسته ساخته شدهاند، گذرگاه سریعتری برای ارتباط دارند.
علاوه بر این، این هستهها حافظههای پنهان مشترکی دارند.
که از حافظههای پنهان جدا هستند و این به بهبود ارتباطات بین هستهای با کاهش تأخیر بهطور چشمگیری کمک میکند. علاوه بر این، سطح انسجام و همکاری اصلی به این معنی است که عملکرد بهتر در مقایسه با سیستمهای چند پردازنده و برنامههای دسکتاپ میتوانند از مزایای بهتری برخودار گردند. در سال 2001 ما شاهد اولین پردازنده چند هسته ای واقعی بودیم. که توسط IBM تحت معماری Power4 آن منتشر شد.
همانطور که انتظار می رفت برای برنامه های ایستگاه کاری و سرور طراحی شده بود. با این حال، در سال 2005، اینتل اولین پردازنده دو هسته ای متمرکز بر کاربر خود را که یک طراحی چند هسته ای بود، منتشر کرد.
در همان سال AMD نسخه خود را با معماری Athlon X2 منتشر کرد.
با کاهش سرعت گیگاهرتز، طراحان مجبور شدند برای بهبود عملکرد CPU ها بر روی نوآوری های دیگر تمرکز کنند. این در درجه اول ناشی از تعدادی بهینه سازی طراحی و بهبودهای کلی معماری بود. یکی از جنبه های کلیدی،طراحی چند هسته ای بود که تلاش می کرد تعداد هسته ها را برای هر نسل افزایش دهد. یک لحظه ی ویژه برای طراحی های چند هسته ای، انتشار سری Core 2 اینتل بود. که به عنوان CPU های دو هسته ای شروع شد و در نسل های بعدی به چهار هسته رسید. به همین ترتیب، AMD با Athlon 64 X2 که یک طراحی دو هسته ای بود و بعداً سری Phenom که شامل طراحی های سه و چهار هسته ای بود، دنبال کرد.
این روزها هر دو شرکت سری پردازنده های چند هسته ای را عرضه می کنند.
سری Core نسل 11 اینتل حداکثر دارای 10 هسته / 20 رشته است. در حالی که سری جدیدتر نسل دوازدهم تا 24 رشته با طراحی ترکیبی که دارای 8 هسته عملکردی است. همچنین از Multi-threading پشتیبانی می کند که 8 هسته را کارآمد می نماید.
در همین حال، AMD قدرت Zen 3 خود را با 16 هسته و 32 رشته دارد. انتظار میرود که این تعداد هستهها افزایش یابد. همچنین با رویکردهای big.LITTLE ترکیب شود، همانطور که خانواده هسته دوازدهم این کار را انجام داد.
علاوه بر تعداد هستهها، هر دو شرکت اندازه حافظه پنهان، سطوح حافظه پنهان و همچنین افزودنهای جدید ISA و بهینهسازیهای معماری را افزایش دادند. این مبارزه برای تسلط کامل روی دسکتاپ منجر به چند ضربه و شکست برای هر دو شرکت شد.
تا به اینجا ما فضای CPU تلفن همراه را نادیده گرفتیم، اما مانند همه نوآوری هایی که از فضایی به فضای دیگر می گذرد، پیشرفت در بخش موبایل که بر کارایی و عملکرد در هر وات تمرکز دارد، منجر به طراحی ها و معماری های بسیار کارآمد CPU شد.
همانطور که توسط تراشه Apple M1 کاملاً نمایان است. CPUهایی که به خوبی طراحی شدند و میتوانند هم پروفایل مصرف انرژی کارآمد و هم عملکرد عالی داشته باشند.
با معرفی پشتیبانی بومی Arm در ویندوز 11، شرکتهایی مانند کوالکام و سامسونگ تضمین میکنند که تلاش کنند، بخشی از بازار لپ تاپ را از بین می برند.
اتخاذ این استراتژی های طراحی کارآمد از بخش کم مصرف و موبایل یک شبه اتفاق نیفتاده است، بلکه نتیجه تلاش مداوم سازندگان CPU مانند اینتل، اپل، کوالکام و AMD برای تنظیم تراشه های خود برای کار در دستگاه های قابل حمل بوده است.
آینده CPU های دسکتاپ چیست؟
همانطور که معماری تک هسته ای تبدیل به یکی از کتاب های تاریخ شد. سرنوشت نهایی معماری چند هسته ای امروزی نیز می تواند این طور باشد. در این میان، به نظر می رسد هر دو شرکت اینتل و AMD رویکردهای متفاوتی برای متعادل سازی عملکرد و بهره وری انرژی دارند.
جدیدترین پردازندههای دسکتاپ اینتل (معروف به Alder Lake) معماری منحصربهفردی را اجرا میکنند. هستههای با کارایی بالا را با هستههای کارآمد ترکیب میکند. در پیکربندی که به نظر میرسد مستقیماً از بازار پردازندههای موبایل خارج شد با بالاترین مدل دارای عملکرد بالای 8 هستهای. /16-thread علاوه بر یک بخش کم مصرف 8 هسته ای که در مجموع 24 هسته دارد.
از سوی دیگر، به نظر میرسد که AMD برای تولید هستههای بیشتر به ازای هر CPU تلاش میکند.
اگر شایعات را باور کنیم، این شرکت موظف است یک CPU دسکتاپ عظیم 32 هستهای را در معماری نسل بعدی Zen 4 خود عرضه کند، که زیبا به نظر میرسد. در این مرحله قابل باور است که ببینیم چگونه AMD به معنای واقعی کلمه پردازندههای خود را با گروهبندی مجتمعهای هستهای متعدد میسازد، که هر کدام دارای چندین هسته در یک قالب هستند.
با این حال، خارج از شایعات، AMD معرفی چیزی را که کش 3D-V می نامد تایید کرد. که به آن اجازه می دهد حافظه پنهان بزرگی را در بالای هسته پردازنده قرار دهد. این پتانسیل کاهش تأخیر و افزایش شدید عملکرد را دارد. این پیادهسازی شکل جدیدی از بستهبندی تراشه را نشان میدهد و حوزهای از تحقیقات است که پتانسیل زیادی برای آینده دارد.
با این حال، از جنبه ی منفی، فناوری ترانزیستور همانطور که می دانیم در حال نزدیک شدن به مرز خود است زیرا همچنان شاهد کوچک شدن اندازه ها هستیم.
در حال حاضر، 5 نانومتر، به نظر می رسد لبه ی برتر باشد و حتی با وجود اینکه شرکت هایی مانند TSMC و سامسونگ آزمایش روی 3 نانومتر را اعلام کردند. به نظر می رسد که ما خیلی سریع به مرز 1 نانومتری نزدیک می شویم. در مورد آنچه پس از آن در پی خواهد آمد، باید منتظر بمانیم و ببینیم.
اکنون تلاش زیادی برای تحقیق در مورد جایگزینهای مناسب برای سیلیکون انجام میشود. مانند نانو لولههای کربنی که کوچکتر از سیلیکون هستند و میتوانند به ادامه کاهش اندازه برای مدتی طولانیتر کمک کنند. حوزه ی دیگری از تحقیقات مربوط به نحوه ساختار و بسته بندی ترانزیستورها در قالب ها است. مانند انبار کش V-cache AMD و بسته بندی Foveros-3D اینتل که می تواند راه طولانی را برای بهبود یکپارچگی IC و افزایش عملکرد داشته باشد.
حوزه دیگری که نوید تحول در محاسبات را می دهد، پردازنده های فوتونیک است.
برخلاف فناوری ترانزیستور نیمه هادی سنتی که در فیلد الکترونیک طراحی می شود. پردازنده های فوتونی با نور یا فوتون به جای الکترون کار می کنند. با توجه به خواص نور با مزیت امپدانس بسیار پایین آن در مقایسه با الکترون هایی که باید از طریق سیم کشی فلزی حرکت کنند، این پتانسیل به طور چشمگیری دارد. بهبود سرعت پردازنده به طور واقع بینانه، شاید ده ها سال با ساخت کامپیوترهای نوری کامل فاصله داریم. اما در چند سال آینده می توانیم کامپیوترهای ترکیبی را ببینیم که CPU های فوتونیکی را با مادربردهای الکترونیکی سنتی و لوازم جانبی ترکیب می کنند تا عملکرد مطلوب ما را افزایش دهند.
Lightmatter، LightElligence و Optalysys تعدادی از شرکتهایی هستند که در حال کار بر روی سیستمهای محاسباتی نوری هستند. مطمئناً بسیاری دیگر در پسزمینه تلاش میکنند تا این فناوری را به جریان اصلی برسانند.
یکی دیگر از پارادایمهای محاسباتی محبوب و در عین حال بهطور چشمگیری متفاوت، الگوی رایانههای کوانتومی است که هنوز در مراحل ابتدایی خود است، اما میزان تحقیق و پیشرفت در آنجا فوقالعاده است.
اولین پردازندههای 1-Qubit چندی پیش معرفی شدند و با این حال یک پردازنده 54-Qubit توسط Google در سال 2019 معرفی شد و ادعا کرد که برتری کوانتومی دارد. روشی جالب برای این که پردازنده ی آنها میتواند کاری را انجام دهد که یک CPU سنتی در یک زمان واقعی نمیتواند انجام دهد.
باید عنوان نمود، تیمی از طراحان چینی در سال 2021 از ابرکامپیوتر 66 کیوبیت خود رونمایی کردند.
شرکت هایی مانند IBM که تراشه محاسبات کوانتومی 127 کوانتومی خود را اعلام کردند.
مایکروسافت تلاش های خود را برای توسعه رایانه های کوانتومی اعلام کرد.
بنابراین رقابت همچنان داغ می شود.
حتی اگر به این زودی ها هیچ یک از این سیستم ها را در بازیهای رایانه ای خود بکار نبرید. اما همیشه این امکان وجود دارد که حداقل برخی از این فناوری های جدید به هر شکلی وارد فضای مصرف کنندگان شوند.
پذیرش جریان اصلی فناوری های جدید به طور کلی یکی از راه های کاهش هزینه ها و هموار سازی راه برای سرمایه گذاری بیشتر در فناوری های بهتر است.
این تاریخچه مختصری از پردازندههای چند هستهای، طراحیهای قبلی و الگوهای آیندهنگر بود که میتوانستند جایگزین پردازندههای چند هستهای که امروز میشناسیم، شوند.
منبع:
TECHSPOT
رایانو