مفهوم سرور سخت افزاری

مفهوم سرور سخت افزاری

مفهوم سرور سخت افزاری

در این پست قصد داریم به مفهوم سرور سخت افزاری بپردازیم. یک سرور به کامپیوتری گفته می شود که داده های مورد نیاز را برای کامپیوترهای دیگر فراهم می سازد. سرور می تواند داده ها را در بستر شبکه های LAN و WAN در اختیار سیستم های دیگر قرار دهد.
بسیاری از سرورها مانند وب سرورها ، میل سرورها و فایل سرورها نمونه ای از سرورهایی می باشند که بواسطه  نصب نرم افزاری بخصوص بر روی آنها می توانند سرویس خاصی را در اختیار دیگر سیستم ها قرار دهند. برای مثال یک وب سرور می تواند Apache HTTP یا Microsoft IIS را اجرا کند و سرویس وبی مانند یک وبسایت را ارایه دهد. یک میل سرور برنامه ای مانند Exim یا iMail را اجرا می کند و می تواند سروریسهای SMTP برای ارسال و دریافت ایمیل را ارایه دهد. یک فایل سرور هم بواسطه نرم افزاری خاص یا قابلیت خود سیستم عامل می تواند سرویس اشتراک فایل در شبکه را در اختیار کامپیوترها قرار دهد.
در حالی که نرم افزارهای سروری مختص به نوع خاصی از سرورها می باشند ولی سخت افزارهای سرور انحصار خاصی را ندارند. در واقع کامپیوترهای دسکتاپ می توانند با اضافه کردن نرم افزار سروری به یک سرور تبدیل شوند. برای مثال کامپیوتری که به یک شبکه خانگی متصل شده است می تواند به عنوان فایل سرور یا پرینت سرور و یا هر دو مورد استفاده قرار گیرد.
در حالی که کامپیوترهای معمولی می توانند به عنوان سرور پیکربندی و عمل کنند ولی بسیاری از شرکتها و کسب و کارهای بزرگ از سرورهای سخت افزاری رکمونت (قابل نصب بر روی رک) که برای ارایه سرویسهای سروری طراحی شده اند استفاده می کنند. این سرورها که توسط کمپانی هایی مانند HPE و IBM تولید می شوند و قابلیت بسیار زیادی از قبیل RAID و Hot-Swap را دارند و می توانند سالها بدون یک هیچ وقفه ای سرویس ارایه دهند. در این سرورهای مدرن معمولا تعویض پاور برق و هارددیسک بدون هیچگونه خاموشی انجام می شود. یکی از کلیدی ترین قابلیت های این سرورها امکان مانیتورینگ و مدیریت هوشمند این سرورها از راه دور می باشد.
با توجه به اینکه سرورها می توانند انواع سرویسها را ارایه دهند نیاز به انواع مختلف سخت افزارها و قطعات دارند که می توان گفت انواع پردازنده ها ، رم ها ، هاردها و … برای کاربری های متفاوت تولید شده است.

 

ادامه مطلب 0 نظرات
کش پردازنده چیست؟

کش پردازنده چیست؟

کش پردازنده چیست؟

کش پردازنده یا کش سی پی یو (حافظه پنهان پردازنده) نوعی حافظه است که سرعت دسترسی بسیار بالایی دارد و محاسبات را با سرعت بیشتری انجام می دهد.

این حافظه معمولاً داده هایی را که پردازنده به طور مداوم به آن ها نیاز دارد در خود ذخیره می کند. در نتیجه هر زمان که پردازنده به آن داده نیاز پیدا می کند دیگر لازم نیست تا به حافظه اصلی دسترسی پیدا کند.

حافظه اصلی یک قطعه کامپیوتری است که پایین ترین سرعت دسترسی به اطلاعات را دارد. اگر CPU به داده ای خاص نیاز داشته باشد با استفاده از گذرگاه حافظه (Memory Bus) درخواستی از CPU به حافظه اصلی فرستاده می شود. در ادامه حافظه اصلی به دنبال داده مورد نظر می گردد و آن را به CPU می فرستد. مدت زمان زیادی در طول این چرخه تلف می شود. اگر داده های مورد نظر در محلی نزدیک به CPU ذخیره می شدند چه می شد؟ عملکرد کش پردازنده نیز بر مبنای چنین مفهومی طراحی شده است. برای درک مفهوم حافظه کش ما از مثال کتابخانه در طول این مطلب استفاده می کنیم.

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

چرا به کش پردازنده نیاز داریم؟

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

آیا حافظه کش تنها داده هایی را که زیاد مورد استفاده قرار می گیرند در خود ذخیره می کند؟

