پردازنده, سرور

ثبات یا (Register) در پردازنده چیست ؟

ثبات یا (Register) در پردازنده چیست ؟

همانطور که دستورالعمل ها و به طور کلی برنامه ها بایستی در حافظه RAM سیستم بارگزاری شوند، تا ما بتوانیم از آنها استفاده کنیم، Register ها یا ثبات های حافظه پردازنده نیز از این قاعده مستثنی نیستند. بدین معنی که پردازنده کامپیوتر برای اینکه بتواند، پردازش های خود را روی دستورالعمل ها انجام دهد، بایستی در یک مکانی آن کار ها را انجام دهد. و آن مکان ها جایی نیست جز، Register یا ثبات های حافظه پردازنده یا CPU سیستم. Register ها یا ثبات های حافظه پردازنده یک کامپیوتر، برای ذخیره و انتقال داده ها، و دستورالعمل ها با سرعت بسیار بالا مورد استفاده قرار میگیرد.

همانطور که میدانید CPU کامپیوتر، قطع به یقین یکی از مهم ترین و پیچیده ترین اجزاء یک کامپیوتر محسوب میشود، و طبیعتاََ یک سخت افزار تک منظوره و یک بعدی نیست، و وظایف متعددی بر عهده دارد. از این رو Register در پردازنده دارای انواع مختلفی است که هر کدام به نوبه خود در امر هندل و پردازش کردن دستورالعمل ها، برای CPU بسیار مهم و اجتناب ناپذیر است. همانطور که احتمالاََ حدس میزنید، حافظه های Register پردازنده از سریعترین حافظه های یک کامپیوتر به شمار میرود. (حتی سریعتر از حافظه کش L1 پردازنده)، زیرا CPU برای انجام پردازش های خود، بر روی دستورالعمل ها، دستورالعمل ها را در حافظه Register ذخیره میکند و سپس روی آنها پردازش را انجام میدهد. Register های پردازنده به طور کلی ۳ وظیفه به نام های: Decode ،Fetch و Execute را در امر پردازش دستورات بر عهده دارد که در زیر به توضیح هر کدام میپردازیم.

۱- عملیات Fetch یا واکشی داده ها : Fetch عبارتست از: گرفتن دستورالعمل هایی که توسط کاربر به کامپیوتر داده میشود، و همچنین واکشی یا Fetch کردن دستورالعمل ها توسط Register ها، از حافظه RAM سیستم، به منظور انجام پردازش روی دستورالعمل ها.

۲-عملیات Decode یا کدگشائی دستورالعمل ها : Decoding دستورالعمل ها بدین منظور است که، دستورالعمل ها به Command ها یا دستورات ترجمه شوند تا توسط واحد ALU قابل اجرا باشند. واحدی که بر عملیات Decoding دستورالعمل ها نظارت دارد واحد CU یا همان واحد کنترل در CPU میباشد.

۳- عملیات Execute یا اجرای دستورات : همانطور که گفتیم دستورات به وسیله واحد ALU پردازنده انجام میشود. بعد از اجرا نمودن دستورات توسط واحد منطقی ALU، نتیجه در حافظه RAM سیستم ذخیره میشود، تا بتوانیم از نتیجه دستورات مان استفاده کنیم.

همانطور که گفتیم Register ها دارای انواع و اقسام مختلفی هستند که هر کدام وظیفه خاص خود را بر عهده دارد. در زیر به معرفی هر کدام از Register ها میپردازیم.

Memory Address Register یا MAR

این Register همانطور که از نامش نیز پیداست، آدرس های حافظه از داده ها و دستورالعمل ها را در خود نگه میدارد. این Register برای دسترسی به داده ها و دستورالعمل ها، از حافظه RAM در طی اجرا شدن دستورالعمل ها مورد استفاده قرار میگیرد. فرض کنید CPU میخواهد برخی از داده ها را در حافظه RAM ذخیره کند و یا بر عکس، میخواهد داده هایی را از حافظه RAM فراخوانی کند CPU در این گونه مواقع می آید و آدرس های داده هایی که در حافظه RAM بایستی قرار بگیرد را در رجیستر MAR به صورت موقت ذخیره میکند. زیرا اگر این گونه نبود CPU نمیدانست که دستورالعمل ها در کدام مکان از حافظه RAM بایستی ذخیره شوند. پس اگر منطقی به این قضیه فکر کنیم وجود رجیستری به نام MAR الزامی است.

