CPU چیست؟
هنگامی که به دنبال خرید یک لپتاپ، کامپیوتر شخصی یا حتی یک تلفن همراه هستید، با اصطلاحات فنی متعددی روبرو میشوید که ممکن است برای برخی کمی پیچیده و سردرگمکننده باشد. اصطلاحاتی چون Bus ، CPU ، Core، Thread، ROM، Cache و بسیاری دیگر که ممکن است شنیده باشید.
یکی از اصطلاحات کلیدی و مهم در این زمینه، CPU یا واحد پردازش مرکزی است. به زبان ساده، CPU قطعهای حیاتی در هر دستگاه دیجیتالی است که نقش مغز را ایفا میکند و مسئول اجرای دستورات و پردازشها است. این قطعه در دستگاههای مختلف از جمله ساعت های هوشمند ، لپ تاپ ها ، تلفنهای همراه و کنسولهای بازی به کار میرود.
جالب است بدانید که پردازندههای مورد استفاده در دستگاههای مختلف از معماریها و ساختارهای متفاوتی بهره میبرند. به عنوان مثال، پردازندههای تلفن همراه اغلب از نوع SoC هستند که میتوانند CPU، پردازنده گرافیکی ، حافظه و دیگر اجزا را در یک تراشه جای دهند.
پردازندههای مورد استفاده در لپتاپها و کامپیوترهای شخصی نیز با وجود شباهتهایی در معماری، تفاوتهای جزئی در مصرف برق، تولید گرما و قدرت پردازش دارند. به همین دلیل، به پردازندههای مورد استفاده در کامپیوترهای شخصی “Desktop” و به پردازندههای مورد استفاده در لپتاپها “Mobile” گفته میشود.
تاریخچه
تاریخچه پردازندههای مرکزی یا CPU به سال ۱۹۷۱ بازمیگردد، زمانی که شرکت اینتل اولین CPU تجاری جهان با نام «Intel® 4004» را معرفی کرد. این پردازنده ۴ بیتی با فرکانس کاری ۷۴۰ کیلوهرتز قادر بود تا ۹۲۶۰۰ دستور در هر ثانیه را اجرا نماید. تنها ۵ ماه بعد، اینتل پردازنده ۸ بیتی خود با نام «Intel® 8008» و با فرکانس ۸۰۰ کیلوهرتز را روانه بازار کرد. در مقایسه با این، پردازندههای نسل جدید اینتل امروزه از فرکانسهایی بالای ۵ گیگاهرتز پشتیبانی میکنند که تقریباً ۷۰۰۰ برابر بیشتر از اولین CPU تجاری این شرکت است.
اجزای تشکیل دهنده
حالا بیایید نگاهی به اجزای تشکیلدهنده CPU بیندازیم. بسیاری از افراد تصور درستی از ساختار داخلی CPU ندارند و نمیدانند که این قطعه خود از چندین بخش مختلف تشکیل شده است. برخی از این بخشها از ابتدا در CPUها وجود داشتهاند، مانند هستهها، و برخی دیگر با گذشت زمان برای افزایش کارایی اضافه شدهاند، مانند پردازنده گرافیک و حافظه کش در سطوح مختلف.
یکی از این بخشها، حافظه نهان یا کش است که نقش مهمی در افزایش سرعت پردازش دارد. این حافظه کوچک و سریع، مستقیماً در تراشه CPU قرار دارد و برای نگهداری موقت دادهها و دستورالعملهایی که به طور مکرر استفاده می شوند ، به کار می رود.
حافظه کش
حافظه کش در سه سطح L1، L2 و L3 در دسترس است که هرکدام سرعت و ظرفیت متفاوتی دارند. کش L1 سریع ترین و کوچک ترین حافظه کش است ، در حالی که کش L3 بیشترین ظرفیت را دارد اما کندتر است.
این ساختار و ترکیب اجزا در CPU است که عملکرد نهایی و کارایی آن را تعیین میکند و به کاربران امکان میدهد تا از قدرت پردازش بالا در انجام کارهای مختلف بهرهمند شوند.
یکی از اجزای مهم در CPUهای مدرن، کنترل کننده ورودی و خروجی داده از حافظه RAM است. این کنترل کننده، که میتواند به صورت یک تراشه جداگانه یا بخشی از تراشه دیگر باشد، جریان دادهها به حافظه اصلی را مدیریت میکند.
پردازنده گرافیکی
پردازندههای گرافیکی مجتمع نیز به CPUها افزوده شدهاند. این پردازندههای گرافیکی، که به عنوان کارت گرافیک آنبرد شناخته میشوند، برای کاربریهای عمومی مناسب هستند اما برای کار با نرمافزارهای گرافیکی سنگین توصیه نمیشوند. شرکتهای AMD و اینتل هر دو پردازندههای گرافیکی خاص خود را در CPUها بکار میگیرند.
شرکت های سازنده
دو شرکت بزرگ تولید کننده CPU ، AMD و اینتل، از دهه ۱۹۶۰ فعالیت خود را آغاز کردهاند و همواره در رقابت با یکدیگر بودهاند. این رقابت منجر به پیشرفتهای چشمگیر در تولید تراشههای کامپیوتری شده است. از سال گذشته، شرکت اپل نیز با تولید تراشههای انحصاری خود با نام M1، وارد این عرصه شده است. این تراشهها تنها در محصولات اپل مانند MacBook یافت می شوند.
نحوه عملکرد
برای توضیح نحوه عملکرد یک واحد پردازش مرکزی (CPU)، میتوان گفت که این قطعه اساسی کامپیوتر، دستورالعملهایی را از برنامهها دریافت کرده و محاسبات لازم را انجام میدهد. این فرآیند شامل سه مرحله اصلی است : فراخوانی ، رمزگشایی و اجرا. این چرخه از زمان روشن شدن کامپیوتر آغاز شده و تا زمان خاموش شدن آن ادامه دارد.
در مرحله فراخوانی ، CPU دستورالعملها را از حافظه RAM دریافت میکند. سپس در مرحله رمزگشایی، دستورالعملها تجزیه و تحلیل شده و برای اجرا آماده میشوند. در نهایت، در مرحله اجرا، دستورالعملها توسط بخشهای مختلف CPU پردازش میشوند.
CPU از چندین بخش اصلی تشکیل شده است که هرکدام وظیفه خاصی دارند. واحد کنترل (CU) فعالیتهای سیستم را کنترل کرده و دستورالعملها را به بخشهای دیگر ارسال میکند. واحد محاسبه و منطق (ALU) مسئول انجام محاسبات ریاضی و عملیات منطقی است. واحد حافظه (Memory Unit) مکانی برای ذخیرهسازی دادهها و دستورالعملها است.
علاوه بر این، برخی از پردازندهها از فناوری چندرشتهای (Multi-threading) استفاده میکنند که امکان پردازش همزمان چندین دستورالعمل را فراهم میکند. این فناوری به بهبود عملکرد کلی سیستم کمک میکند.
سرعت کلاک نیز یکی دیگر از عوامل مهم در تعیین عملکرد یک CPU است. سرعت کلاک نشاندهنده تعداد دستورالعملهایی است که یک CPU میتواند در هر ثانیه اجرا کند. هرچه سرعت کلاک بالاتر باشد، CPU قادر به اجرای دستورالعملهای بیشتری در واحد زمان است.
با این حال، مهم است که توجه داشته باشیم سرعت کلاک تنها عامل تعیینکننده عملکرد یک CPU نیست و سایر عوامل نیز باید در نظر گرفته شوند. به عنوان مثال، نوع معماری و تکنولوژی به کار رفته در ساخت CPU نیز نقش مهمی در تعیین عملکرد آن دارد.
ساختار و پیاده سازی
در قلب یک واحد پردازش مرکزی (CPU)، مجموعهای از عملیاتهای اصلی وجود دارد که به صورت ثابت در مدارهای آن تعبیه شدهاند و این مجموعه را میتوان “مجموعه دستورالعملها” نامید. این عملیاتها میتوانند شامل افزودن یا کاستن دو عدد، مقایسه دو مقدار یا پریدن به قسمت دیگری از برنامه باشند. هر یک از این عملیاتهای اصلی با یک ترکیب خاص از بیتها که به آن “آپ کد” گفته میشود، در زبان ماشین نمایش داده میشوند. CPU در حین اجرای دستورالعملها در یک برنامه زبان ماشین، تصمیم میگیرد که کدام عملیات را با تجزیه و تحلیل آپ کد مربوطه انجام دهد. یک دستورالعمل کامل در زبان ماشین شامل یک آپ کد و معمولاً بیتهای اضافی است که پارامترهای خاصی برای عملیات مورد نظر را تعیین میکنند (مانند اعدادی که باید در یک عملیات جمع با هم جمع شوند). یک برنامه زبان ماشین از مجموعهای از این دستورالعملها تشکیل شده است که توسط CPU اجرا میشوند.
عملیاتهای محاسباتی واقعی برای هر دستورالعمل توسط یک مدار منطقی ترکیبی در داخل CPU به نام واحد محاسباتی و منطقی (ALU) انجام میشوند. به طور کلی، CPU برای اجرای یک دستورالعمل، ابتدا آن را از حافظه بارگیری میکند، سپس از ALU برای انجام یک عملیات استفاده میکند و در نهایت نتیجه را در حافظه ذخیره میکند. علاوه بر دستورالعملهای مربوط به محاسبات روی اعداد صحیح و عملیاتهای منطقی، دستورالعملهای متنوع دیگری نیز وجود دارند. این دستورالعملها شامل عملیاتهای بارگیری دادهها از حافظه و ذخیرهسازی آنها در حافظه، عملیاتهای شاخهای و عملیاتهای محاسباتی روی اعداد ممیز شناور هستند که توسط واحد ممیز شناور (FPU) در CPU انجام میشوند.
پردازش موازی
این نوع پردازنده، که اغلب به آن “زیر اسکالر” (subscalar) اطلاق میشود، قادر است تنها یک دستورالعمل را در هر لحظه و بر روی یک یا دو داده اجرا کند. این رویکرد باعث ایجاد ناکارآمدی در پردازندههای زیر اسکالر میشود. چرا که تمامی واحدهای پردازنده باید منتظر اتمام اجرای یک دستورالعمل بمانند تا بتوانند به سراغ دستورالعمل بعدی بروند. در نتیجه، این نوع پردازندهها در مواجهه با دستورالعملهایی که نیاز به بیش از یک چرخه ساعت برای اجرای کامل دارند، دچار تاخیر میشوند. افزودن یک واحد اجرایی دیگر نیز تاثیر چندانی بر بهبود عملکرد نخواهد داشت و در این حالت، به جای یک مسیر انتظار، دو مسیر انتظار خواهیم داشت و تعداد ترانزیستورهای بیاستفاده افزایش خواهد یافت. این طراحی که در آن منابع اجرایی پردازنده تنها قادر به اجرای یک دستورالعمل در هر لحظه هستند، در نهایت میتواند به عملکردی معادل اسکالر (یک دستورالعمل در هر چرخه ساعت) دست یابد، اما عملکرد واقعی آن معمولاً زیر اسکالر (کمتر از یک دستورالعمل در هر چرخه) خواهد بود.