در مورد CPU ها، رشته ها و هسته ها گیج شده اید؟
واحدهای پردازش مرکزی (CPU) مغز کامپیوترهای ما هستند. آنها هر کاری را که روزانه انجام میدهیم، از باز کردن اپلیکیشن گرفته تا تماشای فیلم، پردازش میکنند. اما CPU دقیقا چیست؟ چگونه کار می کند؟ و تفاوت بین CPU ها و vCPU های رو به رشد محبوب چیست؟
شناخت مغز کامپیوترها
بر اساس راهنمای تاریخ کامل منتشر شده توسط G2، اولین کامپیوترهای الکترونیکی در اوایل دهه 1800 ساخته شدند. با این حال، این کامپیوترها بزرگ و گران بودند و فقط ریاضیدانان و دانشمندان آموزش دیده می توانستند از آنها استفاده کنند.
چارلز بابیج به خاطر اختراع اولین ماشین محاسباتی، موتور تفاوت، که می تواند برای انجام هر گونه محاسبه ای که با دست انجام می شود برنامه ریزی شود، اعتبار دارد. با این حال، به گفته موزه تاریخ کامپیوتر، پروژه موتور تفاوت هرگز به دلیل کمبود بودجه تکمیل نشد.
در سال 1937، بابیج برای اولین بار از موتور تحلیلی نام برد که به اولین کامپیوتر مکانیکی همه منظوره جهان تبدیل شد. «موتور تحلیلی همه عناصر یک رایانه مدرن را در خود جای داده است: یک واحد منطقی حسابی، جریان کنترلی به شکل انشعابها و حلقههای شرطی، و حافظه یکپارچه» (یادداشتهای الکترونیک).
یکی از اجزای کلیدی کامپیوتر امروزی CPU یا واحد پردازش مرکزی است. CPU مسئول اجرای دستورالعمل هایی است که توسط نرم افزارهایی مانند یک سیستم عامل یا یک برنامه کاربردی به آن داده می شود. به زبان ساده، شما می توانید CPU را به عنوان مغز کامپیوتر خود در نظر بگیرید. CPU از دو بخش اصلی تشکیل شده است: واحد کنترل و واحد منطق حسابی (ALU). اگر این اختصارات شما را گیج می کند، به نمای کلی ما در مورد تفاوت APU، CPU و GPU مراجعه کنید.
واحد کنترل وظیفه واکشی دستورالعمل ها از حافظه، رمزگشایی آنها و سپس ارسال آنها به واحد منطق محاسباتی را بر عهده دارد تا اجرا شود. ALU عملیات حسابی و منطقی را روی داده های ذخیره شده در ثبات ها انجام می دهد که واحدهای ذخیره سازی داخلی داخل CPU هستند.
CPU های مدرن همچنین حاوی یک کش هستند که مقدار کمی حافظه پرسرعت است که دستورالعمل ها و داده های پرکاربرد را ذخیره می کند. کش ها به سطوح تقسیم می شوند. حافظه نهان سطح 1 (L1) در خود CPU تعبیه شده است، حافظه نهان سطح 2 (L2) روی یک تراشه جداگانه نزدیک به CPU قرار دارد، و حافظه نهان سطح 3 (L3) دورتر از CPU روی تراشه خود یا حتی روی تراشه خود قرار دارد. برد مدار خودش
CPU در مقابل vCPU
با ظهور خدمات ابری، واحد پردازش مرکزی مجازی یا به اختصار vCPU ظهور کرد. TechTarget vCPU را به عنوان یک واحد پردازش مرکزی فیزیکی (CPU) که به یک ماشین مجازی (VM) اختصاص داده شده است، تعریف می کند.
ماشینهای مجازی اساساً سیستمعاملهای مستقلی هستند که در داخل یک سیستم عامل دیگر مانند برنامههای کاربردی اجرا میشوند. ماشینهای مجازی برای اهداف مختلفی مانند آزمایش نرمافزار جدید در یک محیط امن، اجرای چندین سیستم عامل (مانند ویندوز و لینوکس) بر روی یک کامپیوتر، یا ادغام چندین سرور فیزیکی در یک سرور واحد برای صرفهجویی در فضا و کاهش هزینهها استفاده میشوند.
بنابراین، یک vCPU یک پیاده سازی نرم افزاری از یک CPU است. به طور فیزیکی مانند یک CPU واقعی در رایانه شما وجود ندارد. Hypervisor که نرم افزاری است که VM ها را ایجاد و مدیریت می کند، vCPU ها را به ماشین مجازی اختصاص می دهد. هر vCPU توسط سیستم عامل داخل VM به عنوان یک هسته CPU واقعی دیده می شود. برای کسب اطلاعات بیشتر به توضیحات ما در مورد هایپروایزر مراجعه کنید.
با این حال، از آنجایی که vCPU ها مبتنی بر نرم افزار هستند، به اندازه CPU های واقعی کارآمد نیستند. بنابراین، مهم است که هنگام خرید رایانه مشخص کنید که پردازنده شما چند هسته دارد (به عنوان مثال، “چهار هسته ای” به معنای چهار هسته است). همین قانون در هنگام انتخاب یک سرور خصوصی مجازی (VPS) یا برنامه میزبانی سرور اختصاصی اعمال می شود.
تفاوت اصلی بین CPU و vCPU ها در این است که CPU ها مبتنی بر سخت افزار هستند در حالی که vCPU ها مبتنی بر نرم افزار هستند. این بدان معناست که CPUها به طور فیزیکی در داخل رایانه شما وجود دارند در حالی که vCPUها وجود ندارند. در عوض، آنها در صورت نیاز توسط هایپروایزر ایجاد می شوند. به دلیل این تفاوت در پیاده سازی، CPU ها بسیار کارآمدتر از vCPU ها هستند. آنها سربار مربوط به اجرای در نرم افزار را ندارند.
از اوایل دهه 2000، vCPU ها به طور فزاینده ای محبوب شده اند زیرا نسبت به CPU های فیزیکی ارزان تر و آسان تر هستند. با این حال، اگر به دنبال عملکرد هستید، بهتر است از رایانه ای با چندین هسته CPU استفاده کنید زیرا هر هسته می تواند دستورالعمل ها را به طور مستقل پردازش کند.
هسته ها در مقابل موضوعات
یک CPU ممکن است یک یا چند هسته داشته باشد، که واحد پردازشی است که وظایف را در یک زمان مشخص انجام می دهد. هسته دستور اجرای وظیفه، رجیسترها و حافظه پنهان (در صورت وجود) را حفظ می کند و عملیات را از طریق ALU انجام می دهد. CPU هسته ها را کنترل می کند، اما هسته هر فرآیند یا رشته نرم افزاری را که سیستم عامل زمان بندی می کند، اجرا می کند. thread یک توالی مستقل از دستورالعمل ها است که می تواند توسط CPU پردازش شود.
چندین رشته می توانند در یک فرآیند وجود داشته باشند و فضای حافظه یکسانی را به اشتراک بگذارند. این به آنها اجازه میدهد تا راحتتر از زمانی که در فرآیندهای جداگانه اجرا میشدند با یکدیگر ارتباط برقرار کنند. Thread ها اغلب برای بهبود عملکرد برنامه های کاربردی چند رشته ای با اجازه دادن به بخش های مختلف برنامه به طور همزمان بر روی هسته ها یا پردازنده های مختلف استفاده می شوند.
اصطلاح «رشته» سالهاست که در اصطلاحات محاسباتی استفاده میشود. با این حال، تا اوایل دهه 2000 بود که پشتیبانی در سطح سخت افزار از رشته ها در پردازنده ها معرفی شد. این اجازه می دهد تا چندین رشته به طور همزمان روی هسته های جداگانه اجرا شوند. پیش از این، صرف نظر از اینکه چند هسته در پردازنده وجود داشت، تنها یک رشته میتوانست در یک زمان روی یک هسته اجرا شود. پردازندههای چند هستهای در حال حاضر رایج هستند و اکثر سیستمعاملها سطحی از پشتیبانی را برای اجرای برنامهها به صورت چند رشته ارائه میکنند.
جمع بندی مسائل اصلی
به طور خلاصه، CPU ها مغز سخت افزاری رایانه های ما هستند، در حالی که همتای مجازی آنها، vCPU ها، مبتنی بر نرم افزار هستند و توسط Hypervisor ها برای اجرا در ماشین های مجازی ایجاد می شوند. هسته ها واحدهای پردازش مبتنی بر سخت افزار در یک CPU هستند، در حالی که رشته ها دستورالعمل های مبتنی بر نرم افزار هستند که می توانند توسط یک CPU پردازش شوند.
Thread ها را می توان به طور همزمان روی هسته های جداگانه اجرا کرد که به بخش های مختلف برنامه اجازه می دهد همزمان اجرا شوند. این میتواند عملکرد سختافزار را بهبود بخشد، زیرا چندین کار را میتوان بهجای انجام متوالی بهطور همزمان پردازش کرد.
اکنون که تفاوت بین CPU ها، vCPU ها، هسته ها و رشته ها را درک کرده اید، می توانید هنگام انتخاب یک کامپیوتر یا سرور تصمیم آگاهانه بگیرید. اگر به دنبال عملکرد هستید، بهتر است کامپیوتری با چندین هسته CPU انتخاب کنید زیرا هر هسته می تواند دستورالعمل ها را به طور مستقل پردازش کند. با این حال، اگر به دنبال راه حل مقرون به صرفه ای هستید، vCPU ها ممکن است راه حلی باشند.