Program Counter یا PC

رجیستر Program Counter یا به اختصار PC، رجیستری است که به آن Instruction Pointer یا IP نیز میگویند. به این رجیستر گاهاََ Instruction Address Register نیز گفته میشود. این رجیستر مسیر آدرس حافظه دستورالعملی که بعد از تمام شدن پردازش دستورالعمل فعلی بایستی مورد پردازش قرار بگیرد را در خود ذخیره میکند. به عبارت دیگر این Register تا زمانیکه پردازش روی دستورالعمل فعلی به اتمام نرسیده است آدرس حافظه دستورالعمل بعدی را در خود نگه میدارد.

Accumulator Register یا AC

این Register برای ذخیره سازی نتایج دستوراتی که توسط واحد ALU پردازنده سیستم انجام شده است مورد استفاده قرار میگیرد. هنگامی که CPU دستورات را مورد پردازش قرار داد و تمام شد نتیجه دستورات در رجیستر AC به صورت موقت ذخیره میگردد. به Accumulator Register در اصطلاح فنی AX نیز میگویند.

Memory Data Register یا MDR

این Register یکی از مهم ترین رجیستر های CPU است رجیستر MDR، رجیستر واحد CU، از پردازنده میباشد و شامل اطلاعاتی است که باید در حافظه RAM سیستم یا سایر حافظه ها ذخیره شود، همچنین این رجیستر میتواند شامل داده هایی باشد که با عملیات Fetch یا واکشی داده ها از یک دستگاه ذخیره سازی بدست آمده باشد. رجیستر، MDR همانند بافر عمل میکند و شامل کپی اطلاعاتی است، که از حافظه RAM طی عملیات Fetch به این رجیستر منتقل شده است تا توسط CPU مورد پردازش قرار گیرد. توجه کنید که MDR شامل اطلاعاتی است که هنوز توسط دیکدر های پردازنده Decode نشده اند.

رجیستر MDR شامل اطلاعاتی مانند، آدرس هایی از حافظه است که در حافظه RAM نوشته یا خوانده شده اند. به عنوان مثال برای واکشی داده هایی از سلول ۱۲۳ ( به باینری )، ما مقدار ۱۲۳ (به باینری)، را در رجیستر MAR بارگزاری میکنیم و عملیات Fetch را انجام میدهیم. وقتی عملیات Fetch تمام شد یک کپی از داده های سلول ۱۲۳ در رجیستر MDR بایستی نوشته شود. یا به عنوان مثال دیگر، برای ذخیره سازی مقدار ۹۸ ( به باینری )، در سلول ۴ در حافظه بایستی آدرس داده های ذخیره شده در سلول ۴ حافظه RAM را در رجیستر MAR بارگزاری کنیم و داده های این سلول را در رجیستر MDR ، و سپس عملیات ذخیره سازی را انجام دهیم. وقتی عملیات Fetch به انجام رسید، محتویات سلول ۴ حافظه RAM با مقدار ۹۸ پر خواهد شد. رجیستر MDR یک رجیستر دو طرفه است، به این معنی که داده ها از حافظه Fetch یا واکشی میشوند و در رجیستر MDR ذخیره میشود، که در حقیقت در یک جهت در این رجیستر نوشته شده است. زمانیکه دستورالعملی میخواهد نوشته شود بایستی داده ها در رجیستر MDR نوشته شوند و سپس در حافظه RAM ذخیره شوند.

Index Register

این رجیستر در پردازنده اعداد یا مقادیری را در خود نگه داری می کند که میتواند، از بخشی از آدرس یک دستورالعمل کم یا به آن اضافه شود تا به یک آدرس موثر و کارامد تبدیل شود. به Index Register اغلب Base Register نیز گفته میشود. Index Register در پردازنده کامپیوتر رجیستری است، که برای تغییر دادن آدرس های عملوند در طول اجرای یک برنامه مورد استفاده قرار میگیرد. به Index Register در اصلاح فنی BX نیز میگویند.

Memory Buffer Register یا MBR