خیر، حافظه کش نوعی حافظه هوشمند است که به دنبال داده هایی که ممکن است در آینده نزدیک لازم شوند نیز می گردد. اگر بخواهیم به مثال کتابخانه برگردیم: وقتی شخص جلد اول هری پاتر را درخواست می کند کتابدار باهوش ما جلد دوم هری پاتر را نیز پیدا می کند و با خود می آورد. حال وقتی شخص جلد اول را خواند به احتمال زیاد از کتابدار جلد دوم را نیز می خواهد. در چنین حالتی نیز جلد دوم در کشو میز کتابدار آماده تحویل به آن شخص است. به طور مشابه وقتی حافظه کش داده ها را از حافظه اصلی می گیرد داده هایی را نیز که در آدرس هایی نزدیک آدرس داده اصلی هستند در خود ذخیره می کند. به این مقادیر داده های مجاور داده اصلی که به کش منتقل می شوند cache line گفته می شود.

کش پردازنده دو سطحی

بسیاری از هارد درایو ها و اجزای دیگر سیستم از کش یک سطحی استفاده می کنند اما کش پردازنده، یک کش دو سطحی است. در این حالت کش سطح 1 (L1) کوچکتر و سریع تر است در حالی که کش سطح 2(L2) کمی کند تر است بااین حال باز هم کش سطح 2 سرعت بسیاری بیشتری نسبت به حافظه اصلی سیستم دارد. کش L1 به دو بخش تقسیم می شود که عبارتند از: کش دستورات و کش داده ها. کش دستورات در واقع دستوراتی را که CPU برای پردازش اطلاعات به آن ها نیاز دارد در خود ذخیره می کند در حالی که کش داده، مقادیری را که برای دستور فعلی در حال اجرا نیاز هستند را ذخیره می کند. وظیفه کش L2 بارگذاری اطلاعات از حافظه اصلی است. اگر بخواهیم دوباره به مثال کتابخانه برگردیم: فرض کنید کشوی میز کتابدار همان کش L1 باشد. در یک روز شلوغ که میزان تقاضا برای کتاب ها زیاد است و کتابدار کتاب های زیادی را در کشوی میز خود قرار داده است این احتمال وجود دارد که کشوی میز به سرعت پر شود. اینجا جایی است که کش L2 وارد ماجرا می شود. یک کمد کتاب را در نزدیکی میز کتابدار به عنوان کش L2 در نظر بگیرید. وقتی کشو پر می شود کتابدار کتاب ها را در کمد قرار می دهد. در این صورت وقتی تقاضا برای یک کتاب محبوب زیاد باشد، کتابدار اول کشوی میز خود را جستجو می کند. اگر آن کتاب در آن جا نبود او به سراغ کمد کتاب ها می رود. به طور مشابه وقتی کش L1 پر می شود داده ها در کش L2 ذخیره می شوند. پردازنده ابتدا در کش L1 به دنبال داده مورد نیاز خود می گردد اگر آن را پیدا نکرد فقط کش L2 را جستجو می کند. اگر آن داده در کش L2 نیز موجود نباشد طی کردن مسیر طولانی تا حافظه اصلی و جستجو در آن اجتناب ناپذیر است.

L3 Cache یا کش لایه سوم پردازنده چیست ؟

کش L3 بین حافظه اصلی سیستم یا همان RAM و کش لایه دوم قرار می گیرد . هدف از طراحی و پیاده سازی کش L3 این است که اگر داده ها در کش لایه دوم پیدا نشدند در لایه سوم بتوان به آنها دسترسی داشت باید به این نکته توجه داشت که کش لایه سوم سرعت پایینتر اما ظرفیت بیشتری نسبت به کش لایه دوم دارد. همان طور که در تصویر پایین مشاهد میکنید ویژگی دیگر کش لایه 3 این میباشد که بین تمام هسته های پردازنده مشترک است.

کش پردازنده چیست؟

eDRAM یا L4 Cache  یا کش لایه چهارم پردازنده چیست ؟

اگر اطلاعات مورد نیاز پردازنده روی کش سطح سوم هم وجود نداشته باشد، کش L4 در صورت موجود بودن وارد عمل خواهد شد.

حافظه کش سطح چهارم از نوع eDRAM بوده که فقط در پردازنده های برادول (BroadWell) با گرافیک مجتمع Iris Pro با حافظه 128 مگابایت وجود دارد. کمپانی اینتل حافظه کش L4 را Crystal Well نام گذاری کرده و این حافظه را همراه با خود پردازنده اما در تراشه ای جداگانه همانند شکل زیر گنجانده است.

کش پردازنده چیست؟

البته باید گفت که فقط اینتل نیست که به فکر افزایش حافظه کش پردازنده های خود افتاده است بلکه کمپانی AMD نیز سعی را بر این داشته که در پردازنده های کنسول XBOX One شرکت مایکروسافت از یک کش اضافه بهره ببرد.

