از بچگی، ما این را یاد گرفته ایم که CPU مغز کامپیوتر است! با این حال، به نظر می رسد اغلب افراد این مسئله را فراموش میکنند. احتمالاً به این دلیل است که بیشتر ما،در وهله اول در مورد CPU ها اطلاعات کمی داریم. ما نمیدانیم که پردازنده ها چطور کار میکنند یا از عواملی که در سرعت و کارایی آن ها اهمیت دارند، بی خبریم؛ و به همین دلیل است که اکثر افراد به هنگام خرید Laptop یا All in One، انتخاب پردازشگر را تصادفی و بر اساس شانس یا نظر فروشندگان پایان میدهند. در واقع، چند نکته اساسی وجود دارد که شما باید در مورد CPU بدانید.با مقاله تفاوت هسته و هسته مجازی همراه باشید.
تفاوت هسته(Core) و هسته مجازی(Thread)
هسته یا Core در پردازنده ها چه هستند؟
اجازه بدهید پیش از بیان تفاوت Core و Thread، به تعریف برخی از مفاهیم اصلی بپردازیم. قبل از ظهور پردازنده های چند هسته ای، CPU ها (منظور یک چیپ فیزیکی است که بر روی سوکت به مادربورد متصل بود) تنها قادر بودند در یک زمان تنها یک کار (single task) را انجام دهند.
در همان زمان نیز کارایی بیشتر و سرعت انجام کامپیوتر های دسکتاپ مورد نیاز بود، بنابراین ایده هایی شکل گرفت که در یک کامپیوتر چندین CPU قرار بگیرد. به این معنا که بر روی مادربورد ها چندین سوکت و چیپ پردازنده قرار بگیرد که به یکدیگر متصل شده و کار ها را انجام دهند، این از لحاظ فنی نتیجه می داد و حاصل آن، پردازش سریعتر کار ها بود، اما معایبی هم داشت :
اول،تامین برق اختصاصی و منابع نصب برای هر CPU ضروری بود. زیرا تراشههای متفاوتی بودند. این واقعاً چیز خوبی نبود.
دوم،طراحی و اجرای چنین مدار هایی که دارای چندین پردازشگر بود، بسیار پیچیده و هزینه بر می شد.
سوم،قیمت یک پردازنده زیاد بود و حالا فکر کنید که باید بجای یکی چند تا از آن را بخرید.
در نهایت، یک مجموعه از چندین CPU میتوانند گرمای زیادی تولید کنند، بنابراین می بایست از تجهیزات خنک سازی بیشتری نیز استفاده می شد.
و اینگونه بود که مفاهیم جدید مانند Hyper-Threading و Multi-Core وارد صحنه شدند.
هسته های چندگانه در یک پردازنده
ایده اتصال تراشههای مختلف CPU بر روی مادربورد هر چند شدنی بنظر می رسید، اما هزینه بالا باعث محدودیت می شد؛ بنابراین این ایده واقعا خوب نبود، البته در کامپیوتر های حرفه ای و Workstation نظیر کیس تاور های Alienware امروزه ما شاهد وجود بیش دو پردازنده مرکزی و دو پردازنده گرافیکی هستیم که عملکرد بی نظیری دارند و استفاده آن ها فقط برای افراد حرفه ای مناسب است؛ زیرا هنوز هم قیمت بالایی دارند.بنابراین، به عنوان گام موثر بعدی برای بهبود عملکرد پردازنده ها، تولید کنندگان به این فکر افتادند که درون یک واحد پردازنده واحد های پردازشی کوچک تری قرار دهند که این واحد ها «هسته» یا «Core» نامیده میشدند.
شرکت های تولید کننده پردازنده هستههای اضافی را به واحد مرکزی پردازش افزودند. یک پردازنده دو هستهای «Dual Core» دارای دو واحد پردازشی است، بنابراین ما یک پردازنده را در نظر می گیریم که دارای ۲ هسته در داخل آن است ولی در سیستم عامل آن را دو پردازنده در نظر می گیرد. پروسههای مختلف میتوانند از هر دو هسته به صورت همزمان استفاده کند. این میتواند سرعت سیستم را بالا ببرد، چون کامپیوتر میتواند چند کار را به صورت همزمان انجام دهد. فکرش را کنید که این دو هسته تبدیل به هشت هسته و یا بیشتر شود!
تفاوت Core و Thread
تعداد هسته بالا چه فایده ای به غیر سرعت می تواند برای کاربران داشته باشد؟
هر چه یک کامپیوتر،Core یا هسته بیشتری داشته باشد،کارهای بیشتری را میتواند به صورت همزمان انجام دهد.این موضوع کارایی را به طور کلی افزایش میدهد،حتی اگر در حال انجام فقط یک کار هم باشید،کامپیوتر باید در پسزمینه کارهای دیگری هم انجام دهد.با یک پردازنده چند هستهای،کامپیوتر میتواند هستههای دیگر را به این کارهای پسزمینهای اختصاص دهد،تا از کند شدن برنامه مورد نیاز شما جلوگیری شود. ظهور پردازندههای دو هستهای تجربه بسیار بهتری را برای کاربران کامپیوترهای شخصی به ارمغان آورد.البته همانطور که در بخش بالا به آن اشاره شد در حال حاضر پردازنده های ۶ و ۸ هسته ای نیز به بازار آمده اند که در کنار شش یا هشت هسته اصلی از ۱۲ هسته مجازی نیز پشتیبانی می کنند که یکی از این محصولات Core i7-9750H می باشد که دارای 12 مگابایت حافظه کش است؛ این مدل یکی از ۵ پردازنده پر سرعت دنیا در زمینه لپتاپ به حساب می آید،البته در خانواده Core i.
Thread چیست و چه کاربردی در CPU دارد؟
می دانیم که منتظرید تفاوت Core و Thread را بدانید، اما اجازه دهید پیش از بیان تفاوت هسته و هسته مجازی یک مفهوم دیگر را توضیح دهیم. thread یا نخ اصطلاحا به رشته دستورالعمل هایی گفته می شود که به پردازنده ارسال می گردد. پردازنده ها در حالت معمول می توانند فقط یک دستورالعمل را از نرم افزار دریافت کرده و پردازش کنند یا به صورت واقعی تر هر برنامه در حالت عادی تنها بر روی یک ترید عملیات خود را انجام می دهد که به آن Main گفته می شود. در حالت عادی و single thread دستورالعمل ۲ باید منتظر اجرای دستورالعمل ۱ بماند تا نوبت آن شود و این یعنی کاهش سرعت و عملکرد پردازنده. در پردازنده های دو و چند هسته ای هم همینطور است یعنی هر هسته در یک زمان مشخص فقط یک دستور را اجرا خواهد کرد. اگه ۴ هسته وجود داشته باشد، می شود ۴ دستور اما با تکنولوژی هایپر تردینگ Hyper-Threading شرکت اینتل، هسته های واقعی در پردازنده به هسته های مجازی تقسیم می شوند. یعنی اگه یک پردازنده ۲ هسته واقعی داشته باشد، این دو هسته هر کدام به ۲ هسته مجازی تقسیم می شوند که هر کدام از آن ها می توانند یک دستورالعمل را اجرا کنند، یعنی ما با دو هسته واقعی در آن واحد ۴ دستور اجرا می کنیم.
در حالیکه در حالت بدون تکنولوژی Hyper Threading با دو هسته واقعی تنها ۲ دستور را می توان اجرا کرد. در این عمل، توان یک هسته واقعی بین دو هسته مجازی تقسیم می شود. مثال واضح به این صورت است که شما ۴ برنامه را همزمان اجرا کرده اید. Word، فتوشاپ، گوگل کروم و Media Player. حالا هر کدام از این ترید ها یا هسته های مجازی مسئولیت یکی از این برنامه ها را به عهده خواهند گرفت. بنابراین هر ترید کار خود را انجام می دهد و حتی اگه یکی از برنامه ها هنگ کرده برنامه های دیگر به کار خود ادامه خواهند داد؛ در حالی که در گذشته ما شاهد آن بودیم که اگر برنامه ای هنگ می کرد تمام برنامه ها و سیستم عامل مختل می شدند. این تکنولوژی برای مدتی کنسل شد، اما مجددا در پردازنده های core i7 ظهور کرد و امروزه به صورت گسترده از آن استفاده می شود.
البته لازم است که سیستم عامل و یا نرم افزاری که دستور را به پردازنده ارسال می کند، باید از این تکنولوژی پشتیبانی کرده که امروزه اکثر برنامه ها به صورت multi Thread نوشته می شوند. با استفاده از تکنولوژی Hyper Threading اگر شما ۲ هسته واقعی داشته باشید و پردازنده شما ۴ ترد داشته باشد سیستم عامل شما واقعا باور خواهد کرد که در حال کار با ۴ پردازنده جداگانه است.
تفاوت میان Core و Thread در پردازنده ها
بالاخره زمان آن رسید که تفاوت هسته و هسته مجازی را برای شما شرح دهیم! تفاوت میان Core و Thread را می توان با یک مثال ساده توضیح داد. در نظر بگیرید که Core یا هسته همان دهان شما و Thread دستان شماست. پردازشی که توسط CPU انجام می شود نیز مانند غذا خوردن با دهان باشد؛ بنابراین در صورتی که شما بیشتر از یک دهان داشته باشید می توانید غذا را بیشتر و سریعتر بخورید! اما این وابسته به دستان شماست. اگر شما دارای دو دهان و تنها دو دست باشید به مشکل بر خواهید خورد، همچنین اگر شما دارای چندین دست و یک دهان باشید باز هم به مشکل برخواهید خورد! در این جا مشکل دهان شما خواهد بود، چون دستان شما می توانند مقدار زیادی غذا را در یک زمان به شما بدهند، اما با داشتن تنها یک دهان شما محدود می شوید.
در نتیجه همیشه باید بین هسته ها و نخ ها تعادل کامل وجود داشته باشد تا CPU بتواند به حداکثر کارایی و سرعت برسد. به همین دلیل است که ما همیشه نخ ها را دو برابر تعداد هسته ها میبینم، البته تنها در پردازنده هایی که در آن ها از فناوری Hyper Threading استفاده شده باشد. در انتها لازم است به این نکته نیز اشاره کنیم که هر هسته دارای دو ترد یا هسته مجازی می باشد.
خیلی مقاله ی عالی بود مرسی از شما