این Register محتویات داده، یا دستورالعمل هایی که از حافظه خوانده، یا روی آن نوشته میشوند را در خود نگهداری میکند. به عبارت دیگر این رجیستر برای ذخیره سازی داده ها یا دستورالعمل هایی که از حافظه فراخوانی شده یا روی آن بارگزاری میشوند، مورد استفاده قرار میگیرد. رجیستر MBR همان رجیستر MDR است و تفاوتی با هم ندارند.

Data Register

این رجیستر برای ذخیره سازی موقتی داده هایی که از دستگاه های ذخیره سازی خوانده یا نوشته میشوند مورد استفاده قرار میگیرد. به Data Register در اصطلاح فنی DX نیز میگویند.

 

پردازنده, سرور

با سری جدید پردازنده های زئون Intel Xeon E آشنا شوید

با سری جدید پردازنده های زئون Intel Xeon E آشنا شوید

اینتل سری جدید پردازنده های Intel Xeon E را معرفی کرد؛ این محصولات که جانشین پردازنده های Xeon E3 خواهند شد، همچنان قابلیت استفاده در سیستم های سرور، ایستگاه کاری، فضای ابری، رندرینگ طولانی مدت و … را خواهند داشت. پردازنده های فوق از حافظه های رم مجهز به فناوری ECC پشتیبانی می کنند و جالب است بدانید که دارای ویژگی گرافیک داخلی آن هم از نوع Intel UHD Graphics 630 هستند که امکان پخش تصاویر 4K را نیز داراست. این گرافیک مجتمع از کدک 10 بیتی HEVC نیز پشتیبانی می کند.

پردازنده های Intel Xeon E برای سیستم های میان رده، نیازمند به زئون، مورد استفاده قرار خواهند گرفت. در مدل پرچمدار شاهد استفاده از 6 هسته پردازشی هستیم. امکان دستیابی به فرکانس 4.7 گیگاهرتز و سازگاری با Turbo Boost Technology 2.0 نیز از جمله ویژگی های آنها است. این سری از زئون ها از 64 گیگابایت حافظه رم DDR4 با فرکانس پایه 2666 مگاهرتز پشتیبانی کرده و امکان آدرس دهی حداکثر 40 مسیر PCI-E را نیز دارا هستند.

با سری جدید پردازنده های زئون Intel Xeon E آشنا شوید

کنترلر داخلی این پردازنده ها، امکان استفاده از رابط های USB 3.1 و Thunderbolt را میسر ساخته و Intel vPro نیز با آنها همراه است. پشتیبانی از حافظه های Intel Optane، کنترلرهای داخلی Intel Ethernet و Intel Wireless-AC و سازگاری با Intel Software Guard Extensions نیز دیگر قابلیت های سری Xeon E را شکل می دهند.

با سری جدید پردازنده های زئون Intel Xeon E آشنا شوید

 

 

پردازنده, سرور

تفاوتهای CPU و GPU

تفاوتهای CPU و GPU

CPU (واحد پردازش مرکزی) اغلب مغز کامپیوتر نامیده می‌شود اما به طور فزاینده ای این مغز توسط بخش دیگری از کامپیوتر ارتقاء می یابد که این بخش GPU (واحد پردازش گرافیکی) نام دارد که به نوعی روح کامیپوتر محسوب می‌شود.

تمام رایانه های شخصی دارای تراشه‌هایی هستند که تصاویر را روی صفحه مانیتور، نمایش می‌دهند. اما همه این تراشه‌ها یکسان نیستند. بعنوان نمونه، کنترلر گرافیک یکپارچه اینتل قابلیت‌های گرافیکی پایه را فراهم می‌کند که تنها می‌تواند برنامه‌های کاربردی مانند پاورپوینت مایکروسافت، تصاویری با تفکیک پذیری کم و بازی‌های ساده را نمایش دهد.

GPU اما جایگاه خود را دارد و فراتر از توابع کنترل‌کننده گرافیکی ساده عمل می‌کند و بعبارت دیگر یک پردازنده قدرتمند و مستقل برنامه‌پذیر محاسباتی محسوب می گردد.

GPU چیست ؟

قابلیت های پیشرفته GPU بدواً در تصویرسازی بازی‌های سه بعدی مورد استفاده قرار می‌گرفت. اما اکنون این قابلیت‌ها به طور گسترده تر به منظور شتاب بخشیدن به عملیات محاسباتی به کار گرفته می‌شود از جمله مدل سازی مالی، تحقیقات علمی پیشرفته و همچنین اکتشافات نفت و گاز .

