
حافظه نهان وافزایش کارایی پردازنده ها
حافظه نهان (Cache Memory)
یکی از راههای افزایش کارایی در پردازندهها استفاده از حافظه نهان یا همان Cache Memory می باشد. این حافظه بسیار سریع از نوع SDRAM است که برای جلوگیری از تاخیر زمانی بین پردازنده و حافظه رم طراحی و تولید شده اند.حافظه Cache یا کش پردازنده حافظه ای است که در خود تراشه پردازنده قرار میگیرد یا ممکن است در مکان دیگری از مادربورد توسط یک bus یا گذرگاه ارتباطی با پردازنده در تماس باشد. حافظه نهان Cache پردازنده بدین منظور استفاده میشود که برنامه ها و دستورالعمل هایی که به تعداد زیادی در کامپیوتر استفاده میشود را در خود ذخیره کند. زمانیکه CPU میخواهد داده ای را مورد پردازش قرار دهد ابتدا به نزدیک ترین حافظه Cache خود نگاه میکند تا در صورت موجود بودن آن دستورالعمل را پردازش کند.
حافظه نهان یا کش میتواند به دو صورت سخت افزاری و مجازی باشد:
در نوع سخت افزاری، حافظه نهان قسمتی از واحد سخت افزاری مورد نظر (مثلاً CPUهای دارای این نوع حافظه یا هارد دیسکهای دارای این نوع حافظه) است که عمل Caching را برعهده دارد. مکانیزم،ساختار، سرعت و کارایی حافظه نهان سخت افزاری با حافظه اصلی (RAM) تفاوت زیادی دارد. از این رو با افزایش حجم حافظه نهان سخت افزاری در واحدهایی مانند CPU، قسمت تمام شده آن بیشتر میشود.
دلیل این که در همه جا از حافظه نهان استفاده نمیکنند.نحوه عملکرد حافظه نهان مجازی با سخت افزاری متفاوت است. این نوع حافظه نهان در واقع قسمتی از حافظه جانبی است که توسط برنامهها مشخص میشود و برای دسترسی سریعتر، از این قسمت استفاده میکنند. این نوع حافظه نهان به صورت محلی (Local) کارایی ندارد.
برای مثال:
برنامههایی مانند مرورگرهای وب، قسمتی از حافظه جانبی را تحت عنوان حافظه نهان وب (Web Cache) برای ذخیره سازی موقت دادههای وب مانند صفحات وب، تصاویر، استایلها و … استفاده میکنند و زمانی که کاربر قصد مشاهده صفحه یا تصویر درخواست شده را داشته باشد که در حافظه نهان وب مرورگر موجود باشد، مرورگر همان دادههای کش شده را به کاربر نشان میدهد. دراین فرایند دیگر دادههای کش شده از طریق اینترنت یا شبکه بارگیری نمیشوند و باعث کاهش ترافیک شبکه، پنهای باند مصرفی، بار روی سرور شده و باعث بهبود فرایند میشوند.
انواع سطوح حافظه کش:
- L1 cache : حافظه کش سطح L1 فوق العاده سریع است اما بسیار کوچک است. این حافظه عمدتاََ بر روی تراشه پردازنده قرار دارد.
- L2 cache : حافظه کش سطح L2 ظرفیت ذخیره سازی اطلاعات بیشتری نسبت به حافظه L1 را دارد. این حافظه در تراشه CPU یا در تراشه جداگانه واقع شده است، اما به CPU با data bios ای مخصوص بخود با سرعت بالا متصل شده است.
- L3,L4 حافظه سطح ۳ و سطح ۴ یا L3 و L4 به همین صورت حجم بیشتر از سطح قبلی ولی سرعت کمتری نسبت به دو سطح فوق دارند و معمولا به صورت اشتراکوی مورد استفاده قرار می گیرند.