آیا استفاده از کش بیشتر ایده خوبی است؟

بله و خیر. استفاده از کش بیشتر به شما اجازه می دهد تا داده ها را باسرعت بیشتری به دست بیاورید البته این در حالتی است که داده مورد نظر در کشL1 یا L2 موجود باشد. دوباره به مثال کتابخانه باز می گردیم. اگر شخصی یک کتاب محبوب را درخواست کند که در کشو و کمد کتاب ها موجود نباشد، کتابدار ابتدا کشو میز خود را جستجو می کند و سپس به سراغ کمد کتاب ها می رود آن جا را نیز می گردد. با این روش زمان زیادی تلف می شود تا کتابدار در نهایت به سراغ قفسه های اصلی کتاب در کتابخانه برود و کتاب مورد نظر را پیدا کند. به طور مشابه، CPU نیز ابتدا در کش L1 و سپس در کش L2 به دنبال داده مورد نظر می گردد و اگر آن را پیدا نکرد در نهایت درخواست خود را به حافظه اصلی می فرستد. همان طور که حتما متوجه شده اید در این روش زمان زیادی از پردازنده برای جستجو در کش های L1 و L2 تلف می شود. وقتی پردازنده داده مورد نظر را در یکی از کش ها پیدا کند اصطلاحا به آن Cache Hit گفته می شود و در شرایط دیگر به آن Cache miss گفته می شود. داده ها اغلب به صورت تناوبی به روزرسانی شده و با الگوریتم های متفاوتی جایگزین می شوند تا تا بیشترین مقدار Cache Hit اتفاق بیفتد.

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

ادامه مطلب 0 نظرات
تکنولوژی Tensor Cores چیست؟

تکنولوژی Tensor Cores چیست؟

تکنولوژی Tensor Cores چیست؟

یکی دیگر از تکنولوژی های کارت گرافیک انویدیا Tensor Cores است. “Mark Lipacis” تحلیلگر موسسه “Jefferies” وجه تمایز کارت‌های گرافیک مبتنی بر “Volta” با دیگر محصولات را هسته‌های “Tensor” می‌داند که به کارت اجازه می‌دهد عملیات ضرب ماتریس را با روشی بسیار کارآمد پردازش کند. در حال حاضر، این کارت‌ها به دیتاسنترها فروخته می‌شود زیرا این مراکز، اصلی‌ترین مکان‌ها برای حوزه در حال رشد هوش مصنوعی می‌باشند. کارت‌های گرافیک همچون محصولات سری “Volta”، با توان محاسباتی بالاتر، به پروسه یادگیری سیستم‌های هوش مصنوعی سرعت خواهند بخشید.
کارت‌های گرافیک از نظر داشتن هزاران هسته پردازشگر کوچک‌تر که توانایی انجام وظایف کوچک را دارند، با پردازنده‌های موجود با چهار تا هشت هسته که در بسیاری از ماشین‌های مدرن پیدا می‌شوند، تفاوت زیادی دارند. در حقیقت، هسته‌های “Tensor” به منظور سرعت بخشیدن به توانایی‌های یادگیری سیستم هوش مصنوعی طراحی شده و به گفته انویدیا، 12 برابر سریع‌تر از محصولات نسل قبلی این شرکت هستند. این تحلیل‌گر معتقد است انویدیا با عرضه محصولات جدید می‌تواند بخش قابل توجهی از سهم حوزه هوش مصنوعی را به خود اختصاصی دهد.
به طور کلی Tensor Cores برای یادگیری عمیق تر طراحی شده است و عملکرد 47 برابر سریعتر از یک سرور مبتنی بر CPU است که این قابلیت کلیدی Volta را قادر می سازد سرعت بیشتری از نسل قبلی را فراهم کند.
کارت NVIDIA Tesla V100 توسط NVIDIA Volta، دارای معماری GPU جدید طراحی شده است. پردازشگرهای جریان آن 50 درصد انرژی بیشتری را نسبت به نسل قبلی NVIDIA PascalTM به کار می برند که باعث افزایش قابل ملاحظه ای در نقطه شناور سیستم های 32 بیتی (FP32) و عملکرد دقیق نقطه شناور 64 بیتی (FP64) می شود. هر کدام از Tesla V100 640 Tensor Cores روی یک ماتریس 4×4 عمل می کند و مسیرهای مربوط به داده های آنها به صورت سفارشی طراحی شده اند تا به طور قابل توجهی افزایش توان پردازش نقطه شناور با بهره وری انرژی بالا را افزایش دهند.

ادامه مطلب 0 نظرات