در مقاله اخیر نشریه BusinessWeek، قابلیت‌های منحصر به فرد GPU چنین توصیف شده است: پردازنده‌های گرافیکی (GPU) برای انجام سریع عملیاتی یکسان، روی بسته‌های عظیم داده، بهینه سازی شده‌اند بر خلاف ریز پردازنده‌ها (CPU) که همه منظوره هستند و همه جای رایانه سرک می‌کشند.

GPU همجنین نقش بسیار مهمی در هوش مصنوعی مدرن ایفا می‌کند.

از نقطه نظر معماری کامپیوتر، یک پردازنده (CPU) از چند هسته به همراه تعداد زیادی حافظه نهان تشکیل شده است که می‌تواند همزمان چندین مجموعه دستورالعمل را اجرا کند. در مقابل، یک GPU متشکل از صدها هسته است که می‌تواند به طور همزمان هزاران مجموعه دستور (البته با طیفی محدودتر در مقایسه با CPU)* را اجرا کند. چنین قابلیتی به تنهایی، اجرای برخی برنامه‌ها را تا ۱۰۰ برابر سریع تر می‌کند. علاوه بر این، پردازنده گرافیکی (GPU) در حالی این شتاب را ایجاد می‌کتد که در مصرف انرژی، بهینه‌تر و از نظر هزینه نیز مقرون به صرفه تر از CPU است.

رواج کاربرد فراگیر GPU

امروزه بواسطه پشتیبانی نسخه‌های جدید سیستم عامل‌های اپل (به همراه Open CL) و مایکروسافت (بر مبنای Direct Compute) از قابلیت شتاب دهنگی پردازش GPU، کاربرد آن بسیار فراگیر شده است و دلیلش چنانکه پیشتر اشاره شد قدرت پردازشی و همچنین رشد سریعتر قابلیت‌های آن در مقایسه با پردازنده‌های x86 است.

تفاوتهای CPU و GPU

در رایانه های شخصی امروزی، پردازشگر گرافیکی یا GPU می تواند بسیاری از وظایف چند رسانه ای را نظیر شتاب‌دهی به ویدئوهای فلش ادوبی، تبدیل فرمت‌های گوناگون تصاویر ویدئویی به یکدیگر، تشخیص تصویر، تطبیق الگوی ویروسی… بر عهده گیرد. هنوز مشکلات پیچیده‌تری باید حل شوند آنهایی که دارای طبیعت موازی ذاتی هستند نظیر پردازش تصویر، تجزیه و تحلیل تصویر و پردازش سیگنال …

ترکیبی از CPU و GPU می‌تواند بهترین سیستم را از نظر عملکرد و قیمت ارائه دهد.

پردازنده, سرور

پردازنده مجازی vCPU

پردازنده مجازی vCPU

در دنیای مجازی‌سازی اصطلاح پر کاربرد و مهمی به نام vCPU وجود دارد. اما این اصطلاح به چه معنا است و بیان‌گر چه مفهومی است؟ یک پردازنده مجازی (vCPU) یا به عبارت دقیق‌تر Virtual CPU، یک پردازنده فیزیکی است که به یک ماشین مجازی اختصاص پیدا کرده است. در حالت پیش‌فرض هر ماشین‌ مجازی دارای یک پردازنده مجازی است، اما روی سامانه‌های میزبانی که دارای چند پردازنده فیزیکی هستند یا تعداد هسته‌های پردازنده فیزیکی آن‌ها زیاد است، شما می‌توانید به ماشین مجازی بیش از یک پردازنده مجازی اختصاص دهید. در اصطلاح رایج به پردازنده‌های مجازی Logical Processor گفته می‌شود.