حافظه کش اشتراکی یا هوشمند چیست؟
در پردازندههای قدیمی اگر مجموع مقدار حافظه کش سطح یک و دو جوابگوی مقدار مورد نیاز پردازنده نبود، پردازنده به حافظه رم مراجعه میکرد. اما با طراحی کش هوشمند یا اشتراکی توسط اینتل این مشکل تا حدود زیادی برطرف شد. در پردازندهها با این تکنولوژی هر هسته بسته به میزان نیاز خود از حافظه کش استفاده میکند.
مثلا اگر هسته ۴ نیاز به کش بیشتری داشته باشد و باقی هستهها بدون بار باشند، هسته ۴ می تواند از تمامی ظرفیت حافظه کش استفاده نماید.در وافع حافظه کش بصورت داینمیک در هرلحظه می تواند بسته به نیاز هسته ها,در اختیار هسته ها قرار بگیرد. یکی دیگر از مزایای کش هوشمند یا اشتراکی این است که اگه یک دیتایی توسط هسته یک به کش آمده و هسته دو هم به همون دیتا نیاز داشته باشد دیگه نیازی نیست که هسته دواون دیتارواز رم به کش بکشد چون همونجا هست و می تواند استفاده کند که این مسئله باعث افزایش سرعت میشود.
منظور از Cache Miss و Cache Hit چیست ؟
حافظه کش هابه ترتیب مورد بررسی قرار میگیرند.اگراطلاعات داخل کش۱ نباشه پردازنده به سراغ کش۲ میرود همین اتفاق باعث تاخیر زمانی میشود به این اتفاق میگویند Cache Miss. در واقع اگر اطلاعاتی که پردازنده لازم دارد در حافظه کش باشد بهش میگویند Cache Hit و اگر نباشد میگویندCache Miss.
تکنولوژی های جدید پردازندهها
متداولترین راه برای افزایش سرعت یک پردازنده ، بالا بردن فرکانس آن می باشد اما راههای دیگری نیز وجود دارد که به وسیله آن می توان مقدار قابل توجهی کارایی یک پردازنده را افزایش داد راههایی چون استفاده از Pipelining ، حافظه نهان ( Cache Memory)، چند هستهای شدن و HT .
Pipelining
Pipeliningورودی هر عنصر، خروجی عنصر قبلی است. pipelining زمان انجام پردازش بر روی یک داده را کاهش نمی دهد ، ولی بازده ی کل سیستم در پردازش جریانی از داده ها را افزایش می دهد.در تکنیک pipeline، چند دستور میتوانند در یک زمان اجرا شوند.
برای واضح تر شدن موضوع Pipelining ، مثالی از اجرای یک دستور در CPU را شرح میدهیم؛ یک پردازنده را در نظر بگیرید که در هر پالس یک دستورالعمل را اجرا میکند. در اولین پالس، دستور را از داخل حافظه اصلی ( RAM ) به داخل پردازنده انتقال میدهد. در پالس بعدی CPU دستور را Decode و در پالس سوم دستور اجرا میشود . در پالس چهارم نتیجه عمل ذخیره می گردد که این چرخه به صورت متوالی ادامه پیدا خواهد کرد.
در صورتیکه یک پردازنده دارای قابلیت Pipelining باشد می تواند چند عمل را در یک زمان و به صورت موازی انجام دهد بدین ترتیب که :
• در پالس اول ، دستور اول از حافظه اصلی خوانده میشود.
• در پالس دوم ، دستور اول Decode گشته و همزمان دستور العمل دوم از حافظه اصلی خوانده میشود.
• در پالس سوم ، دستورالعمل اول اجرا ، همزمان دستورالعمل دوم Decode و دستور العمل سوم از حافظه اصلی خوانده میشود.
بدین ترتیب این کارها همگی در یک زمان انجام میشوند که به Pipelining معروف می باشد.

Cache Memory
یکی دیگر از راه های افزایش کارایی در پردازندهها استفاده از حافظه نهان یا همان Cache Memory است که پیشتر توضیح داده شد.
Hyper Threading
Hyper Threading در واقع اصطلاحی است که اینتل استفاده میکند و همان تکنولوژی ای است که AMD آن را Simultaneous Multithreading یا SMT مینامد. در این تکنولوژی، CPU هسته فیزیکی خود را به دو هسته مجازی که Thread نامیده میشود، تقسیم میکند. HT هر هسته را برای انجام دو کار استفاده میکند در نتیجه کارایی CPU افزایش مییابد. پس با خیال راحت به اجرای همزمان اپهای Multiple Demanding یا استفاده از اپهای Heavily Threaded بپردازید بدون اینکه پی سی داغ شود.
این تکنولوژی که توسط اینتل توسعه داده شده امکان اجرای دستورالعملهای همزمان بیشتر در پردازنده را میسر میکند. HT اولین بار در سال ۲۰۰۲ و به همراه Pentium 4 HT معرفی شد.پنتیوم ۴ تنها یک هسته داشت و قادر به اجرای همزمان یک دستور بود؛ اما به کمک فناوری HT امکان اجرای همزمان دو دستور همزمان فراهم شد.
پردازندههای جدید امروزی نه تنها از چند هسته بهره میبرند بلکه فناوری Hyper-Threading را نیز دارند. در این حالت مثلا پردازندهی دو هستهای با فناوری HT همچون پردازندهی ۴ هستهای در سیستمعامل شناخته میشود.
Pingback:Core I7-Core I5-Core I3 - هوشمند نت Core I7-Core I5-Core I3