واحد پردازش مرکزی (CPU) عنصری حیاتی در هر کامپیوتر محسوب میشود و تمامی محاسبات و دستوراتی را که به سایر اجزای کامپیوتر و تجهیزات جانبی آن منتقل میشود، مدیریت میکند. تقریباً تمام وسایل الکترونیکی و گجتهاییها که استفاده میکنید؛ از دسکتاپ و لپتاپ و گوشی گرفته تا کنسولهای گیمینگ و ساعتهای هوشمند، همه و همه به واحدی برای پردازش مرکزی مجهز هستند؛ در واقع این واحد، پایه و اساسی برای کامپیوترها به حساب میآید که بدون آن، سیستم روشن نمیشود، چه برسد به اینکه قابل استفاده باشد. سرعت بالای واحد پردازش مرکزی تابعی از دستور ورودی است و اجزای کامپیوترها تنها در صورتی که به این واحد متصل باشند، قدرت اجرایی پیدا میکنند.
ازآنجاکه واحدهای پردازش مرکزی، دادههای تمام قسمتهای کامپیوتر را بهطور همزمان مدیریت میکنند، ممکن است با افزایش حجم محاسبات و پردازشها، کُند عمل کند یا حتی با بالا رفتن حجم کاری، از کار بیفتد یا به اصطلاح کِرَش کند. امروزه رایجترین واحدهای پردازش مرکزی موجود در بازار از قطعات نیمههادی در مدارهای مجتمع تشکیل شدهاند که در انواع مختلفی به فروش میرسند و تولیدکنندگان پیشرو در این صنعت نیز، AMD و Intel هستند که از ۵۰ سال پیش تا به امروز در این حوزه با هم رقابت میکنند.
پردازنده چیست؟
تعریف کلی ویکی پدیا:
واحد پردازش مرکزی (به انگلیسی: Central processing unit) یا همان پردازندهٔ مرکزی، پردازندهٔ اصلی، پردازنده به اختصار سیپییو (به انگلیسی:CPU)، یک مدار الکترونیکی است که دستورالعملهایی را اجرا میکند که یک برنامهٔ رایانهای را تشکیل میدهند. واحد پردازندهٔ مرکزی، اعمال اصلی محاسباتی، منطقی، کنترل و ورودی/خروجی (input/output) را انجام میدهد. این اعمال توسط دستورالعملهای برنامه مشخص میشوند. آنچه که ذکر شد تفاوت بسیاری با اجزای خارجی، نظیر: حافظهٔ اصلی و مدار ورودی/خروجی و پردازندههای اختصاصی نظیر واحد پردازندهٔ گرافیکی (graphics processing units) دارد.[۱]
شکل، طراحی و پیادهسازی CPUها در طول زمان تغییر کردهاست، اما عملیات پایهای آنها تقریباً بدون تغییر باقی ماندهاست. اجزای اصلی یک CPU عبارتاند از: واحد منطق و محاسبه (Arithmetic logic unit) که عملیات حسابی و منطقی را انجام میدهد، رجیسترهای (ثباتهای) پردازنده که برای ALU عملوند فراهم میکنند و نتایج عملیات را ذخیره میکنند، و یک واحد کنترل که عمل واکشی دستورالعملها از حافظه و اجرای آنها را با هدایت کردن عملیات هماهنگ ALU، رجیسترها و سایر اجزا سازماندهی میکند.
اکثر CPUهای جدید، روی ریزپردازندههای مدار مجتمع (integrated circuit)، با یک یا بیش از یک CPU، روی یک تراشهٔ IC نیمهرسانا اکسید فلز (metal-oxide-semiconductor) پیادهسازی میشوند. تراشههای ریزپردازندهها که دارای چندین CPU هستند، پردازندههای چندهستهای نام دارند. میتوان CPUهای فیزیکی منفرد، با نام هستههای پردازنده را نیز چندریسمانی (Multithreading) کرد تا CPUهای منطقی یا مجازی بیشتری به وجود آید.
یک آیسی که حاوی یک CPU است، ممکن است دارای حافظه، رابطهای محیطی، و سایر اجزای یک کامپیوتر باشد؛ این ابزارهای مجتمع در مجموع میکروکنترلر یا سیستمهای روی یک تراشه (Systems on a chip) نام دارند.
پردازندههای آرایهای یا پردازندههای برداری (vector) دارای چندین پردازنده هستند که به صورت موازی عمل میکنند و هیچ واحدی در مرکزیت قرار ندارد CPUهای مجازی یک فرم انتزاعی از منابع محاسباتی مجتمع پویا هستند.[۲]
بریم سراغ اصل مطلب:
برای آشنایی با واحد پردازش مرکزی (CPU)، ابتدا بخشی از کامپیوتر به نام SoC را خیلی مختصر معرفی میکنیم. SoC یا سیستم روی یک تراشه، بخشی از سیستم است که تمام اجزای مورد نیاز کامپیوتر را برای پردازش در تراشهای سیلیکونی ادغام میکند. SoC ماژولهای مختلفی دارد که واحد پردازش مرکزی (به اختصار پردازنده) جزئی اصلی از آن و پردازندهی گرافیکی، حافظه، کنترلر USB، مدارهای مدیریت انرژی و رادیوهای بیسیم (WiFi، 3G، 4G LTE، و غیره) اجزایی متفرقه هستند که ممکن است لزوماً روی SoC وجود نداشته باشند. واحد پردازندهی مرکزی که از این به بعد و در این مقاله آن را به اختصار پردازنده خطابمیکنیم،نمیتواند مستقل از تراشههای دیگر، دستورالعملها را پردازش کند؛ اما ساخت کامپیوتری کامل تنها با SoC امکانپذیر است.
SoC از پردازنده کمی بزرگتر است و در عین حال عملکردهای بسیار بیشتری نیز ارائه میدهد. در واقع با وجود تأکید زیادی که روی فناوری و عملکرد پردازنده میشود، این بخش از کامپیوتر، به خودی خود کامپیوتر نیست و میتوان آن را در نهایت، ماشینحسابی بسیار سریع معرفی کرد که جزئی از سیستم روی تراشه یا SoC است؛ دادهها را از حافظه فراخوانی میکند و سپس نوعی عملیات حسابی (جمع، ضرب) یا منطقی (و، یا، نه) روی آنها انجام میدهد.
شرکتهای تولیدکننده
گاهی بر روی پردازندهها نام شرکت سازنده به صورت کامل و گاهی به صورت علائم اختصاری مخصوص شرکت مشخص میشود. شرکتهای تولیدکنندهٔ پردازنده، هرساله پردازندههای قدرتمندی برای کاربران عادی و گیمرها ارائه میشوند. پیچیدگی طراحی پردازندهها همزمان با افزایش سریع فناوریهای متنوع که ساختارهای کوچکتر و قابل اطمینان تری را در وسایل الکترونیک باعث میشد، افزایش یافت.
اینتل
شرکت اینتل در سال ۱۹۶۸ توسط رابرت نویس و گوردون مور راهاندازی شد. این شرکت مبدع فناوری ریزپردازندههای X۸۶ است. اینتل در اواسط دهه ۱۹۷۰ میلادی، یکی از قویترین تراشهها یعنی تراشه ۸۰۸۶ را به بازار عرضه کرد. این تراشهها تحولی عظیم در فناوری ریز پردازندهها ایجاد کردند. دفتر مرکزی این شرکت در شهر سانتا کلارا، کالیفرنیا قرار دارد. در سال ۲۰۰۸ بود که شرکت اینتل (Intel) با معرفی معماری نِهِیلِم (Nehalem) پردازندههای سری اینتل کور را به بازار معرفی کرد. روند نامگذاری با اعداد تا زمان ظهور سری پنتیوم ادامه داشت و بعد از آن از نام اختصاصی استفاده شد مانند: , core,Celeron, pentium, Duron, Xeon, Athlon, phenom و …
از آن سال تا به امروز شرکت اینتل همواره پردازندههای جدید خود را با معماری بروزتر ولی با همان غالب Core i همراه با شمارهای بعد از حرف i معرفی میکند. پردازندههای Core i9 برای رقابت با پردازندههای تردریپر شرکت ایامدی وارد بازار شدهاند. این پردازندهها، اولین سری جدید محصولات «Core i» طی ۱۰ سال اخیر هستند. پردازندههای Core i9، پنجمین سری و فعلاً آخرین پردازندهٔ معرفی شده که از خانوادهٔ پردازندههای رایانه خانگی هستند. پردازندههای قدرتمند اینتل ۱۸ هستهای و ۱۶ هستهای هستند.
سی پی یو اینتل پرفروش ترین مدل پردازنده در بازار جهانی است و Intel Corporation یکی از بزرگترین و معتبرترین شرکتهای تولید کننده پردازندهها در صنعت کامپیوتر به شمار میرود. این شرکت آمریکایی با تاریخچهای طولانی در طراحی و تولید پردازندههای انواعی مانند سری Core i و Xeon شناخته میشود. محصولات Intel به عنوان گزینهای قدرتمند و پایدار در بازار کامپیوترهای شخصی، سرورها و دستگاههای تعبیهشده شناخته میشوند. همچنین، Intel همیشه در پیشرفت تکنولوژی پردازندهها بوده و به وسیله نوآوریهایی مانند فناوری Hyper-Threading و Turbo Boost توانسته است عملکرد پردازندهها را بهبود بخشد.
ایامدی
شرکت اِیاِمدی در سال ۱۹۶۹ و در ایالت کالیفرنیا شروع به کار کرد. ایامدی یکی از بزرگترین رقیبان این شرکت، که پا به پای اینتل پردازندههای خود را معرفی و عرضه میکند. ایامدی برای جذب مشتری بیشتر و در دست گرفتن بازار پردازندههای گرافیکی و مرکزی، سیاست کاهش قیمت را استفاده کرد و با این روش سعی در برتری نسبت به رقبا دارد. امروزه پردازندههای رایزن شرکت ایامدی پردازندههایی با تعداد ۳۲ هسته هستند.
Advanced Micro Devices (AMD) یکی دیگر از بازیگران برجسته در بازار CPU است که به دلیل پیشنهادات و نوآوری های رقابتی خود در زمینه تولید انواع سی پی یو ای ام دی شناخته شده است. شرکت AMD یک رقیب قدرتمند برای Intel در صنعت پردازنده ست. این شرکت آمریکایی با معرفی پردازندههای Ryzen با عملکرد بالا، مصرف انرژی کم، و قیمت مناسب، توانسته است نفوذ قابل توجهی در بازار کسب کند. همچنین، در حوزه سرورها و مراکز داده، پردازندههای AMD EPYC با کارایی بالا و امکانات پیشرفته شناخته میشوند. AMD به عنوان یک گزینه متنوع و اقتصادی برای کسانی که به دنبال تنوع در انتخاب پردازنده هستند، شناخته میشود و در تلاش برای ایجاد رقابت در بازار پردازندهها به پیشرفتهایی نظیر فناوری مولتیکور و فناوری ریزمعماری Zen اعتماد دارد.
رایزن ۹ آخرین سری پردازندهٔ معرفی شده توسط ایامدی است.
- اِنویدیا
- آیبیام
- Cyrix
- موتورولا
ARM
شرکت ARM Holdings یک شرکت بریتانیایی است که در طراحی پردازندهها و میکروپروسسورهای با مصرف برق کم متخصص است. این شرکت طراحی پردازندههای خود را به سایر شرکتهای تولید کننده پردازندهها (مانند Qualcomm و Apple) ارائه میدهند. طراحیهای ARM به دلیل مصرف انرژی پایین و انعطاف پذیری بالا در دستگاههای قابل حمل، تلفنهای همراه، تلویزیونهای هوشمند، و دستگاههای اینترنت اشیاء (IoT) مورد استفاده قرار میگیرند. این شرکت معمولاً به عنوان یک پیشرو در زمینه پردازندههای با مصرف برق کم شناخته میشود.
IBM
IBM (International Business Machines Corporation) یکی از شرکتهای بزرگ و با قدمت زیاد در عالم تکنولوژی و مهندسی میباشد. این شرکت آمریکایی در زمینه توسعه و تولید پردازندهها و سیستمهای پردازش دادههای بزرگ و مهم فعالیت دارد. پردازندههای IBM معمولاً برای سرورهای بزرگ، محاسبات علمی، و تحقیقاتی با نیازهای خاص تولید میشوند. شرکت IBM همچنین در زمینه تحقیقات پیشرفته و توسعه فناوریهای نوآورانه مانند کوانتوم کامپیوتینگ و هوش مصنوعی فعالیت دارد. IBM به عنوان یکی از عوامل اصلی در توسعه تکنولوژیهای پیشرفته در دنیای تکنولوژی معرفی میشود.
نسلها
پردازندهها بسته به تنوع در مدل و عملکرد آنها دارای مدلهای مختلفی هستند. معمولاً هر گاه یک تغییر اساسی در ساختار یا پردازنده به وجود آمدهاست نسل جدیدی برای آن نامگذاری شدهاست. معمولاً نسلهای مختلف پردازندهها را با نام، علائم یا شمارههای مختلف نشان میدهند. شرکتهای سازندهٔ پردازنده تولیدات خود را بر اساس یک روش استاندارد نامگذاری میکنند. هر کدام از نسلهای پردازنده دارای مدلها و مشخصات متفاوت هستند. همچنین هر قسمت از نام یک پردازنده، نشاندهندهٔ جزئیاتی از ساختار آن است.
عملکرد پردازنده ها
فرایند پردازش دستورها در پردازنده شامل چهار مرحلهی اصلی است که به ترتیب اجرا میشوند:
فراخوانی یا واکشی دستورالعملها از حافظه (Fetch): پردازنده ابتدا به منظور آگاهی از نحوهی مدیریت ورودی و دانستن دستورالعملهای مرتبط با آن، این دستورها را از حافظه دریافت میکند. این ورودی ممکن است یک یا بینهایت دستور باشد که باید در محلهای جداگانه آدرسدهی شوند. به این منظور واحدی به نام PC (مخفف Program Counter) یا شمارندهی برنامه، وجود دارد که ترتیب دستورهای ارسالشده را حفظ میکند؛ پردازنده نیز در تعاملی مشترک برای یافتن آدرس دستورالعمل دائماً با رم در ارتباط است (خواندن از حافظه).
رمزگشایی یا ترجمهی دستورالعملها (Decode): دستورالعملها به فرمی که برای پردازنده قابل درک باشند (زبان ماشین یا باینری) ترجمه میشوند. پردازنده پس از دریافت دستورها، برای درک آنها نیاز دارد تا این کدها به زبان ماشین (یا باینری) ترجمه شوند. نوشتن برنامهها به زبان باینری، از همان ابتدای امر، کار دشواری است و به همین دلیل کدها به زبانهای برنامهنویسی سادهتری نوشته میشوند و سپس واحدی به نام Assembler، این دستورها را به کدهای اجرایی و آماده برای پردازش پردازنده تبدیل میکند.
پردازش یا اجرای دستورهای ترجمهشده (Execute): مهمترین مرحله در عملکرد پردازنده، پردازش و اجرای دستورها است. در این مرحله دستورالعملهای رمزگشاییشده و باینری برای اجرا به کمک واحد ALU (مخفف Arithmetic & Logic Unit) یا واحد محاسبه و منطق، در آدرسی مخصوص پردازش میشوند.
ذخیرهی نتایج اجرا (Store): نتایج و خروجی دستورها به کمک واحد ثبات (Register) در حافظهی جانبی پردازنده ذخیره میشوند تا در دستورالعملهای آتی برای بالا بردن سرعت به آنها رجوع شود (نوشتن در حافظه).
فرایندی که در بالا توضیح داده شد، چرخهی واکشی-اجرایی نامیده میشود و میلیونها بار در ثانیه اتفاق میافتد؛ هربار پس از اتمام این چهار مرحلهی اصلی، نوبت به دستور بعدی میرسد و تمامی مراحل دوباره از اول اجرا شده تا زمانی که تمامی دستورالعملها پردازش شوند.
واحدهای عملیاتی پردازنده ها
هر پردازنده از سه واحد عملیاتی تشکیل شده است که در فرایند پردازش دستورها نقش دارند:
واحد محاسبه و عملیات منطقی (ALU یا همان Arithmetic & Logic Unit): این واحد مدار دیجیتالی پیچیدهای است که عملیات ریاضی و مقایسهای را انجام میدهد؛ در برخی پردازندهها، ALU به دو بخش AU (برای انجام عملیات حسابی) و LU (برای انجام عملیات منطقی) تقسیم میشود.
واحد کنترل حافظه (CU یا همان Program Counter): این واحد مداری است که عملیات را درون پردازنده هدایت و مدیریت میکند و چگونگی پاسخ دادن به دستورالعملها را به واحد محاسبه و منطق و دستگاههای ورودی و خروجی، دیکته میکند. کارکرد واحد کنترل در هر پردازنده بسته به معماری طراحی آن، میتواند متفاوت باشد.
واحد ثبات (Register): واحد ثبات، واحدی در پردازنده است که وظیفهی نگهداری موقت دادههای پردازششده، دستورالعملها، آدرسها، توالی بیتها و خروجی را بر عهده دارد و باید برای نگهداری این دادهها ظرفیت کافی داشته باشد. پردازندههایی با معماری ۶۴ بیتی، Registerهایی با ظرفیت ۶۴ بیتی دارند و پردازندههایی با معماری ۳۲ بیتی نیز دارای واحد ثباتی ۳۲ بیتی هستند.
معماری پردازنده ها
ارتباط میان دستورالعملها و طراحی سختافزار پردازنده، معماری پردازنده را شکل میدهد؛ اما معماری ۶۴ یا ۳۲ بیتی چیست؟ این دو معماری چه تفاوتهایی با یکدیگر دارند؟ برای پاسخ به این سؤال ابتدا باید با مجموعه دستورالعملها و نحوهی انجام محاسبات آنها آشنا شویم:
با توجه به اهمیت سی پی یوها بد نیست تا نگاهی داشته باشیم به معماری این قطعه ی کوچک اما تاثیر گذار در تاریخ فناوری های تولید شده به دست انسان. معماری سی پی یو به طراحی داخلی و ساختار داخلی یک واحد پردازشی مرکزی در یک کامپیوتر اشاره دارد. این معماری تعیین کننده عملکرد و قابلیتهای یک پردازنده است. چندین نوع معماری سی پی یو وجود دارد، اما دو معماری اصلی و متداول عبارتند از:
- معماری RISC (Reduced Instruction Set Computer): در این معماری، تعداد دستورات ماشینی (instruction set) به حداقل کاهش مییابد. دستورات سادهتر و کارآمدتری در این معماری استفاده میشوند، که باعث افزایش سرعت عملیات پردازشی میشود. پردازندههای RISC عمدتاً در کاربردهایی که نیاز به عملیات سریع و انجام محاسبات مکرر دارند، مثل کامپیوترهای شخصی، مورد استفاده قرار میگیرند.
- معماری CISC (Complex Instruction Set Computer): در این معماری، تعداد زیادی دستورات ماشینی و دستورات پیچیده تر به پردازنده اضافه میشود. این معماری برای پشتیبانی از دستورات گوناگون و کاربردهای متنوع مورد استفاده قرار میگیرد. پردازندههای CISC به طور عمده در سرورها و کامپیوترهایی با نیاز به پردازش دادههای پیچیده مورد استفاده قرار میگیرند.
هر دو معماری مزایا و معایب خود را دارند و انتخاب معماری مناسب برای یک پروژه وابسته به نیازها و اهداف خاص آن پروژه است. همچنین، تکنولوژیهای پیشرفته معماریهای سی پی یو را به طور مداوم بهبود میبخشند و ترکیبی از ویژگیهای RISC و CISC را در پردازندههای مدرن ممکن میسازند.
مجموعه دستورالعملها
مجموعه دستورالعملها (Instruction Set)، مجموعه عملیاتی است که هر پردازنده میتواند بهطور طبیعی اجرا کند. این عملیات از چندین هزار دستورالعمل ساده و ابتدایی (مانند جمع، ضرب، جابهجایی و…) تشکیل شده که اجرای آن از پیش برای پردازنده تعریف شده است و اگر عملیاتی در خارج از محدودهی این مجموعه دستورالعمل باشد، پردازنده نمیتواند آن را اجرا کند.
همانطورکه اشاره شد، پردازنده وظیفهی اجرای برنامهها را بر عهده دارد. این برنامهها مجموعهای از دستورالعملهای نوشتهشده به زبان برنامهنویسی هستند که باید با ترتیبی منطقی و دقیقاً مرحلهبهمرحله اجرا دنبال شوند.
ازآنجاکه کامپیوترها زبانهای برنامهنویسی را مستقیماً درک نمیکنند، این دستورالعملها باید به فرم زبانِ ماشین یا باینری ترجمه شوند که درک آنها برای کامپیوترها آسانتر باشد. فرم باینری تنها از دو عدد صفر و یک تشکیل شده است و دو حالت ممکن روشن (یک) یا خاموش (صفر) ترانزیستورها را برای عبور جریان الکتریسیته نشان میدهد.
در واقع هر پردازنده را میتوان مجموعهای از مدارهای الکتریکی دانست که مجموعهی دستورالعملها را دراختیار پردازنده قرار میدهند و سپس مدارهای مربوط به آن عملیات به وسیلهی سیگنالی الکتریکی فعال شده و پردازنده آن را اجرا میکند.
دستورالعملها از تعداد معینی بیت تشکیل شدهاند. برای مثال، در دستورالعملی ۸ بیتی؛ ۴ بیت اول آن به کد عملیات و ۴ بیت بعدی به دادههایی که باید استفاده شوند اشاره دارد. طول یک مجموعه دستورالعمل میتواند از چند بیت تا چند صد بیت متغیر بوده و در برخی از معماریها نیز طولهای متفاوتی داشته باشد.
بهطور کلی مجموعه دستورالعملها به دو دستهبندی اصلی زیر تقسیم میشوند:
- محاسبات کامپیوتری با مجموعه دستورالعملهای کاهشیافته (Reduced instruction set computer): برای پردازندهی مبتنی بر RISC (بخوانید ریسک)، مجموعه عملیات تعریف شده، ساده و اساسی هستند. این دست از محاسبات پردازشها را سریعتر و کارآمدتر انجام میدهند و برای کاهش زمان اجرا بهینهسازی شدهاند؛ RISC نیازی به داشتن مدارهای پیچیده ندارد و هزینهی طراحی آن پایین است. پردازندههای مبتنی بر RISC، هر دستور را در چرخهای واحد به اتمام میرسانند و تنها روی دادههای ذخیرهشده در رجیسترها، عملیات انجام میدهند؛ پس دستورالعملهای سادهای هستند، فرکانس بالاتری دارند، ساختار مسیرسازی اطلاعات در آنها بهینهتر است و عملیاتها را روی رجیسترها بارگذاری و ذخیره میکنند.
- محاسبات کامپیوتری با مجموعه دستورالعملهای پیچیده (Complex instruction set computer): پردازندههای CISC (بخوانید سیسک) یک لایه میکروکد یا ریزبرنامهریزی اضافی دارند که در آن دستورالعملهای پیچیده را به دستورهای ساده (مانند جمع یا ضرب) تبدیل میکنند. دستورالعملهای قابلبرنامهریزی در حافظهی سریع ذخیره میشوند و قابل بهروزرسانی هستند. در این نوع از مجموعه دستورالعملها، تعداد بیشتری از دستورالعملها را نسبت به RICS میتوان گنجاند و فرمت آنها میتوانند طول متغیر داشته باشند. در واقع CISC تقریباً نقطه مقابل RISC است. دستورالعملهای CISC میتوانند چندین چرخهی پردازنده را طی کنند و مسیرسازی اطلاعات در آنها به اندازه پردازندههای RISC کارآمد نیست. بهطور کلی پردازندههای مبتنی بر CISC میتوانند چندین عملیات را در طی یک دستور پیچیده اجرا کنند، اما در طول مسیر چندین چرخه را طی میکنند.
RISC درمقابل CISC یا ARM درمقابل x86
RISC و CISC در دستهبندی مجموعهی دستورالعملها، دو نقطهی ابتدایی و انتهایی این طیف هستند و در این میان ترکیبهای مختلف دیگری نیز به چشم میخورند. در ابتدا به بیان تفاوتهای اساسی RISC و CISC میپردازیم:
RICS یا مجموعه دستورالعملهای کاهش یافته | CISC یا مجموعه دستورالعملهای پیچیده |
---|---|
مجموعه دستورالعملهای RISC ساده هستند؛ تنها یک عملیات را اجرا میکنند و پردازنده میتواند در طی یک چرخه، آنها را پردازش کند. | دستورالعملهای CISC چندین عملیات را اجرا میکنند، اما پردازنده نمیتواند آنها را طی یک چرخهی واحد، پردازش کند. |
پردازندههای مبتنی بر RISC مسیرسازی بهینهتر و سادهتری برای اطلاعات دارند؛ طراحی این دستورها به قدری ساده است که میتوان آنها را بهصورت بخشبخش اجرا کرد. | پردازندههای مبتنی بر CISC ماهیت پیچیدهای دارند و اجرای دستورها در آن دشوارتر است. |
پردازندههای مبتنی بر RISC برای اجرای دستورالعملها به دادههای ذخیرهشده نیاز دارند. | در پردازندههای مبتنی بر CISC بهصورت مستقیم و ازطریق رم میتوان با دستورها کار کرد و دیگر نیازی به بارگذاری جداگانهی عملیات نیست. |
RISC به سختافزار پیچیدهای نیاز ندارد و تمام عملیات توسط نرمافزار انجام میشود. | نیازمندیهای سختافزاری طراحی CISC، بیشتر است. دستورالعملهای CISC با استفاده از سختافزار انجام میشوند و نرمافزارها غالباً سادهتر از RISC هستند. به همین دلیل است که برنامههایی مبتنی بر طراحی CISC، کدنویسی کمتری دارد و خود دستورالعملها، بخش بزرگی از عملیات را انجام میدهند. |
همانطورکه گفته شد در طراحی پردازندههای مدرن امروزی، ترکیبی از این دو مجموعه (CISC یا RISC) استفاده میشود. برای مثال معماری x86 ایامدی در اصل از مجموعه دستورالعملهای CISC استفاده میکند، اما به میکروکدی برای سادهسازی دستورالعملهای پیچیده مشابه RISC نیز مجهز است. حال که تفاوتهای دو دستهبندی اصلی مجموعهی دستورالعملها را بیان کردیم، کاربرد آنها را در معماری پردازندهها بررسی میکنیم.
اگر هنگام انتخاب گوشی یا تبلت، به معماری پردازندهی آن دقت کنید، متوجه خواهید شد که برخی از مدلها از پردازندههای اینتل استفاده میکنند، درحالیکه برخی دیگر مبتنی بر معماری ARM هستند.
فرض کنید که پردازندههای مختلف، هر کدام مجموعه دستورالعملهای مختلفی داشته باشند، در این صورت برای اجرای برنامههای مختلف، هر کدام باید جداگانه برای هر پردازنده کامپایل شوند. برای مثال برای هر پردازنده از خانوادهی AMD، لازم بود تا ویندوزی جداگانه توسعه داده شود، یا هزاران نسخه از برنامهی فتوشاپ برای پردازندههای مختلف نوشته میشد. بههمیندلیل، معماریهای استانداردی مبتنی بر دستهبندیهای RISC یا CISC یا ترکیبی از این دو طراحی شد و مشخصات این استانداردها هم دردسترس همه قرار گرفت. ARM، PowerPC، x86-64 و IA-64 نمونههایی از این استانداردهای معماری هستند که در ادامه دو مورد از مهمترین آنها و تفاوتهایشان را معرفی میکنیم:
تاریخچه مختصری از معماری پردازنده ها
در سال ۱۸۲۳، فردی به نام بارون جونز جکوب برزلیوس، عنصر شیمیایی سیلیکون (نماد Si، عدد اتمی ۱۴) را برای اولین بار کشف کرد. این عنصر به علت فراوانی و خاصیت نیمههادی قویای که دارد، بهعنوان ماده اصلی در ساخت پردازندهها و تراشههای کامپیوتری به کار میرود. تقریباً یک قرن بعد و در سال ۱۹۴۷، جان باردین، والتر براتین و ویلیام شاکلی اولین ترانزیستور را در آزمایشگاه بل اختراع و جایزهی نوبل دریافت کردند.
اولین مدار یکپارچهی (IC) کارآمد، سپتامبر ۱۹۵۸ رونمایی شد و دو سال بعد از آن IBM اولین مرکز تولید انبوه خودکار ترانزیستورها را در نیویورک توسعه داد. اینتل در سال ۱۹۶۸ پایهگذاری و AMD نیز یک سال بعد از آن تأسیس شد.
اولین پردازنده در اوایل دههی ۱۹۷۰، توسط اینتل اختراع شد؛ این پردازنده Intel 4004 نام داشت و با بهرهمندی از ۲۳۰۰ ترانزیستور، ۶۰ هزار عملیات در ثانیه انجام میداد. قیمت CPU اینتل 4004 با ۲۰۰ تعیین شده بود و تنها ۶۴۰ بایت حافظه داشت:
بعد از اینتل، موتورولا اولین پردازندهی ۸ بیتی خود را (MC6800) با فرکانس یک تا دو مگاهرتز معرفی کرد و سپس MOS Technology، پردازندهای سریعتر و ارزانتر نسبت به پردازندههای موجود معرفی کرد که در کنسولهای گیمینگ آن زمان، یعنی آتاری 2600 و سیستمهای نینتندو مانند Apple II و Commodore 64 استفاده شد. اولین پردازندهی ۳۲ بیتی را موتورولا در سال ۱۹۷۹ توسعه داد، البته این پردازنده تنها در کامپیوترهای مکینتاش اپل و آمیگا به کار رفت. کمی بعد National Semiconductor، اولین پردازندهای ۳۲ بیتی را برای استفاده عموم عرضه کرد.
تفاوت پردازندهی ۳۲ بیتی و ۶۴ بیتی (x86 درمقابل x64): به بیان ساده، معماری x86 به خانوادهای از دستورالعملها اشاره دارد که در یکی از موفقترین پردازندههای اینتل، به نام 8086 به کار میرفت و اگر پردازندهای با معماری x86 سازگار باشد، آن پردازنده را بهعنوان x86-64 یا x86-32 میشناسند که برای نسخههای ویندوزی ۳۲ (و ۱۶) بیتی استفاده میشود؛ پردازندههای ۶۴ بیتی را x64 و پردازندههای ۳۲ بیتی را x86 معرفی میکنند.
بزرگترین تفاوت بین پردازندههای ۳۲ بیتی و ۶۴ بیتی، به میزان دسترسی متفاوت آنها به رم مربوط میشود:
حداکثر حافظهی فیزیکی معماری x86 یا پردازندههای ۳۲ بیتی، به ۴ گیگابایت محدود میشود؛ درحالیکه معماری x64 (یا پردازندههای ۶۴ بیتی) میتواند به حافظهی فیزیکی ۸، ۱۶ و برخی مواقع حتی تا ۳۲ گیگابایت دسترسی داشته باشد. یک کامپیوتر ۶۴ بیتی میتواند هم با برنامههای ۳۲ بیتی و هم با برنامههای ۶۴ بیتی کار کند؛ درمقابل، یک کامپیوتر ۳۲ بیتی تنها میتواند برنامههای ۳۲ بیتی را اجرا کند.
در بیشتر موارد، پردازندههای ۶۴ بیتی هنگام پردازش دادههای گسترده، از پردازندههای ۳۲ بیتی کارآمدتر عمل میکنند. برای آگاهی از اینکه سیستمعامل شما از کدام برنامهها (۳۲ بیتی یا ۶۴ بیتی) پشتیبانی میکند، کافی است یکی از دو مسیر زیر را طی کنید:
- کلیدهای Win + X را فشار دهید تا منوی کانتکس نمایش داده شود و سپس روی گزینهی System کلیک کنید. -> در پنجرهای که باز میشود، بخش System type را در قسمت مشخصات دستگاه (Device specification) پیدا کنید. ۶۴ بیتی یا ۳۲ بیتی بودن ویندوز خود را از این قسمت میتوانید مشاهده کنید.
- عبارت msinfo32 را در کادر جستوجوی ویندوز تایپ کرده و روی System Information نمایش دادهشده، کلیک کنید. -> از بخش System Information در سمت راست، نوع System پیدا کنید و ببینید که سیستمعامل ویندوز شما مبتنی بر x64 است یا X32.
مسیر اول
مسیر دوم
ARM نوعی از معماری پردازندههای کامپیوتری بود که در سال ۱۹۸۰ توسط Acorn معرفی شد؛ قبل از ARM، ایامدی و اینتل هر دو از دو معماری X86 اینتل، مبتنی بر محاسبات CISC، استفاده میکردند و IBM نیز در ورکاستیشنهای خود از محاسبات RISC بهره میبرد. در واقع Acorn اولین شرکتی بود که کامپیوتری خانگی بر مبنای محاسبات RISC توسعه داد و نام معماری آن را برگرفته از نام خود ARM گذاشت: مخفف Acorn RISC Machine. این شرکت پردازنده تولید نمیکرد و در عوض مجوز استفاده از معماری ARM را به دیگر تولیدکنندگان پردازنده میفروخت. هلدینگ Acorn، چند سال بعد، کلمهی Acorn را به Advanced تغییر داد.
معماری ARM دستورالعملهای ۳۲ بیتی را پردازش میکند و هستهی اصلی پردازندهای مبتنی بر این معماری، حداقل به ۳۵ هزار ترانزیستور نیاز دارد. پردازندههای طراحیشده بر مبنای معماری x86 اینتل که براساس محاسبات CISC پردازش میکنند، حداقل به میلیونها ترانزیستور نیاز دارند؛ در واقع مصرف بهینهی انرژی در پردازندههای مبتنی بر ARM و مناسب بودن آنها برای دستگاههایی مانند گوشی یا تبلت، با همین تعداد کم ترانزیستورها نسبت به معماری X86 اینتل مرتبط است.
ARM در سال ۲۰۱۱ معماری ARMv8 را با پشتیبانی از دستورها ۶۴ بیتی معرفی و یک سال بعد از آن، مایکروسافت نیز نسخه ویندوز سازگار با معماری ARM را به همراه تبلت سرفیس RT به بازار عرضه کرد.
تفاوت های معماری ARM و X86-64
معماری ARM به گونهای طراحی شده که تا حد امکان ساده باشد و در عین حال اتلاف انرژی را در حداقلترین سطح نگه دارد. درمقابل اینتل با معماری X86 از تنظیمات پیچیدهتری استفاده میکند که بیشتر برای پردازندههای قدرتمندتر دسکتاپی و لپتاپی مناسب است.
کامپیوترها پس از اینکه اینتل معماری مدرن x86-64 (که تحت عنوان x64 هم شناخته میشود) را معرفی کرد، به سراغ معماری ۶۴ بیتی رفتند. معماری ۶۴ بیتی برای انجام بهینهی محاسبات، ضروری است و رندرینگ سهبعدی و رمزنگاری را با دقت و سرعت بیشتری انجام میدهد. امروزه، هر دو معماری از دستورهای ۶۴ بیتی پشتیبانی میکنند، اما این تکنولوژی برای موبایل زودتر ارائه شد.
ARM در زمان پیادهسازی معماری ۶۴ بیتی در ARMv8، دو رویکرد را در این معماری پیش گرفت: AArch32 و AArch64. که اولی برای اجرای کدهای ۳۲ بیتی و دیگری برای اجرای کدهای ۶۴ بیتی استفاده میشود.
طراحی معماری ARM به شکلی است که میتواند خیلی سریع بین دو حالت سوییچ کند. این یعنی دیکُدر دستورالعملهای ۶۴ بیتی دیگر نیازی به سازگاری با دستورها ۳۲ بیتی ندارد و به گونهای طراحی شده که با تکنولوژی پیشین سازگار باشد، البته ARM اعلام کرده است که پردازندههای مبتنی بر معماری ARMv9 Cortex-A در سال ۲۰۲۳ تنها با دستورها ۶۴ بیتی سازگار خواهند بود و پشتیبانی از اپلیکیشنها و سیستمعاملهای ۳۲ بیتی در پردازندههای نسلهای بعدی به پایان خواهد رسید.
تفاوتهای میان معماری ARM و اینتل تا حد زیادی نشاندهندهی دستاوردها و چالشهای این دو شرکت است. رویکرد مصرف بهینهی انرژی در معماری ARM در عین حال که برای توان مصرفی زیر ۵ واتی در موبایلها مناسب است، امکان بهبود عملکرد پردازندههای مبتنی بر این معماری را تا سطح پردازندههای لپتاپی اینتل فراهم میکند. درمقابل توان مصرفی ۱۰۰ واتی اینتل در پردازندههای Core i7 و Core i9 یا حتی پردازندههای AMD، دستاوردی بزرگی در دسکتاپهای ردهبالا و سرورها محسوب میشود، البته به لحاظ تاریخی پایین آوردن این توان تا زیر ۵ وات امکانپذیر نیست.
پردازندههایی که از ترانزیستورهای پیشرفتهتر بهره میبرند، برق کمتری مصرف میکنند و اینتل نیز از مدتها پیش تلاش میکرد تا لیتوگرافی خود را از ۱۴ نانومتر به لیتوگرافیهای پیشرفتهتر ارتقا دهد. این شرکت اخیراً موفق شد پردازندههای خود را با فرایند ساخت ۱۰ نانومتری تولید کند، اما در همین حین، پردازندههای موبایلها نیز از ۲۰ نانومتر به طراحیهای ۱۴ و ۱۰ و ۷ نانومتری رسیدند که دستاوردی ناشی از رقابت سامسونگ و TSMC است. از سوی دیگر، AMD هم در سری رایزن از پردازندههای ۷ نانومتری رونمایی کرد و از رقبای معماری x86-64 خود پیشی گرفت.
نانومتر: یک متر تقسیم بر هزار برابر است با یک میلیمتر، یک میلیمتر تقسیم بر هزار برابر است با یک میکرومتر و یک میکرومتر تقسیم بر هزار برابر است با یک نانومتر، به تعبیر دیگر نانومتر یک میلیارد برابر کوچکتر از متر است.
لیتوگرافی یا فرایند ساخت: لیتوگرافی (lithography) واژهای یونانی به معنای سنگنگاری است که در پردازندهها به نحوهی قرار دادن اجزاء یا همان فرایند تولید و شکلگیری مدارها اشاره دارد؛ این فرایند توسط تولیدکنندگان متخصصی در این زمینه مانند TSMC، انجام میشود. نانومتر در لیتوگرافی از زمان تولید اولین پردازندهها تا چند سال پیش، فواصل قرارگیری اجزای پردازنده در کنار هم را نشان میداد؛ برای مثال لیتوگرافی چهارده نانومتری پردازندههای سری Skylake در سال ۲۰۱۵، به این معنا بود که اجزای تشکیلدهندهی آن پردازنده، با فاصله ۱۴ نانومتری از هم قرار گرفتهاند. در آن زمان باور بر این بود که هرچه لیتوگرافی یا فرایند ساخت پردازندهای کمتر باشد، مصرف انرژیِ بهینهتر و عملکرد بهتری دارد.
فواصل قرارگیری اجزا در پردازندهها امروزه دیگر آنچنان موضوعیت ندارد و فرایندهایی که برای ساخت این محصولات عنوان میشوند، بیشتر قراردادی هستند؛ چراکه دیگر نمیتوان بدون کاهش بهرهوری، این فواصل را از یک حدی بیشتر کاهش داد. بهطور کلی با گذشت زمان، پیشرفت فناوری، طراحی ترانزیستورهای مختلف و افزایش تعداد این ترانزیستورها در پردازنده، تولیدکنندگان راهکارهای مختلف دیگری مانند انباشهسازی سهبعدی را برای قرار دادن ترانزیستورها روی پردازندهها در پیش گرفتهاند.
منحصربهفردترین قابلیت معماری ARM را میتوان، پایین نگه داشتن توان مصرفی در اجرای اپلیکیشنهای موبایلی دانست؛ این دستاورد از توانایی پردازش ناهمگن ARM ناشی میشود؛ معماری ARM این امکان را فراهم میکند تا پردازشها بین هستههای قدرتمند و کممصرف تقسیم شوند و درنتیجه انرژی بهینهتر مصرف شود.
نخستین تلاش ARM در این حوزه به معماری big.LITTLE در سال ۲۰۱۱ برمیگردد و زمانی که هستههای بزرگ Cortex-A15 و هستههای کوچک Cortex-A7 از راه رسیدند. ایدهی استفاده از هستههای قدرتمند برای اپلیکیشنهای سنگین و استفاده از هستههای کممصرف برای پردازشهای سبک و پسزمینه، شاید آنچنان که باید مورد توجه قرار نگرفته باشد، اما ARM برای رسیدن به آن تلاشهای ناموفق و شکستهای زیادی را تجربه کرد؛ امروزه ARM معماری غالب بازار است: برای مثال آیپدها و آیفونها بهطور انحصاری از معماری ARM استفاده میکنند.
در این میان، پردازندههای Atom اینتل که از پردازش ناهمگن بیبهره بودند، نتوانستند با عملکرد و مصرف بهینهی پردازندههای مبتنی بر معماری ARM رقابت کنند و همین امر باعث شد اینتل از ARM عقب بماند.
سرانجام اینتل در سال ۲۰۲۰ توانست در طراحی پردازندههای ۱۰ نانومتری Lakefield خود، معماری هیبریدی برای هستهها را با یک هستهی قدرتمند (Sunny Cove) و چهار هستهی کممصرف (Tremont) به کار گیرد و در کنار این دستاورد از گرافیک و قابلیتهای اتصال نیز استفاده کند، اما این محصول برای لپتاپهایی با توان مصرفی ۷ وات ساخته شده بود که همچنان مصرف بالایی برای گوشیها محسوب میشود.
یکی دیگر از وجه تمایزهای مهم اینتل و ARM در نحوهی استفاده از طراحیشان است. اینتل معماری توسعه دادهشدهی خود را در پردازندههایی که تولید میکند، به کار میبرد و معماری را در محصولاتش به فروش میرساند، درحالیکه ARM گواهی طراحی و معماری خود را با قابلیت شخصیسازی به دیگر شرکتها، مانند مانند اپل، سامسونگ و کوالکام میفروشد و این شرکتها میتوانند بسته به اهداف خود تغییراتی در مجموعه دستورالعملهای این معماری و طراحی به وجود آورند.
تولید پردازندههای شخصیسازیشده برای شرکتهای تولیدکنندهی این محصولات، هزینهبر و پیچیده است، اما اگر به درستی انجام شود، محصولات نهایی میتوانند بسیار قدرتمند باشند. برای مثال، اپل تا یه حال بارها ثابت کرده است که شخصیسازی معماری ARM میتواند عملکرد پردازندههای این شرکت را همرده با x84-64 یا فراتر از آن قرار دهد.
اپل درنهایت قصد دارد تمام پردازندههای مبتنی بر معماری اینتل را از محصولات مک خود حذف کرده و سیلیکون مبتنی بر معماری ARM را جایگزین آنها کند. تراشهی M1، نخستین تلاش اپل در این راستا محسوب میشود که همراه با مکبوک ایر، مکبوک پرو و مک مینی عرضه شد. پس از آن تراشههای M1 Max و M1 Ultra نیز نشان دادند که معماری ARM همراه با چاشنی بهبودهای اپل میتواند معماری x86-64 را به چالش بکشد.
همانطورکه پیشتر گفته شد، معماریهای استانداردی مبتنی بر دستهبندیهای RISC یا CISC یا ترکیبی از این دو طراحی شد و مشخصات این استانداردها هم دردسترس همه قرار گرفت؛ اپلیکیشنها و نرمافزارها باید برای معماری پردازندهای که روی آن به اجرا در میآیند، کامپایل شوند. این موضوع قبلاً به دلیل محدود بودن پلتفرمها و معماریهای مختلف، دغدغهی بزرگی محسوب نمیشد، اما امروزه تعداد اپلیکیشنهایی که برای اجرا در پلتفرمهای مختلف به کامپایلهای متفاوتی نیاز دارند، افزایش پیدا کرده است.
مکهای مبتنی بر معماری ARM، سیستمعامل کروم در پلتفرم گوگل و ویندوز مایکروسافت، همه و همه مثالهایی در دنیای امروز هستند که به اجرای نرمافزار روی هر دو معماری Arm و x86-64 نیاز دارند. کامپایل بومی نرمافزار، تنها راهکاری است که میتوان در چنین شرایطی از آن بهره برد.
درواقع برای این پلتفرمها امکان شبیهسازی کد یکدیگر فراهم است و میتوان کدهای کامپایلشده برای یک معماری را روی معماری دیگری به اجرا درآورد. ناگفته نماند که چنین رویکردی نسبت به توسعهی ابتدایی اپلیکیشنی سازگار با هر پلتفرم، با کاهش عملکرد همراه است، اما همین امکانپذیر بودن شبیهسازی کد، میتواند تا حد زیادی فعلاً امیدوارکننده باشد.
پس از سالها توسعه، درحالحاضر شبیهساز ویندوز برای پلتفرمی مبتنی بر معماری ARM، عملکرد قابلقبولی برای اجرای اکثر اپلیکیشنها ارائه میدهد، اپلیکیشنهای اندرویدی نیز در اکثر مواقع روی کرومبوکهای مبتنی بر معماری اینتل، کموبیش رضایتبخش اجرا میشوند و اپل هم که ابزار ترجمهی کد مخصوص به خود (Rosetta 2) را توسعه داده است از اپلیکیشنهای قدیمی مک که برای معماری اینتل توسعه داده شده بودند، پشتیبانی میکند.
اما همانطورکه اشاره شد، هر سه، در اجرای برنامهها نسبت به شرایطی که برنامه از ابتدا برای هر پلتفرم جداگانه نوشته شود، ضعیفتر عمل میکنند. در کل معماری ARM و X86-64 اینتل را میتوان به شرح زیر مقایسه کرد:
معماری | ARM | X86-64 |
---|---|---|
CISC درمقابل RISC | معماری ARM نوعی معماری برای پردازندهها است و بنابراین تنها یک سازنده ندارد. این فناوری در پردازندههای گوشیهای اندرویدی و آیفونها به کار میرود. | معماری X86 توسط اینتل تولید شده و منحصراً در پردازندههای دسکتاپی و لپتاپی این شرکت استفاده میشود. |
پیچیدگی دستورالعملها | معماری ARM تنها از یک چرخه برای اجرای یک فرمان استفاده میکند و این ویژگی باعث میشود پردازندههای مبتنی بر این معماری برای دستگاههایی که نیاز به پردازشهای سادهتری دارند، مناسبتر باشد. | معماری اینتل (یا معماری X86 مرتبط با برنامههای ۳۲ بیتی ویندوز) غالباً از محاسبات CISC استفاده میکند و به همین دلیل مجموعه دستورالعملهای کمی پیچیدهتری داشته و برای اجرا به چندین چرخه نیاز دارد. |
پردازندههای موبایل درمقابل پردازندههای دسکتاپی | وابسته بودن معماری ARM به نرمافزار، باعث میشوند تا این معماری در طراحی پردازندهی گوشیها بیشتر به کار رود؛ ARM (بهطور کلی) در فناوریهای کوچکتر که مدام به منبع تغذیه دسترسی ندارند، بهتر کار میکند. | ازآنجاکه معماری X86 اینتل بیشتر به سختافزار متکی است، این معماری معمولاً برای طراحی پردازندههای دستگاههای بزرگتر مانند دسکتاپها استفاده میشود؛ اینتل بیشتر بر عملکرد تمرکز میکند و برای فناوریهای گستردهتر، معماری بهتری محسوب میشود. |
مصرف انرژی | معماری ARM نهتنها به لطف مجموعه محاسباتی تک چرخه خود، انرژی کمتری مصرف میکند، بلکه دمای عملیاتی آنها نیز نسبت به معماری X86 اینتل کمتر است؛ معماری ARM برای طراحی پردازندههای گوشیها عالی هستند، چراکه میزان انرژی لازم برای سرپا نگهداشتن سیستم و انجام دستورهای درخواستی کاربر را کاهش میدهد. | معماری اینتل بر عملکرد متمرکز بوده و از این رو برای کاربران دسکتاپها یا لپتاپها که به منبع نامحدود برق دسترسی دارند، مشکلی ایجاد نمیکند. |
سرعت پردازنده | پردازندههای مبتنی بر معماری ARM معمولاً کندتر از همتایان اینتلی خود هستند، چراکه برای مصرفی بهینه با توان پایینتری محاسبات را انجام میدهند. | پردازندههای مبتنی بر معماری X86 اینتل برای محاسبات سریعتر به کار میروند. |
سیستمعامل | معماری ARM در طراحی پردازندههای گوشیهای اندرویدی کارآمدتر است و معماری غالب در این بازار به حساب میآید؛ با اینکه دستگاههای مبتنی بر معماری X86 نیز میتوانند طیف کاملی از برنامههای اندرویدی، اما این برنامهها باید قبل از اجرا، ترجمه شوند. این سناریو به صرف زمان و انرژی نیاز دارد، بنابراین ممکن است عمر باتری و عملکرد کلی پردازنده صدمه ببیند. | معماری اینتل در تبلتها و سیستمعامل ویندوز، بهعنوان معماری غالب حکمرانی میکند. البته مایکروسافت در سال ۲۰۱۹، سرفیس پرو ایکس را با پردازندهای عرضه کرد که از معماری ARM بهره میبرد و میتوانست نسخهی کامل ویندوز را اجرا کند. اگر گیمر هستید یا اگر از تبلت خود انتظاراتی فراتر از اجرای نسخهی کامل ویندوز دارید، بهتر است همچنان از معماری اینتل بهره ببرید. |
در جریان رقابت بین Arm و x86 در ده سال گذشته، ARM را میتوان معماری برنده برای دستگاههای کممصرف مانند گوشیها دانست. این معماری در لپتاپها و سایر دستگاههایی که به مصرف بهینهی انرژی نیاز دارند نیز گامهای بلندی برداشته است. درمقابل با اینکه اینتل بازار گوشیها را از دست داده، تلاشهای این تولیدکننده برای بهینهسازی مصرف انرژی در طول سالها با پیشرفتهای چشمگیری همراه بوده است و با توسعهی معماری هیبریدی، مانند ترکیب Lakefield و Alder Lake ، اکنون بیش از هر زمان دیگری اشتراکات بسیاری با پردازندههای مبتنی بر معماری Arm دارد. Arm و x86 بهطور مشخص از نقطه نظر مهندسی متفاوت هستند و هرکدام نقاط قوت و ضعف فردی مخصوص به خود را دارند، بااینحال، امروزه دیگر تشخیص موارد استفاده و مصرف این دو از هم دیگر کار آسانی نیست، چراکه پشتیبانی از هر دو معماری بهطور فزایندهای در اکوسیستمها در حال افزایش است.
کامپیوترهای ابتدایی همچون انیاک، برای انجام کارهای مختلف باید سیمکشی مجدد میشدند، از این جهت به آنها «کامپیوترهای برنامه-ثابت» میگفتند.اصطلاح «واحد پردازش مرکزی»، از اوایل سال ۱۹۵۵ استفاده شدهاست. از آنجایی که اصطلاح CPU بهطور کلی، به ابزاری برای اجرای نرمافزار (برنامهٔ کامپیوتر) گفته میشود، ابتداییترین ابزارهایی که به درستی CPU نام گرفتند، در واقع با ابداع رایانههای با قابلیت ذخیرهٔ برنامه به وجود آمدند.
ایدهٔ یک کامپیوتر ذخیره کنندهٔ برنامه، قبل از این در طراحی سیستم انیاک آقای جان پرسپر اکرت و جان ماکلی وجود داشت، اما در ابتدا حذف شد تا پروژه زودتر تمام شود. در ۳۰ ژوئن ۱۹۴۵ و قبل از ساخت انیاک، ریاضیدانی به نام جان فون نویمان مقالهای را با عنوان “اولین پیشنویس یک گزارش در رابطه با ادواک (EDVAC)” منتشر کرد، که توصیفی کلی از یک کامپیوتر ذخیرهکنندهٔ برنامه بود که سرانجام، در اوت ۱۹۴۹ کامل شد.[۷] کامپیوتر ادواک طوری طراحی شد تا تعداد خاصی از دستورالعملها (یا عملیات) مختلف را اجرا کند. با تفاوت چشمگیر، برنامههای نوشته شده برای EDVAC قابل ذخیرهسازی در حافظهٔ سریع کامپیوتر بود و نه به شکل سیمکشی فیزیکی در کامپیوتر.[۸] این نوآوری موجب برطرف شدن برخی محدودیتهای شدید انیاک شد، که عبارت بودند از: مدت زمان و تلاش زیاد برای پیکربندی مجدد کامپیوتر برای انجام یک کار جدید.[۹] با استفاده از طراحی جان فون نویمان، برنامهای که کامپیوتر EDVAC میتوانست اجرا کند، به سادگی با تغییر دادن محتویات حافظه قابل تغییر بود. با این وجود، EDVAC اولین کامپیوتر ذخیرهکنندهٔ برنامه نبود. منچستر بیبی یک کامپیوتر کوچک تحقیقاتی با قابلیت ذخیرهسازی برنامه بود که اولین برنامه را در ۲۱ ژوئن ۱۹۴۸ اجرا کرد[۱۰] و کامپیوتر Manchester Mark 1 اولین برنامهٔ خود را در شب ۱۶ یا ۱۷ ژوئن ۱۹۴۵ اجرا کرد.[۱۱]
اولین CPUها دارای طراحی سلیقهای بودند و بهعنوان بخشی از یک کامپیوتر بزرگتر و گاهی خاص استفاده میشدند.[۱۲] با این حال، این روش سلیقهای طراحی CPUها برای کاربری خاص، بهطور چشمگیری راه را برای تولید پردازندههایی با کاربرد چندگانه و به صورت انبوه هموار کرد. این استانداردسازی، در دورهٔ رایانههای بزرگ (Mainframe) ترانزیستوری گسسته و ریزرایانهها (Minicomputer) شروع شد و با فراگیری مدارهای مجتمع (آیسیها)، بهسرعت شتاب پیدا کرد. آیسی، امکان طراحی و تولید CPUهای پیچیدهتر را تا حد تحمل نانومتری فراهم کرد.[۱۳] هم کوچکسازی و هم استانداردسازی CPUها، موجب افزایش و فراگیری ابزارهای دیجیتال در زندگی مدرن شد، که بسیار بیشتر از کاربرد محدود آنها در ماشینهای محاسباتی اختصاصی بود. ریزپردازندههای جدید در ابزارهای الکترونیک، از خودروها گرفته[۱۴] تا گوشیهای همراه[۱۵] و حتی گاهی در اسباببازیها وجود دارند.[۱۶][۱۷]
جان وان نویمان، به دلیل طراحی کامپیوتر ذخیره کنندهٔ برنامه شناخته شدهاست، که به خاطر تلاش وی برای ساخت EDVAC است. بعدها این طراحی، معماری وان نویمان نام گرفت. با این وجود، افرادی قبل از او، نظیر کنراد تسوزه ایدههای مشابهی را پیشنهاد و پیادهسازی کردند.[۱۸] معماری هاروارد نیز، که مربوط به Harvard Mark I است و قبل از EDVAC کامل شد،[۱۹][۲۰] از طراحی ذخیرهسازی برنامه استفاده کرد، که به جای حافظهٔ الکترونیک، از نوار کاغذی سوراخ شده استفاده میکرد.[۲۱] تفاوت کلیدی بین معماریهای جان فون نویمان و هاروارد این است که در معماری هاروارد، ذخیرهسازی و استفاده از دستورالعملهای CPU از دادهها جدا شدهاست، درحالیکه در معماری جان فون نویمان از حافظهٔ یکسانی برای ذخیرهٔ دادهها و دستورالعملها استفاده میشود.[۲۲] بیشتر CPUهای جدید برمبنای جان فون نویمان طراحی شدهاند. اما معماری هاروارد نیز وجود دارد، خصوصاً در کاربردهای نهفته، برای مثال، میکروکنترلرهای ای وی آر Atmel، در واقع پردازندههای مبتنی بر معماری هاروارد هستند.[۲۳]
رلهها و لامپهای خلاء یا همان لولههای ترمیونیک بهطور شایعی به عنوان عناصر سوئیچ استفاده میشدند.[۲۴][۲۵] یک کامپیوتر کاربردی نیاز به هزاران یا دهها هزار ابزار سوئیچ دارد. سرعت کلی یک سیستم وابسته به سرعت سوئیچها است. کامپیوترهای لامپ خلاء (نظیر EDVAC) بهطور میانگین ۸ ساعت از یک شکست تا شکست بعدی زمان میبردند، درحالیکه کامپیوترهای رلهای نظیر، Harvard Mark I (که کندتر اما قدیمیتر است) بهندرت دچار شکست میشدند.[۵] درنهایت، CPUهای مبتنی بر لامپهای خلاء غلبه پیدا کردند، زیرا مزایای سرعت چشمگیر بیشتر از مشکل قابل اعتماد بودن است. بیشتر این CPUهای همگام، در مقایسه با طراحیهای میکروالکترونیک جدید دارای سرعتهای ساعتی پایین بودند. در آن زمان، فرکانسهای سیگنال ساعت بهطور شایع در محدودهٔ ۱۰۰ کیلو هرتز تا ۴ مگاهرتز بود که این سرعت، به میزان زیادی به دلیل سرعت ابزارهای سوئیچ مورد استفاده در داخل آنها، محدود میشد.[۲۶]
پردازندههای ترانزیستوری
پیچیدگی طراحی پردازندهها، همزمان با آسان شدن ساخت ابزارهای الکترونیک کوچکتر و قابل اعتمادتر در نتیجهٔ افزایش تکنولوژیهای مختلف، افزایش یافت. اولین پیشرفت در نتیجهٔ ابداع ترانزیستور حاصل شد. در طی دهههای ۱۹۵۰ و ۱۹۶۰، دیگر لازم نبود که برای ساخت پردازندههای ترانزیستوری از عناصر سوئیچ حجیم، نامطمئن، و شکننده همچون لامپهای خلاء و رلهها استفاده کرد.[۲۷] با این پیشرفتها، پردازندههای پیچیدهتر و قابل اطمینانتر، بر روی یک یا چندین برد مدار چاپی که حاوی اجزاء گسسته (منفرد) بودند، پیادهسازی شدند.
در سال ۱۹۶۴، شرکت آیبیام، یک معماری رایانه به نام آیبیام سیستم ۳۶۰ IBM System/360 ارائه کرد، که در مجموعهای از کامپیوترهایی استفاده شد که قادر بودند برنامههای مشابهی را، با سرعتها و کارایی متفاوت اجرا کنند.[۲۸] این نوآوری در آن زمان اهمیت چشمگیری داشت، زیرا بیشتر کامپیوترهای الکترونیک، حتی آنهایی که توسط یک شرکت ساخته میشدند، با یکدیگر ناسازگار بودند. شرکت آیبیام برای ارتقاء این نوآوری، از مفهوم یک ریزبرنامه (یا همان ریزکد) استفاده کرد که هنوز کاربرد گستردهای در پردازندههای جدید دارد.[۲۹] معماری System/360، آنقدر محبوب شد که برای دههها بازار رایانههای بزرگ را به دست گرفت و هنوز هم توسط کامپیوترهای جدید مشابهی نظیر آیبیام سری زد ادامه پیدا کردهاست.[۳۰][۳۱] در سال ۱۹۶۵، شرکت تجهیزات دیجیتال ایکویپمنت کورپوریشن، یک کامپیوتر تأثیرگذار دیگر را با هدف فروش علمی و تحقیقاتی ارائه کرد، که PDP-8 نام داشت.[۳۲] کامپیوترهای ترانزیستوری مزایای منحصر به فرد متعددی در مقایسه با کامپیوترهای پیشین داشتند. ترانزیستورها علاوه بر افزایش دادن قابلیت اعتماد و کاهش مصرف انرژی، همچنین به پردازندهها این امکان را دادند تا با سرعتهای بسیار بالاتر کار کنند، زیرا زمان سوئیچ یک ترانزیستور، در مقایسه با یک لامپ خلأ یا رله کوتاهتر است.[۳۳]
به واسطهٔ افزایش قابلیت اطمینان و سرعت عناصر سوئیچ (که در حال حاضر تقریباً تماماً ترانزیستور هستند)، سرعت ساعت پردازندهها در این زمان، به سادگی، به دهها مگاهرتز رسید.[۳۴] علاوه بر این، درحالیکه ترانزیستورهای گسسته و پردازندههای مدار مجتمع استفادهٔ بسیار زیادی داشتند، طراحیهایی جدید با کارایی بالا، همچون پردازندههای برداری اسامدی (تک دستورالعمل، چندین داده) شروع به ظهور کردند.[۳۵] این طراحیهای تحقیقاتی ابتدایی، بعدها باعث ظهور دورهٔ ابررایانههای اختصاصی، نظیر ابررایانههای ساخته شده توسط شرکت کری و فوجیتسو شد.[۳۵]
CPUهای مجتمع کوچک-مقیاس
در این دوره، روشی برای تولید تعداد زیادی ترانزیستور بهم متصل در یک فضای فشرده ابداع شد. مدار مجتمع این امکان را فراهم کرد تا تعداد زیادی ترانزیستور را بتوان بر روی یک دای نیمهرسانا یا همان chip تولید کرد.
در ابتدا فقط مدارهای دیجیتال غیر اختصاصی بسیار پایهای همچون گیتهای NOR در داخل آیسیها کوچکسازی شدند.[۳۶] بهطور کلی، پردازندههایی که مبتنی بر این آیسیهای «بلوک سازنده» هستند، ابزارهای «مجتمع کوچک-مقیاس» (small-scale integration) نام دارند. آیسیهای SSI، نظیر آیسیهایی که در کامپیوتر هدایت کننده آپولو استفاده شدند، معمولاً حاوی حداکثر دهها ترانزیستور بودند. برای ساخت یک پردازندهٔ کامل با استفاده از آیسیهای SSI نیاز به هزاران چیپ بود، با این حال، اینها در مقایسه با طراحیهای ترانزیستوری گسستهٔ پیشین، مصرف انرژی و فضای بسیار کمتری داشتند.[۳۷] سیستم ۳۷۰ آیبیام، که به دنبال ۳۶۰ آیبیام آمد، به جای ماژولهای ترانزیستوری-گسسته با تکنولوژی Solid Logic Technology، از آیسیهای SSI استفاده کرد.[۳۸][۳۹] سیستم PDP-8/I و KI10 PDP-10 متعلق به شرکت DEC نیز، ترانزیستورهای مورد استفاده در سیستمهای PDP-8 و PDP-10 را کنار گذاشت، و به سراغ آیسیهای SSI رفت[۴۰]و سیستم خطی PDP-11 آن، که بسیار محبوب بود، در ابتدا توسط آیسیهای SSI ساخته شد، اما سرانجام با استفاده از اجزای LSI، در زمانی که این اجزا عملی شده بودند، پیادهسازی شد.
CPUهای مجتمع بزرگ-مقیاس
ماسفت (metal-oxide-semiconductor field-effect transistor)، یا همان ترانزیستور ماس، توسط آقایان Mohamed Atalla و Dawon Kahng در آزمایشگاه Bell Labs، در سال ۱۹۵۹ اختراع شد و در سال ۱۹۶۰ ثبت شد.[۴۱]این امر منجر به تولید مدار مجتمع MOS شد، که در سال ۱۹۶۰ توسط Atalla و در سال ۱۹۶۱ توسط Kahng مطرح شد[۴۲]و سپس توسط Fred Heiman و Steven Hofstein در شرکت RCA، در سال ۱۹۶۲ تولید شد. ماسفت با داشتن مقیاس پذیری بالا[۴۳]و مصرف انرژی بسیار کمتر[۴۴] و تراکم بالاتر در مقایسه با ترانزیستورهای پیوند دوقطبی، امکان تولید مدارهای مجتمع با تراکم بالا را فراهم کرد.[۴۵][۴۶]
آقای Lee Boysel مقالات تأثیرگذاری را، از جمله یک «بیانیه» در سال ۱۹۶۷، که در آن توضیح میداد چگونه یک کامپیوتر بزرگ ۳۲ بیتی را با استفاده از تعداد نسبتاً کمی از مدارهای مجتمع مقیاس بزرگ بسازیم، منتشر کرد. تنها روش برای ساخت چیپهای LSI که دارای ۱۰۰ یا بیش از ۱۰۰ گیت بودند،[۴۷][۴۸]استفاده از فرایند تولید نیمه هادی اکسید فلز (PMOS , NMOS , CMOS) بود. با این حال، برخی شرکتها، همچنان پردازندهها را با استفاده از چیپهای منطق ترانزیستور-ترانزیستور (transistor–transistor logic) دوقطبی میساختند، زیرا ترانزیستورهای پیوند دوقطبی تا زمان دهه ۱۹۷۰ در مقایسه با تراشههای ماس سریع تر بودند (چند شرکت، هم چون Datapoint، تا اوایل دهه ۱۹۸۰، پردازندهها را با استفاده از چیپهای TTL میساختند).[۴۸] در دههٔ ۱۹۶۰، آی سیهای ماس کندتر بودند و در ابتدا، فقط در مواردی که مصرف انرژی کمتربود، مفید بودند.[۴۹][۵۰] به دنبال ابداع تکنولوژی ماس بر مبنای دروازه سیلیکونی توسط Federico Faggin در شرکت Fairchild Semiconductor، آی سیهای MOS به میزان زیادی جایگزین TTL دو قطبی، به عنوان تکنولوژی استاندارد تراشه در اوایل دهه ۱۹۷۰ شدند.[۵۱]
با پیشرفت تکنولوژی میکرو الکترونیک، ترانزیستورهای بیشتری در داخل آی سیها قرار داده شدند، که باعث کاهش تعداد آی سیهای مورد نیاز برای یک پردازنده شد. آی سیهای MSI و LSI، تعداد ترانزیستورها را به صدها و سپس هزاران عدد افزایش داد. در سال ۱۹۶۸، تعداد آی سیهای مورد نیاز برای ساخت یک پردازنده کامل، به تعداد ۲۴ آی سی از ۸ نوع کاهش پیدا کرد، که هر کدام حاوی تقریباً هزار ماسفت بودند.[۵۲]اولین پیادهسازی سیستم PDP-11 به طریق LSI، با داشتن تفاوت بسیار با نسلهای قبلی SSI و MSI آن، حاوی یک پردازنده بود که فقط از چهار مدار مجتمع LSI تشکیل شده بود.[۵۳]
ریزپردازندهها
پیشرفت در زمینه تکنولوژی مدار مجتمع ماس، منجر به ابداع ریز پردازنده در اوایل دههٔ ۱۹۷۰ شد.[۵۴] از زمان ارائهٔ اولین ریزپردازندهٔ تجاری، یعنی اینتل ۴۰۰۴ در سال ۱۹۷۱، و اولین ریزپردازنده ای که بهطور گسترده مورد استفاده قرار گرفت، یعنی اینتل ۸۰۸۰ در سال ۱۹۷۴، این کلاس از پردازندهها، تقریباً بهطور کامل، تمام روشهای دیگر پیادهسازی پردازنده را از رده خارج کردند. تولیدکنندههای رایانههای بزرگ و مینی کامپیوترها در آن زمان، برنامههای تولید آی سی مالکیتی را آغاز کردند، تا معماریهای کامپیوتری قدیمی خود را ارتقا دهند و سرانجام، ریز پردازندههایی ابداع کردند که با مجموعهٔ دستورالعمل و همچنین با سختافزار و نرمافزار قدیمی آنها نیز سازگاری داشتند. با در نظر گرفتن پیشرفت و موفقیت همهگیر کامپیوترهای شخصی، در حال حاضر، اصطلاح CPU تقریباً بهطور کامل به ریزپردازندهها گفته میشود. میتوان چندین CPU (به نام هسته) را در یک چیپ پردازشی با هم ترکیب کرد.[۵۵]
نسلهای قبلی پردازندهها، به شکل اجزای گسسته و آی سیهای کوچک متعدد در یک یا بیش از یک برد مدار پیادهسازی میشدند.[۵۶] این در حالی است که، ریز پردازندهها، درواقع، پردازندههایی هستند که با استفاده از تعداد بسیار کمی از آی سیها (معمولاً فقط یکی) تولید میشوند.[۵۷] در نتیجهٔ پیادهسازی روی یک دای، اندازهٔ کلی پردازندهها کوچکتر شد که منجر به افزایش سرعت سوئیچ شد، که دلیل آن، فاکتورهای فیزیکی نظیر کاهش ظرفیت خازنی پارازیتی بود.[۵۸][۵۹] این امر باعث شدهاست تا ریزپردازندههای همگام، دارای سرعتهای ساعتی با محدودهٔ دهها مگاهرتز تا چندین گیگاهرتز باشند. علاوه بر این، قابلیت ساخت ترانزیستورهای بسیار کوچک در یک آی سی، باعث افزایش پیچیدگی و تعداد ترانزیستورها در یک پردازشگر، به میزان چندین برابر، شد. این رویه ای که بهطور گسترده مشاهده میشود، تحت قانون مور توصیف میشود، که ثابت شدهاست، پیشبینی کننده ای نسبتاً دقیق برای رشد پیچیدگی پردازنده (و سایر آی سیها) تا سال ۲۰۱۶ بود.[۶۰][۶۱]
اگرچه پیچیدگی، اندازه، ساختار، و فرم کلی پردازندهها از سال ۱۹۵۰ بسیار تغییر کردهاست،[۶۲] اما طراحی و عملکرد اساسی آنها زیاد تغییر نکردهاست. تقریباً تمام پردازندههای مرسوم امروزی را میتوان به شکل بسیار دقیقی، به فرم ماشینهای ذخیره کننده برنامه ای فون نویمان، توصیف کرد.[۶۳] از آنجایی که قانون مور دیگر صدق نمیکند، نگرانیهایی پیرامون محدودیتهای تکنولوژی ترانزیستوری مدار مجتمع بهوجود آمدهاست. کوچک سازی بسیار زیاد دروازههای الکترونیک موجب شدهاست تا اثرات پدیدههایی نظیر، مهاجرت الکتریکی (electromigration) و نشت تحت-آستانه ای (subthreshold leakage) بسیار چشمگیرتر شوند.[۶۴][۶۵] این نگرانیهای جدیدتر، از جمله فاکتورهایی هستند که موجب شدهاند تا محققان به دنبال روشهای جدید محاسبه، نظیر کامپیوتر کوانتومی و همچنین توسعهٔ استفاده از موازی سازی و سایر روشهایی که مزایای مدل کلاسیک فون نویمان را افزایش میدهند، باشند.
شاخصهای عملکرد پردازنده ها
عملکرد پردازنده، تأثیر زیادی بر سرعت بارگیری برنامهها و اجرای روان آنها دارد و برای اندازهگیری عملکرد هر پردازنده نیز معیارهای مختلفی وجود دارد که فرکانس (سرعت ساعت) یکی از مهمترین آنها است. پس دقت داشته باشید فرکانس هر هسته را میتوان معیاری برای اندازهگیری توان پردازشی آن در نظر گرفت، اما این معیار لزوماً معرف عملکرد کلی پردازنده نیست و موارد زیادی مانند تعداد هستهها و رشتهها، معماری داخلی (هم افزایی بین هستهها)، ظرفیت حافظهی کش، قابلیت اورکلاک، توان حرارتی، توان مصرفی، IPC و … را نیز برای قضاوت در مورد عملکرد کلی پردازنده در نظر گرفت.
همافزایی یا سینرژی (Synergy) به اثری گفته میشود که از جریان یا برهمکنش (تعامل) دو یا چند عنصر بهوجود میآید. اگر این اثر از مجموع اثرهایی که هر کدام از آن عناصر جداگانه میتوانستند به وجود آورند بیشتر شود در این صورت پدیدهی همافزایی رخ داده است.
سی پی یو (CPU) به عنوان مغز یا واحد پردازشی مرکزی یک کامپیوتر عمل میکند و مسئول اجرای دستورات و انجام محاسبات است. عملیات اصلی یک CPU از چرخه ای به نام چرخه “بازیابی، تفسیر، اجرا” پیروی می کند. در ادامه هر مرحله از این چرخه را توضیح می دهیم که چگونه دستورالعمل ها از حافظه واکشی و رمزگشایی می شوند و توسط CPU اجرا می شوند. روش کار سی پی یو به صورت سیکلهای ساعتی انجام میشود و شامل مراحل زیر میشود:
- بازیابی (Fetch): در ابتدا، سی پی یو از حافظه اصلی (RAM) دستورات ماشینی (instruction) را با استفاده از آدرس مرتبط با آنها بازیابی میکند. این آدرسها از مکانی به نام مکان نشانگر دستور (Program Counter) به دست میآید که نشانگر محل فعلی اجرای برنامه در حافظه است.
- تفسیر و دیکد (Decode): دستورات بازیابی شده در این مرحله تفسیر و دیکد میشوند. این بدان معناست که سی پی یو تشخیص میدهد که دستور چه کاری باید انجام دهد و کدام عملیاتها را باید اجرا کند.
- اجرا (Execute): در این مرحله، سی پی یو عملیاتهای مورد نیاز برای دستور انجام میدهد. این عملیات ممکن است شامل محاسبات ریاضی، عملیات منطقی، و یا دسترسی به حافظه باشد.
- ذخیره نتیجه (Write Back): نتیجه عملیات انجام شده در مرحله قبلی در این مرحله به حافظه اصلی یا به رجیسترهای داخلی سی پی یو ذخیره میشود.
این چرخهها به صورت مداوم تکرار میشوند، و سرعت سیکلهای ساعتی توسط ساعت سیستم (system clock) کنترل میشود. هر چه سرعت ساعت بیشتر باشد، سی پی یو قادر به انجام عملیاتهای بیشتر در یک زمان کوتاهتر خواهد بود، که به عبارت دیگر بهبود عملکرد سیستم را فراهم میکند. به طور کلی، سی پی یو این دستورات و مراحل را به سرعت بسیار بالا و به صورت متوالی انجام میدهد تا اجرای برنامهها و کارهای مختلف در کامپیوتر را فراهم کند.
در ادامه، دربارهی عوامل تأثیرگذار در عملکرد پردازنده، بیشتر توضیح میدهیم:
فرکانس پردازنده ها
یکی از مهمترین عوامل در انتخاب و خرید یک پردازنده فرکانس (سرعت کلاک یا Clock Speed) آن بوده که معمولاً برای همهی هستههای آن پردازنده عددی ثابت است. تعداد عملیاتی که پردازنده در هر ثانیه انجام میدهد را سرعت آن معرفی میکنند و با واحد هرتز (Hertz) مگاهرتز (MHz برای پردازندههای قدیمیتر) یا گیگاهرتز (GHz) بیان میشود.
در فرکانس یکسان، پردازندهای با IPC بالاتر میتواند پردازش بیشتری انجام دهد و قدرتمندتر است
بهطور دقیقتر فرکانس به تعداد چرخههای محاسباتی اشاره دارد که هستههای پردازنده در هر ثانیه انجام میدهند و با واحد گیگاهرتز (GHz-میلیاردها چرخه در ثانیه) اندازهگیری میشود.
برای مثال، پردازندهای با فرکانس ۳٫۲ گیگاهرتز، ۳٫۲ میلیارد سیکل عملیات در ثانیه اجرا میکند. در اوایل دههی ۱۹۷۰، پردازندهها از فرکانس یک مگاهرتز (MHz) یا اجرای یک میلیون چرخه در ثانیه عبور کردند و در حدود سال ۲۰۰۰ واحد اندازهگیری گیگاهرتز (GHz) برابر با یک میلیارد هرتز برای اندازهگیری فرکانس آنها انتخاب شد.
گاهی اوقات، چندین دستورالعمل در یک چرخه تکمیل میشوند و در برخی موارد نیز، یک دستورالعمل ممکن است در چندین چرخه پردازش شود. ازآنجاکه معماریها و طراحیهای مختلف هر پردازنده، دستورالعملها را به شکلی متفاوت انجام میدهند، توان پردازشی هستههای آنها بسته به معماری میتواند متفاوت باشد. در واقع بدون دانستن تعداد دستورالعملهای پردازششده در هر چرخه (IPC) مقایسهی فرکانس دو پردازنده کاملاً بیمعنی است.
فرض کنید دو پردازنده داریم؛ یکی توسط شرکت A و دیگری توسط شرکت B تولید شده است و فرکانس هر دوی آنها یکسان و برابر با یک گیگاهرتز است. اگر هیچ اطلاعات دیگری دراختیار نداشته باشیم، ممکن است این دو پردازنده را از نظر عملکرد یکسان در نظر بگیریم؛ اما اگر پردازندهی شرکت A در هر چرخه یک دستورالعمل را تکمیل کند و پردازندهی شرکت B نیز بتواند در هر چرخه دو دستورالعمل را کامل کند. بدیهی است که پردزاندهی دوم، عملکردی سریعتر از پردازندهی A خواهد داشت.
به عبارت سادهتر، در فرکانس یکسان، پردازندهای با IPC بالاتر میتواند پردازش بیشتری انجام دهد و قدرتمندتر است. پس برای ارزیابی صحیح عملکرد هر پردازنده، علاوه بر فرکانس به تعداد دستورالعملهایی که در هر چرخه انجام میدهد هم نیاز خواهید داشت.
بنابراین بهتر است فرکانس هر پردازنده را با فرکانس پردازندههای سریها و نسلهای مشابه با همان پردازنده مقایسه کرد. این احتمال وجود دارد که پردازندهای مربوط به پنج سال پیش با فرکانسی بالا، از پردازندهای جدید با فرکانسی پایینتر بهتر عمل کند، چراکه معماریهای جدیدتر به شکلی کارآمدتر با دستورالعملها برخورد میکنند.
پردازندههای سری X اینتل ممکن است از پردازندههای سری K با فرکانس بالاتر بهتر عمل کند، زیرا وظایف را بین هستههای بیشتری تقسیم میکنند و حافظهی کش بزرگتری دارند؛ از سوی دیگر در همان نسل از پردازندهها، پردازندهای با فرکانس بالاتر معمولاً در بسیاری از برنامهها بهتر از پردازندههایی با فرکانس پایینتر عمل میکند. به همین دلیل است که در مقایسهی پردازندهها، شرکت تولیدکننده و نسل پردازنده از اهمیت بالایی برخوردار است.
فرکانس پایه و فرکانس بوست: فرکانس پایهی هر پردازنده، حداقل فرکانسی است که پردازنده در زمان بیکاری یا هنگام انجام پردازشهای سبک با آن کار میکند؛ درمقابل، فرکانس بوست معیاری است که نشان میدهد عملکرد پردازنده هنگام انجام محاسبات سنگینتر یا فرآیندهای سختتر، چقدر میتواند افزایش پیدا کند. فرکانسهای بوست بهطور خودکار اعمال میشوند و با گرمای حاصل از پردازشهای سنگین، قبل از اینکه پردازنده به سطوح ناامنی در انجام محاسبات برسد، محدود میشوند.
در واقع نمیتوان بدون محدودیتهای فیزیکی (عمدتا برق و گرما) فرکانس پردازندهای را افزایش داد و زمانی که فرکانس به حدود ۳ گیگاهرتز میرسد، مصرف برق بهطور نامتناسبی افزایش پیدا میکند.
حافظه کش
یکی دیگر از عواملی که بر عملکرد پردازنده تأثیر میگذارد، ظرفیت حافظهی کش یا رم پردازنده است؛ این نوع رم به دلیل قرار گرفتن در نزدیکی پردازنده بسیار سریعتر از رم اصلی سیستم عمل کرده و پردازنده از آن برای ذخیرهی موقت دادهها و کاهش زمان انتقال دادهها به/از حافظهی سیستم استفاده میکند.
بنابراین، کش نیز میتواند تأثیر زیادی بر عملکرد پردازنده داشته باشد؛ هرچه ظرفیت رم پردازنده بیشتر باشد، عملکرد بهتری خواهد داشت. خوشبختانه امروزه تمام کاربران میتوانند به ابزارهای بنچمارک دسترسی داشته باشند و فارغ از ادعاهای تولیدکنندهها، خودشان هم عملکرد پردازندهها را ارزیابی کنند.
حافظهی کش میتواند چند لایهای باشد و با حرف L نشان داده میشود. معمولاً پردازندهها تا سه یا چهار لایه حافظهی کش دارند که لایهی اول (L1) نسبت به لایهی دوم (L2)، لایهی دوم نسبت به لایهی سوم (L3) و لایهی سوم نیز نسبت به لایهی چهارم (L4) سرعت بیشتر و حافظهی کمتری دارد. حافظهی کش معمولاً تا چند ده مگابایت فضا برای ذخیره کردن ارائه میدهد و هرچه این فضا بیشتر باشد، پردازنده با قیمت بالاتری به فروش خواهد رسید.
حافظهی کش وظیفهی حفظ داده را بر عهده دارد؛ این حافظه از رم (RAM) کامپیوتر سرعت بالاتری دارد و به همین دلیل تأخیر در اجرای دستورها را کاهش میدهد؛ درواقع پردازنده برای دسترسی به دادهای دلخواه، ابتدا حافظهی کش را چک میکند و در صورتی که دادهی مورد نظر در آن حافظه وجود نداشته باشد به سراغ رم میرود.
- حافظهی کش سطح یک (L1) که اولین حافظهی کش یا کش داخلی نام دارد؛ نزدیکترین حافظه به پردازنده است و سرعت بالا و حجم کمتری نسبت به دیگر سطوح حافظهی کش دارد، این حافظه، مهمترین دادههای مورد نیاز برای پردازش را در خود ذخیره میکند؛ چراکه پردازنده هنگام پردازش یک دستورالعمل، اول از همه به سراغ حافظهی کش سطح یک میرود.
- حافظهی کش سطح دو (L2) که به آن حافظهی کش خارجی میگویند نسبت به L1 سرعت کمتر و حجم بیشتری دارد و با توجه به ساختار پردازنده ممکن است بهصورت مشترک یا مجزا استفاده شود. L2 برخلاف L1 در رایانههای قدیمی روی مادربرد قرار میگرفت ولی امروزه در پردازندههای جدید این حافظه روی خود پردازنده قرار میگیرد و نسبت به لایهی بعدی کش، یعنی L3، تأخیر کمتری دارد.
- حافظهی کش L3 حافظهای است که در پردازنده بین تمام هستهها مشترک است و از لحاظ ظرفیت نسبت به حافظهی کش L1 یا L2 حجم بیشتری داشته، اما از نظر سرعت از آن دو کندتر است.
- حافظهی کش L4 هم مانند L3، نسبت به L1 یا L2 حجم بیشتر و سرعت کمتری دارد؛ L3 یا L4 معمولاً بهصورت اشتراکی مورداستفاده قرار میگیرند.
هسته های پردازشی
هسته، واحد پردازشی پردازنده است که میتواند بهطور مستقل تمام وظایف محاسباتی را انجام داده یا پردازش کند. از این منظر، میتوان هسته را پردازندهای کوچک در کل واحد پردازش مرکزی در نظر گرفت. این بخش از پردازنده از همان واحدهایی عملیاتی محاسبه و عملیات منطقی (ALU)، کنترل حافظه (CU) و ثبات (Register) تشکیل شده است که فرایند پردازش دستورها را با چرخهی واکشی-اجرا انجام میدهند.
در ابتدا پردازندهها تنها با یک هسته کار میکردند، اما امروزه پردازندهها عمدتاً چند هستهای هستند و حداقل دو یا چند هسته روی مدار مجتمع، دو یا چند فرایند را بهطور همزمان پردازش میکنند. توجه داشته باشید که هر هسته تنها میتواند در هر زمان یک دستور را اجرا کند. پردازندههای مجهز به چند هسته، مجموعه دستورها یا برنامهها را با استفاده از پردازش موازی (Parallel Computing) سریعتر از قبل اجرا میکنند. البته داشتن هستههای بیشتر به معنای افزایش کارایی کلی پردازنده نیست. چون بسیاری از برنامهها هنوز از پردازش موازی استفاده نمیکنند.
- پردازندههای تک هستهای (Single-core): قدیمیترین نوع پردازنده، پردازندهی تکهستهای است که میتواند در هر زمان، تنها یک فرمان را اجرا کند و برای انجام چندین کار بهطور همزمان کارآمد نیست. در این پردازنده شروع فرایندی مستلزم پایان عملیات قبلی است و در صورت اجرای بیش از یک برنامه، عملکرد پردازنده به شکل قابلتوجهی کاهش پیدا میکند. عملکرد یک پردازندهی تک هستهای با اندازهگیری توان آن و براساس فرکانس محاسبه میشود.
- پردازندههای دو هستهای (Dual-core): پردازندهی دو هستهای از دو هستهی قوی تشکیل شده و عملکردی مشابه دو پردازندهی تک هستهای دارد. تفاوت این پردازنده با پردازندهی تک هستهای در این است که در آرایهای متغیر از جریانهای داده به صورت رفت و برگشتی سوئیچ میکند و اگر رشته یا رشتههای بیشتری اجرا شود، پردازنده دو هستهای میتواند چندین وظیفه پردازش را به شکل بهینهتری مدیریت کند.
- پردازندههای چهار هستهای (Quad-core): پردازندهی چهار هستهای، مدل بهیینهشدهای از پردازندهی چند هستهای است که حجم کار را بین هستهها تقسیم کرده و با بهرهمندی از چهار هسته، قابلیت چندوظیفگی موثرتری را فراهم میکند؛ از این رو برای گیمرها و کاربران حرفهای مناسبتر است.
- پردازندههای شش هستهای (Hexa-Core): یکی دیگر از انواع پردازندههای چند هستهای، پردازندهی شش هستهای است که پردازشها را نسبت به انواع چهار هستهای و دو هستهای با سرعت بالاتری انجام میدهد. برای مثال پردازندههای Core i7 اینتل شش هسته دارند و برای کاربری روزمره مناسب هستند.
- پردازندههای هشت هستهای (Octa-Core): پردازندههای هشت هستهای با هشت هستهی مستقل توسعه یافتهاند و نسبت به انواع قبلی کارایی بهتری ارائه میدهند؛ این پردازندهها شامل مجموعهای دوگانه از پردازندههای چهار هستهای هستند که فعالیتهای مختلفی را بین انواع مختلف تقسیم میکنند. به این معنی که در بسیاری از مواقع، برای پردازش از حداقل هستههای مورد نیاز استفاده شده و اگر اضطرار یا نیازی وجود داشته باشد، چهار هستهی دیگر نیز در انجام محاسبات به کار گرفته میشوند.
- پردازندههای ده هستهای (Deca-Core): پردازندههای ده هستهای از ده سیستم مستقل تشکیل شدهاند که در اجرا و مدیریت پردازشها نسبت به سایر پردازندهها، قدرتمندتر عمل میکنند. این پردازندهها از انواع دیگر سریعتر هستند، قابلیت چندوظیفگی را به بهترین شکل ممکن انجام میدهند و روزبهروز هم تعداد بیشتری از آنها به بازار عرضه میشوند.
تفاوت بین پردازش تک هستهای و چند هستهای
بهطور کلی میتوان گفت که انتخاب بین پردازندهای تکهستهای و قدرتمند و پردازندهای چند هستهای با قدرتی معمولی، تنها و تنها به نحوهی کاربری بستگی دارد و نسخهی از پیش نوشتهشدهای برای همه وجود ندارد. عملکرد قدرتمند پردازندههای تک هستهای برای استفاده در برنامههای نرمافزاری که به چندین هسته احتیاجی ندارند یا نمیتوانند از چند هسته استفاده کنند، اهمیت دارد. داشتن هستههای بیشتر لزوماً به معنای سرعت بیشتر نیست، اما اگر برنامهای برای استفاده از چند هسته بهینهسازی شده باشد، با هستههای بیشتر سریعتر اجرا میشود. بهطور کلی، اگر از برنامههایی که برای پردازش تک هستهای بهینهسازی شدهاند، بیشتر استفاده میکنید، احتمالاً پردازندهای با تعداد هستههای زیاد منفعتی برایتان نخواهد داشت.
فرض کنید میخواهید ۲ نفر را از نقطه A به B ببرید، قطعاً یک لامبورگینی این کار را به خوبی تمام انجام میدهد، اما اگر بخواهید ۵۰ نفر را جابهجا کنید، اتوبوس میتواند راهحل سریعتری از چندین بار رفتوآمد لامبورگینی باشد. همین امر در مورد پردازش تکهستهای درمقابل چندهستهای نیز صدق میکند.
در سالهای اخیر و با پیشرفت تکنولوژی، هستههای پردازندهها بهطور فزایندهای کوچکتر شدهاند و درنتیجه میتوان هستههای بیشتری را روی یک تراشه پردازنده قرار داد و سیستمعامل و نرمافزار نیز باید برای استفاده از تعداد هستههای بیشتر بهینهسازی شوند تا دستورالعملها را تقسیم کرده و بهطور همزمان به هستههای مختلف تخصیص دهند. اگر این کار به درستی انجام شود، عملکردی چشمگیر را شاهد خواهیم بود.
در پردازندههای چند هستهای سنتی، تمام هستهها یکسان پیادهسازی میشدند و امتیاز عملکرد و قدرت یکسانی داشتند. مشکل این پردازندهها، این بود که وقتی پردازنده در حالت بیکار است یا پردازشی سبک انجام میدهد، امکان پایینتر آوردن مصرف انرژی از یک حدی بیشتر وجود ندارد. این مسئله در شرایط دسترسی نامحدود به منابع برق، دغدغه محسوب نمیشود، اما در شرایطی که سیستم برای پردازش به باتری یا منبع برق محدود متکی است، میتواند مشکلساز باشد.
اینجا بود که مفهوم طراحی نامتقارن پردازندهها شکل گرفت. اینتل برای گوشیهای هوشمند به سرعت راهحلی اتخاذ کرد که برخی هستهها پرقدرتتر باشند و عملکردی باکیفیتتری ارائه دهند و تعدادی هسته نیز به صورت کممصرف پیادهسازی شوند؛ این هستهها تنها برای اجرای وظایف پسزمینه یا اجرای برنامههای کاربردی اساسی مانند خواندن و نوشتن ایمیل یا وبگردی خوب عمل میکنند.
هستههای پرقدرت بهطور خودکار زمانی که ویدئو گیمی را راهاندازی میکنید یا زمانی که برنامهای سنگین برای انجام یک کار خاص به عملکرد بهتری نیاز دارد، وارد عمل میشوند.
با اینکه ترکیب هستههای پرقدرت و کممصرف در پردازندهها، ایدهی جدیدی نیست، اما به کار بردن این ترکیب در کامپیوترها، حداقل تا زمان عرضهی پردازندههای نسل دوازدهم آلدر لیک توسط اینتل، آنچنان رایج نبود.
در هر مدل از پردازندههای نسل دوازدهم اینتل، هستههای E (کممصرف) و هستههای P (قدرتمند) وجود دارند؛ نسبت بین این دو نوع هسته میتواند متفاوت باشد، اما برای مثال در پردازندههای سری Core i9 آلدر لیک، هشت هسته برای انجام پردازشهای سنگین و هشت هسته برای انجام پردازشهای سبک در نظر گفته شده است. سریهای i7 و i5 به ترتیب دارای طراحی ۸ / ۴ و ۶ / ۴ برای هستههای P و E هستند.
مزایای زیادی برای داشتن رویکرد معماری ترکیبی در هستههای پردازندهها وجود دارد و کاربران لپتاپها در این میان بیشترین سود را خواهند برد، چراکه اکثر کارهای روزمره مانند وبگردی و… به عملکرد فشردهای نیاز ندارند. اگر تنها هستههای کممصرف درگیر باشند، کامپیوتر یا لپتاپ داغ نمیکند و باتری آن مدت زمان بیشتری دوام میآورد.
تولید هستههای کممصرف ساده و کمهزینه است، بنابراین استفاده از آنها برای تقویت و آزادسازی هستههای قدرتمند و پیشرفته ایدهای هوشمندانه به نظر میرسد
حتی اگر سیستم خود را به منبع برقی متصل کرده باشید هم، وجود هستههای کممصرف کارآمد خواهد بود. برای مثال اگر مشغول گیمینگ باشید و این فرایند به تمام قدرت پردازنده نیاز داشته باشد، هستههای قدرتمند میتوانند این نیاز را برطرف کنند و هستههای کممصرف نیز همزمان مسئولیت اجرای فرایندهای پسزمینه یا برنامههایی مانند Skype و… را عهدهدار میشوند.
حداقل در مورد پردازندههای آلدر لیک اینتل، هستههای P و E به گونهای طراحی شدهاند که با یکدیگر تداخل نداشته باشند تا هر کدام بتوانند به صورت مستقل وظایفی را انجام دهند. متأسفانه، ازآنجاکه ترکیب پردازندههای مختلف، مفهومی نسبتاً جدید برای پردازندههای x86 محسوب میشود، این تغییر اساسی در معماری x86 با مشکلاتی همراه است.
توسعهدهندگان نرمافزارها قبل از مطرح شدن ایدهی هستههای هیبریدی (یا ترکیب هستههای قدرتمند یا P و کممصرف یا E) دلیلی برای توسعهی محصولات خود به شکل سازگار با این معماری نمیدیدند، بنابراین نرمافزار آنها از تفاوت بین هستههای کممصرف و پرمصرف آگاه نبوده و همین امر باعث میشود که در برخی موارد گزارشهایی مبنی بر خرابی یا رفتار عجیب برخی نرمافزارها (مانند Denuvo) مطرح شود.
رشته های پردازشی
رشتههای پردازشی یا Thread به رشتههایی از دستورالعملها گفته میشود که برای پردازش به پردازنده ارسال میشوند؛ هر پردازنده در حالت عادی قابلیت پردازش یک دستورالعمل را دارد که به آن دستورالعمل اصلی میگویند و در صورتی که دو دستورالعمل به پردازنده ارسال شود، دستورالعمل دوم بعد از اجرای دستورالعمل اول اجرا میشود. این روند میتواند به کند شدن سرعت و کارایی پردازنده منجر شود. در همین راستا تولیدکنندگان پردازندهها ، هر هستهی فیزیکی را به دو هستهی مجازی (Thread) تقسیمبندی میکنند که هر یک از این هستهها امکان اجرای یکرشته پردازش مجزا را دارد و هر هسته با داشتن دو ترد، میتواند دو رشتهی پردازشی را بهطور همزمان اجرا کند.
پردازش فعال درمقابل پردازش غیرفعال
پردازش فعال به فرایندی اطلاق میشود که کاربر برای تکمیل یک دستورالعمل نیاز دارد تا دادهها را به صورت دستی تنظیم کند؛ از نمونههای رایج پردازشهای فعال میتوان به طراحی حرکت، مدلسازی سهبعدی، ویرایش ویدئو یا بازی اشاره کرد. در این نوع از پردازش، عملکرد تکهستهای و سرعت بالای هسته اهمیت زیادی دارد، بنابراین در اجرای چنین پردازشهایی برای بهرهمدی از عملکردی روان به تعداد هستههای کمتر، اما قدرتمندتر نیاز داریم.
از سوی دیگر، پردازش غیرفعال، دستورالعملهایی هستند که معمولاً بهراحتی میتوان آنها را به صورت موازی اجرا و به حال خود رها کرد، مانند رندرهای سهبعدی و ویدئوها؛ چنین پردازشهایی به پردازندههایی با تعداد هستههای زیاد و فرکانس پایهی بالاتری، مانند پردازندههای سری Threadripper ایامدی نیاز دارند.
یکی از عواملی تأثیرگذار در انجام پردازشهای غیرفعال، تعداد بالای رشتهها و قابلیت بهکارگیری آنها است. به زبان ساده، رشته مجموعهای از دادهها است که برای پردازش از یک برنامه کاربردی به پردازنده ارسال میشود و امکان انجام چندین کار همزمان را به شکلی کارآمد و سریع برای پردازنده فراهم میکند؛ درواقع به دلیل وجود رشتهها در سیستم است که میتوان همزمان با وبگردی به موسیقی هم گوش دهید.
رشتهها اجزای فیزیکی پردازنده نیستند، بلکه میزان پردازشهایی را که هستههای پردازنده میتوانند انجام دهند، نشان میدهند و برای اجرای چندین دستورالعمل بسیار فشرده بهطور همزمان، به پردازندهای با تعداد زیادی رشته نیاز خواهید داشت.
تعداد رشتههای هر پردازنده، با تعداد هستههای آن ارتباط مستقیمی دارد؛ در واقع هر هسته معمولاً میتواند دو رشته داشته باشد و همه پردازندهها رشتههای فعالی دارند که برای انجام هر فرایند، حداقل یک رشته را به آن اختصاص میدهند.
هایپرتردینگ یا SMT چیست؟
هایپرتردینگ (Hyperthreading) در پردازندههای اینتل و مولتیتردینگ همزمان (SMT) در پردازندههای AMD مفهومهایی برای نشان دادن فرایند تقسیم هستههای فیزیکی به هستههای مجازی هستند؛ در واقع این دو قابلیت، راهکاری برای زمانبندی و اجرای دستورالعملهایی است که بدون وقفه به پردازنده ارسال میشوند.
امروزه اکثر پردازندهها به قابلیت هایپرتردینگ یا SMT مجهز هستند و دو رشته را در هر هسته اجرا میکنند. بااینحال، برخی از پردازندههای پایینرده، مانند سری Celeron اینتل یا سری Ryzen 3 ایامدی از این قابلیت پشتیبانی نمیکنند و تنها یک رشته در هر هسته دارند. حتی برخی از پردازندههای بالاهردهی اینتل نیز به دلایل مختلف مانند تقسیمبندی بازار، با هایپرتردینگ غیرفعال عرضه میشوند، بنابراین بهطور کلی بهتر است قبل از خرید هر پردازنده، برای اطلاع از این موضوع، حتماً بخش توضیحات هستهها و رشتههای (Cores & Threads) آن را بررسی کنید.
قابلیت هایپرتردینگ یا مولتیتردینگ همزمان به برنامهریزی مؤثرتر برای اجرای دستورالعملها کمک میکنند و بخشهایی از هسته را به کار میگیرند که در لحظه غیرفعال هستند. در بهترین حالت، رشتهها در مقایسه با هستههای فیزیکی حدود ۵۰ درصد عملکرد بیشتری ارائه میدهند.
بهطور کلی، اگر در طول روز تنها پردازشهای فعالی مانند مدلسازی سهبعدی را اجرا میکنید، به احتمال زیاد از تمام هستههای پردازندهی خود استفاده نخواهید کرد؛ چراکه این نوع پردازش معمولاً فقط روی یک یا دو هسته اجرا میشود، اما برای انجام پردازشهایی مانند رندرینگ که به تمام توان هستههای پردازنده و رشتههای موجود نیاز دارد، بهرهمندی از قابلیت هایپرتردینگ یا SMT میتواند تفاوت قابلتوجهی در عملکرد ایجاد کند.
پردازنده در گیمینگ
تا قبل از عرضهی پردازندههای چندهستهای، بازیهای کامپیوتری برای سیستمهای تکهستهای توسعه داده میشدند، اما بعد از معرفی اولین پردازندهی دوهستهای در سال ۲۰۰۵ توسط AMD و عرضهی پردازندههای چهار، شش و هشت هستهای بعد از آن، دیگر محدودیتی برای کمک گرفتن از هستههای بیشتر وجود نداشت؛ چراکه قابلیت اجرای چندین عملیات مختلف به صورت همزمان برای پردازندهها فراهم شده بود.
هر گیمر برای داشتن تجربهای رضایتبخش از سیستم گیمینگ، باید پردازنده و پردازندهی گرافیکی (پردازندهی گرافیکی و کارکرد آن را در مقالهای جداگانه به صورت کامل بررسی خواهیم کرد) سیستم خود را به شکلی متعادل انتخاب کند. اگر پردازنده عملکرد ضعیف یا کُندی داشته باشد و نتواند دستورها را بهاندازهی کافی سریع اجرا کند، گرافیک سیستم نیز نمیتواند از حداکثر توان خود بهره ببرد؛ البته برعکس این قضیه هم صادق است. در چنین شرایطی به اصطلاح میگوییم که گرافیک باتِلنِک (Bottleneck) شده است.
بازار تولید تراشه
به دنبال دنیاگیری کووید-۱۹ بسیاری از کارخانههای تولیدی بهصورت موقت تعطیل شدند و همین موضوع باعث شدهاست. کمبود تراشه روی صنایع مختلفی اثر گذاشته که یکی از مهمترین آنها صنعت گوشی هوشمند است.[۸۹] اپل، سامسونگ و هواوی بزرگترین خریداران تراشه در سال ۲۰۲۰ بودهاند. میزان خرید هواوی به علت تحریمهای ایالات متحده آمریکا در مقایسه با سال ۲۰۱۹ در حدود ۲۳ درصد کمتر شدهاست.[۹۰]
Bottleneck چیست؟
در زمینهی کامپیوترها، باتلنک (یا گلوگاه) به محدود شدن عملکرد مؤلفهای درنتیجهی تفاوت در حداکثر قابلیتهای دو مؤلفهی سختافزاری گفته میشود. به زبان ساده اگر واحد گرافیکی دستورالعملها را سریعتر از توان پردازنده برای ارسال آنها، دریافت کند، این واحد تا زمان آماده شدن مجموعهی بعدی دستورالعملها، بیکار میماند و فریمهای کمتری را در ثانیه رندر میکند؛ در این شرایط سطح عملکرد گرافیک به دلیل محدودیتهای پردازنده محدود میشود.
همین امر ممکن است در جهت مخالف نیز اتفاق بیفتد. اگر پردازندهای قدرتمند دستورها را سریعتر از توان دریافتی واحد گرافیک به آن ارسال کند، تواناییهای پردازنده به دلیل عملکرد ضعیف گرافیک محدود میشود.
در واقع سیستمی که از پردازنده و گرافیک متناسب و همرده تشکیل شده باشد، عملکرد بهتر و روانتری را دراختیار کاربر قرار میدهد. به چنین سیستمی، سیستم متعادل گفته میشود. بهطور کلی سیستم متعادل، سیستمی است که سختافزار در آن برای پردازشهای موردنظر و دلخواه کاربر باعث ایجاد باتلنک (یا گلوگاهها) نشود و بدون استفاده نامتناسب (بیش از حد زیاد یا کم) از اجزای سیستم، تجربهی کاربری بهتری ارائه دهد.
بهتر است برای راهاندازی سیستمی متعادل به چند نکته توجه داشته باشید:
- تنها با خرید گرانترین پردازنده و گرافیک موجود در بازار، نمیتوانید سیستمی متعادل برای تجربهی گیمینگ ایدئال راهاندازی کنید.
- باتلنک لزوماً بهخاطر کیفیت یا قدیمی بودن اجزا، ایجاد نمیشود و مستقیماً به عملکرد سختافزارهای سیستم مرتبط است.
- باتلنک شدن گرافیک، مختص سیستمهای پیشرفته نیست و تعادل در سیستمهایی که سختافزار پایینرده دارند نیز از اهمیت بسیار بالایی برخوردار است.
- ایجاد شدن باتلنکها منحصر به پردازنده و گرافیک نیست، اما تعامل بین این دو مؤلفه تا حد زیادی از بروز این معضل جلوگیری میکند.
راهاندازی سیستمی متعادل
در کاربری گیمینگ یا پردازشهای گرافیکی، وقتی گرافیکی از حداکثر توان خود بهره نبرد، تأثیر قدرت پردازنده بر ارتقای کیفیت تجربهی گیمینگ کاربر در صورتی محسوس خواهد بود که هماهنگی بالایی بین واحد گرافیکی و پردازنده وجود داشته باشد؛ علاوهبراین، نوع و مدل بازی نیز دو عامل مهم در انتخاب سختافزار هستند. درحالحاضر، هنوز میتوان از پردازندههای چهار هستهای برای اجرای بازیهای مختلف استفاده کرد، اما قطعاً پردازندههای شش هستهای یا با تعداد هستههای بیشتر، عملکردی روانتر را برای شما به ارمغان میآورند. امروزه پردازندههای چندهستهای برای بازیهایی مانند شوترهای اول شخص (FPS) یا بازیهای چند نفرهی آنلاین، از ملزومات هر سیستم گیمینگی به حساب میآیند.
انتخاب CPU مناسب
انتخاب CPU مناسب برای نیازهای شما مستلزم در نظر گرفتن فاکتورهای مختلفی مانند میزان استفاده، بودجه و سازگاری است. در اینجا سه نکته کلیدی برای انتخاب سی پی یو مناسب را بررسی میکنیم.
- اهداف و کاربردها: اولین قدم در انتخاب سی پی یو مناسب، تعیین اهداف و کاربردهای شماست. اگر برنامههای عمومی و کاربردهای روزمره مانند مرور وب و ایمیل استفاده میکنید، پردازندههای متوسط تا ارزان میتوانند کافی باشند. اما اگر به کاربردهای مرتبط با گرافیک، بازیهای سنگین، ویرایش ویدیو یا مدلسازی سهبعدی نیاز دارید، نیاز به پردازندههای قدرتمندتر با قابلیتهای چند هستهای و فرکانسهای بالا خواهید داشت.
- سازگاری با سیستم: سی پی یو باید با سیستم شما سازگار باشد. این به معنای بررسی این است که سوکت پردازنده (Socket) و نوع مادربورد شما با سی پی یو انتخابی همخوانی دارد. همچنین، مطمئن شوید که منبع تغذیه (PSU) سیستم شما قدرت کافی را برای تامین نیازهای برقی سی پی یو دارد.
- بودجه: بودجه شما نیز یک عامل مهم در انتخاب سی پی یو است. سی پی یوها با قیمتهای مختلف در بازار موجود هستند. انتخاب یک سی پی یو با توجه به بودجه مالی شما مهم است. ممکن است بخواهید تعادلی بین کارایی و قیمت بیابید تا نیازهای خود را برآورده کنید.
با توجه به این نکات، باید با دقت انتخاب کنید. همچنین، مطالعه نقدها و مقایسه مشخصات فنی میتواند به شما کمک کند تا سی پی یو مناسبتری را برای نیازهای خود پیدا کنید.
بیشتر بخوانید: نشخوار فکری چیست؟
پیشرفت های پیشرو در فناوری CPU
پیشرفتها در زمینه پردازندهها در شکلدهی چشمانداز محاسباتی مدرن مؤثر بوده است. یکی از مهم ترین پیشرفت ها، پایبندی بی وقفه به قانون مور است که صنعت نیمه هادی را برای دهه ها هدایت کرده است. این اصل که به نام گوردون مور یکی از بنیانگذاران اینتل نامگذاری شد، پیشبینی کرد که تعداد ترانزیستورهای روی یک ریزتراشه تقریباً هر دو سال یکبار دو برابر میشود و منجر به افزایش تصاعدی در قدرت پردازش میشود. این پیشبینی درست بوده و منجر به کوچکسازی دائمی ترانزیستورها و تولید پردازندههای قدرتمندتر و کم مصرفتر میشود.
یکی دیگر از پیشرفت های قابل توجه، پذیرش گسترده پردازنده های چند هسته ای است. سازندگان به جای تمرکز صرف بر افزایش سرعت ساعت، شروع به ترکیب چندین هسته پردازشی روی یک تراشه کردند. این تغییر امکان پردازش موازی را فراهم کرد که به طور قابل توجهی عملکرد برنامه های چند رشته ای را افزایش داد و کارهایی مانند ویرایش ویدئو، رندر سه بعدی و شبیه سازی های علمی را بسیار سریعتر و کارآمدتر کرد. بهعلاوه، پیشرفتها در طراحی معماری، فرآیندهای تولید و ادغام سختافزارهای تخصصی برای کارهایی مانند هوش مصنوعی و محاسبات کوانتومی همچنان مرزهای آنچه پردازندهها میتوانند به آن دست یابند، ادامه میدهند و تضمین میکنند که آنها در خط مقدم نوآوریهای فناوری باقی میمانند.
جمع بندی
در نتیجه، واحد پردازش مرکزی (CPU) سنگ بنای محاسبات مدرن است که امکان اجرای دستورالعملها، پردازش دادهها و پیشرفتهای بیشماری فناوری را فراهم میکند. همانطور که در دنیای پیچیده معماری، عملکرد و روندهای CPU سفر می کنیم، درک عمیق تری از نقش حیاتی CPU ها در شکل دادن به چشم انداز دیجیتال ایفا می کنیم. چه از علاقه مندان به فناوری، چه حرفه ای یا صرفاً در مورد عملکرد درونی رایانه ها کنجکاو باشید، درک CPU گامی اساسی در جهت تسلط بر قلمرو همیشه در حال تکامل فناوری است.