یک مدیر شبکه یا مدیر زیرساخت‌ باید به درستی بداند که زیرساخت ابری تحت سرپرستی او که سرویس‌های مبتنی بر ابر را ارائه می‌‌دهد، چطور پردازنده‌های مجازی (vCPU) را به کار می‌گیرد تا در ادامه بتواند هزینه مربوط به قدرت پردازشی در محیط‌ ابری یا سرورهای مجازی را محاسبه کند. نکته‌ مهم دیگری که یک مدیر شبکه‌ باید از آن اطلاع داشته باشد، آگاهی از این موضوع است که اضافه کردن پردازنده‌های مجازی جدید به‌‌طور خودکار عملکرد را بهبود نمی‌دهد، به دلیل این‌که هر چه بر تعداد پردازنده‌های مجازی (vCPU) افزوده شود، به همان نسبت زمان‌بندی پردازنده‌ها برای استفاده بهینه از برش زمانی پردازنده فیزیکی سخت‌تر می‌شود. زمان انتظاری که برای دسترسی به پردازنده فیزیکی سپری می‌شود به شکل قابل محسوسی عملکرد را کاهش می‌دهد. به‌طور مثال، در VMware، پردازنده‌های مجازی (vCPU)، بخشی از مدل محاسباتی چند رشته‌ای-چندپردازشی (SMP) سرنام symmetric multi-processing هستند. SMP به رشته‌‌ها اجازه می‌دهد تا میان هسته‌های فیزیکی یا منطقی پردازنده تقسیم شوند. این مدل تقسیم رشته‌‌ها باعث می‌شود تا عملکرد پردازشی سیستم افزایش پیدا ‌کند. در حقیقت مدل SMP  یک مکانیزم پردازش موازی در اختیار ما قرار می‌دهد. پرازنده‌های مجازی (vCPU) همچنین به ما این امکان را می‌دهند تا چندوظیفگی را به شکل متوالی در محیط‌های چند هسته‌ای مدیریت و پردازش کنیم.

پردازنده مجازی vCPU
پردازنده مجازی vCPU

چه تعداد پردازنده مجازی (vCPU) را می‌توان روی یک ماشین مجازی به کار گرفت؟

اگر از یک ماشین مجازی روی محصولات شرکتی همچون vmware و از نسخه استاندارد ESX یا ESXi استفاده می‌کنید در حالت عادی قادر هستید از 4 پردازنده مجازی استفاده کنید. البته تعداد پردازنده‌ها به نسخه‌ای که از آن استفاده می‌کنید بستگی دارد. به‌طور مثال اگر از نسخه سازمانی استفاده کنید شما در عمل می‌توانید از 8 پردازنده مجازی برای هر ماشین مجازی استفاده کنید. البته تعداد پردازنده‌های مجازی را باید متناسب با بار کاری که به هر ماشین مجازی اختصاص می‌دهید افزایش دهید. در نسخه ESXi یک پردازنده مجازی برای انجام محاسبات به هسته فیزیکی یک پردازنده واقعی نگاشت می‌شود. به عبارت ساده‌تر اگر یک ماشین مجازی را به شکلی پیکربندی کنید که از یک پردازنده مجازی (vCPU) استفاده کند و این پردازنده مجازی به 4 هسته فیزیکی یک پردازنده متصل شود، در بهترین حالت موفق نخواهید شد بیشتر از یک چهارم توان محاسباتی پردازنده فیزیکی را به خدمت بگیرید. به همین دلیل در ابتدای مطلب به شما گفتیم افزایش بدون دلیل تعداد پردازنده‌های مجازی ممکن است عملکرد سیستم را کاهش داده و تنها بار اضافی را به سرور تحمیل کند.

پردازنده مجازی vCPU

آیا یک پردازنده مجازی (vCPU) برابر با یک پردازنده فیزیکی است؟

برخی از افراد این‌گونه استدلال می‌کنند که یک پردازنده مجازی برابر با با یک هسته از یک پردازنده فیزیکی است. (vCPU = 1 Physical CPU core) که این موضوع نمی‌تواند همیشه درست باشد. یک پردازنده مجازی از برش‌های زمانی برای دسترسی به تمامی هسته‌های فیزیکی استفاده می‌کند. بنابراین در حالت کلی یک پردازنده مجازی قوی‌تر از یک هسته انفرادی است. این مسئله به ویژه در ارتباط با پردازنده‌های مرکزی که هشت هسته یا بیشتر دارند عینیت پیدا می‌کند. VMWare بر پایه الگوریتم‌های پیچیده‌ زمان‌بند پردازنده مرکزی سعی می‌کند به هر ماشین مجازی اجازه دهد مقدار معینی از کلاک هسته را در اختیار داشته باشد. در یک شبکه ابری بزرگ اگر منابع محاسباتی پردازنده مرکزی به اندازه کافی وجود نداشته باشد و میزان مصرف پردازنده‌ها در ماشین مجازی به مرز 100 درصد برسد، ماشین مجازی از طریق به‌کارگیری فناوری‌هایی همچون DRS و VMotion روی میزبان دیگری قرار می‌گیرد که محدودیت دسترسی به پردازنده مرکزی روی آن وجود ندارد تا به این شکل فرآیند سرویس‌دهی بدون مشکل انجام شود.

پردازنده, سرور

تکنولوژی Hyper Threading چیست؟

تکنولوژی Hyper Threading چیست؟

CPU کارهای پردازشی که برنامه‌ها را اجرا می‌کند، انجام می‌دهد. سی پی یو های مدرن ویژگی‌هایی مانند چند هسته‌ای و Hyper Threading دارند. برخی سیستم‌ها هم حتی چند پردازنده دارند.

سابقا سرعت کلاک پردازنده برای مقایسه کارایی کافی بود اما دیگر به همین سادگی نیست. CPU ای که چند هسته یا Hyper Threading ارایه می‌دهد، به شکل قابل توجهی از سی پی یو های تک هسته‌ای که همان سرعت را دارند و Hyper Threading ندارند، بهتر هستند. پی سی هایی با چند پردازنده، مزایای بیشتری هم دارند. تمام این ویژگی‌های جوری طراحی شده‌اند که پردازش چندگانه و همزمان بسیار آسان‌تر انجام می‌شود و در عین حال افزایش کارایی را هنگام Multicasting یا اپ‌های قدرتمندی مانند Encoder های ویدئو و بازی‌های مدرن به همراه دارد.

حالا بیایید نگاهی به هر یک از این ویژگی‌ها بپردازیم و ببینیم برای شما چه معنی دارد.

تکنولوژی Hyper Threading چیست؟
تکنولوژی Hyper Threading چیست؟

Hyper Threading چیست؟

Hyper Threading در واقع اصطلاحی است که اینتل برای Simultaneous Multithreading یا SMT به کار می‌برد. در این تکنولوژی، CPU هسته فیزیکی خود را به دو هسته مجازی که Thread نامیده می‌شود، تقسیم می‌کند. HT هر هسته را برای انجام دو کار استفاده می‌کند در نتیجه کارایی CPU افزایش می‌یابد. پس با خیال راحت به اجرای همزمان اپ‌های Multiple Demanding یا استفاده از اپ‌های Heavily Threaded بپردازید بدون اینکه پی سی داغ شود.

Hyper Threading در حال حاضر در پردازنده های Intel Core، Core vPro، Core M و زئون قابل استفاده است.

Hyper Threading و پردازش موازی برای اولین بار در سال 2002 توسط شرکت Intel در مدل Pentium 4 HT ارایه شد. پنتیوم 4 ها تا آن روز تک پردازنده بودند و فقط یک کار را در هر زمان می‌توانستند انجام دهند حتی اگر می‌توانستند بین Task ها به سرعت سوییچ کنند و به صورت Multicasting به نظر برسند.

هسته پردازنده با وجود Hyper Threading، به صورت منطقی، دو هسته برای سیستم عامل فراهم می‌کند؛ با وجودی که سی پی یو فقط یک عدد سی پی یو است. سخت افزار CPU فقط یک سری منابع اجرایی برای هر هسته CPU دارد اما پردازنده وانمود می‌کند که هسته‌های بیشتری دارد تا سرعت اجرای برنامه ها را بیشتر کند. به عبارت دیگر سیستم عامل فریب داده می‌شود تا هر هسته واقعی پردازنده را به صورت دو پردازنده ببیند!

با وجود Hyper Threading، دو هسته منطقی CPU، منابع فیزیکی اجرایی را به اشتراک می‌گذارد. نتیجه این است که سرعت افزایش خواهد یافت. مثلا اگر یکی از سی پی یو های مجازی در حالت انتظار باشد و پردازشی انجام ندهد، دیگر سی پی یو مجازی می‌تواند منابع اجرایی آن را قرض بگیرد.

Hyper Threading باعث افزایش سرعت پردازنده می‌شود اما به هر حال به پای داشتن هسته‌های اضافی واقعی نمی‌رسد!

CPU های مدرن امروزی، هم چند هسته دارند و هم از Hyper Threading استفاده می‌کنند. مثلا CPU دو هسته‌ای با کمک Hyper Threading به صورت 4 هسته برای سیستم عامل ارایه می‌شود و به همین صورت 4 هسته به صورت 8 هسته. Hyper Threading جایگزینی برای هسته‌های اضافی نیست اما کارایی پردازنده دو هسته‌ای با وجود Hyper Threading بیشتر از کارایی پردازنده دو هسته‌ای بدون وجود Hyper Threading است.

برای استفاده از Hyper Threading باید سیستم عامل و بایوس هم از تکنولوژی Hyper Threading پشتیبانی کنند.

تکنولوژی Hyper Threading چیست؟

خلاصه

به برنامه های قدیمی اصطلاحا Single Thread گفته می‌شد، بدین معنا که در آن واحد تنها یک دستور ارسال می‌کردند. اما با پیشرفت CPU ها این امکان فراهم شد که یک برنامه در آن واحد بیش از یک دستور به پردازنده ارسال کند و این به معنی سرعت و قدرت پردازش بیشتر می باشد.

 

 

پردازنده, سرور

انواع کش پردازنده L1 و L2 و L3

انواع کش پردازنده L1 و L2 و L3

انواع کش پردازنده L1 و L2 و L3
انواع کش پردازنده L1 و L2 و L3

کشِ پردازنده ، حافظه‌ی کوچکی است که اطلاعات مورد نیاز پردازنده در آن ذخیره می‌شود تا پردازنده‌ در نیازِ بعدی خود به این اطلاعات، به سرعت به آن‌ها دسترسی داشته باشد. اینکه چه اطلاعاتی باید در حافظه ذخیره شود، به الگوریتم‌های پیچیده و فرضیات مشخصی از کدهای نرم‌افزار مربوط است. هدف اصلی در استفاده از کش آن است که مطمئن شویم بیت بعدی از اطلاعات که پردازنده به آن‌ها نیاز دارد، در کش ذخیره شده باشند تا با حداکثر سرعت و حداقل تاخیر در اختیار پردازنده قرار گیرند. به این فرایند Cache Hit نیز گفته می‌شود یعنی بیت بعدی که پردازنده به آن‌ها نیاز دارد، در کش آماده باشد.
از سوی دیگر، موضوعی با عنوان Cache Miss وجود دارد و به معنی آن است که اطلاعاتی که پردازنده به آن‌ها نیاز دارد در کش وجود ندارد و برای یافتن آن‌ها باید به حافظه‌های دیگر مراجعه کند. این همان جایی است که L2 Cache یا سطح دوم حافظه‌ی کش وارد بازی می‌شود. هرچند حافظه‌‌ی L2 به اندازه‌ی L1 سریع نیست، اما ظرفیت آن بیشتر است. برخی از پردازنده‌ها از طراحی پوششی بهره می‌برند و این بدین معنی است که اطلاعاتی که در L1 ذخیره می‌شود همزمان در L2 نیز کپی می‌شود. اما طراحی دیگری نیز وجود دارد که در آن هیچ وقت اطلاعات موجود در L1 و L2 یکسان نخواهند بود. اگر پردازنده اطلاعات مورد نیاز خود را در L2 پیدا نکند آن‌وقت به سطح سوم کش یا L3 مراجعه می‌کند به همین ترتیب در صورت پیدا نشدن اطلاعات در L3 پردازنده به L4 سر می‌زند و اگر اطلاعات مورد نیاز پردازنده در این سطح از حافظه نبود آن‌وقت ناگزیر به مراجعه به رم (DRAM) می‌شود. توجه داشته باشید که تمام پردازنده‌های از هر چهار سطح حافظه‌ی کش پشتیبانی نمی‌کنند و برخی از پردازنده‌های قدیمی تنها سه یا دو سطح از حافظه‌‌ی کش را در اختیار دارند. سطح دوم از حافظه‌ی کش، ارزان‌ترو بزرگ‌تر از L1 است و علاوه بر آن مصرف انرژی کمتری نیز دارد. اما با این حال بسیاری از پردازنده‌های مدرن امروزی ۹۵ درصد از درخواست‌های خود را از همان L1 پاسخ می‌گیرند و کمتر نیاز به مراجعه به حافظه‌ی سطح دوم پیدا می‌کنند.