راهکارهای دیتاسنتر

راهکارهای دیتاسنتر

راهکارهای دیتاسنتر

راهکارهای دیتاسنتر

مفهوم کش یا حافظه نهان

مفهوم کش یا حافظه نهان

مفهوم کش یا حافظه نهان

حافظه نهان اولیه (Level cache)

این نوع حافظه در تمام پردازنده‌های 486 و بالاتر از جمله پنتیوم درون پردازنده وجود دارد. این نوع حافظه باعث می‌شود داده‌ها با سرعت بیشتری در اختیار پردازنده قرار گیرند. اندازه این نوع حافظه در پردازنده‌های 80486 ، برابر 256 کیلوبایت است. بنابراین حافظه نهان اولیه را کاربران رایانه نمی‌توانند افزایش دهند. زیرا درون بدنه سرامیکی یا پلاستیکی پردازنده قرار دارد. پردازنده‌های پنتیوم 2 و 3 دارای حافظه نهان اولیه‌ای متشکل از 2 بخش 16 بیتی کیلوبایتی هستند که یکی برای داده‌ها و دیگری برای دستورالعملها است. این پردازنده‌ها در مجموع دارای 32 کیلوبایت حافظه نهان هستند.

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

حافظه نهان ثانویه

در رایانه‌های با پردازنده 486 و بالاتر ، برای بالابردن کارآیی رایانه معمولا از حافظه نهان ثانویه نیز استفاده می‌شود. این حافظه در رایانه‌های قبل از پنتیوم 2 و 3 این نوع حافظه در کنار پردازنده بر روی کارت یا کارتریج پردازنده قرار گرفته است و به صورت ریز مجتمع با پردازنده است. در این پردازنده‌های نسل دوم سلرون و بعد از آن ، حافظه نهان ثانویه در داخل خود پردازنده قرار گرفته و اندازه آن بین 128 تا 256 کیلوبایت است. پردازنده آتلون (کا7) از 512 کیلوبایت تا 8 مگابیت حافظه نهان ثانویه را پشتیبانی می‌کند.

حافظه نهان ثانویه حافظه نهان اولیه نوع پردازنده
__ __ 386 اینتل
__ 16 و 8 کیلوبایت 486 اینتل
__ 16 کیلوبایت پنتیوم کلاسیک اینتل
__ 32 کیلوبایت پمنتیوم ام‌ام‌ایکس اینتل
512 کیلوبایت 32 کیلوبایت پنتیوم 2 اینتل
256 یا 512 کیلوبایت یا یک مگابایت 16 کیلوبایت پنتیوم پرو اینتل

مادربردها معمولا دارای حداقل 256 کیلوبایت از این نوع حافظه نهان هستند. بنابراین می‌توان گفت مقدار حافظه نهان بستگی به عوامل زیر دارد :

1. نوع پردازنده
2. اندازه حافظه اصلی
3. نوع تراشه‌های مجتمع (مجموعه تراشه مادربرد) نوع پردازنده

چنانچه حافظه اصلی در حدود 32 مگابایت باشد، 256 کیلوبایت حافظه نهان ثانویه کافی است. اما برای حافظه بین 32 مگابایت بهتر است مادربرد رایانه دارای 512 کیلوبایت حافظه نهان ثانویه داشته باشد. بالاخره چنانچه بیشتر از 64 مگابات باشد بهتر است از یک مگابایت حافظه نهان ثانویه استفاده شود. بنابراین اصل کلی در مورد حافظه نهان این است که هرچه اندازه حافظه نهان ثانویه بزرگتر ، مفیدتر است.

فرض کنیم که شما هر روز به رستوران می رید . هر روز راس ساعت 5 بعد از ظهر سفارش غذا می دید . هروز 4 نوع غذا رو به ترتیب خاص سفارس می دید . راس ساعت 5 همبرگر سفارش می دید گارسون سفارش شما رو بررسی می کنه به آشپزخونه میره بعد از 1 دقیقه همبرگر رو برای شما میاره شما همبرگر رو خورده و سفارش سوسیس می دید مجددا سفارش توسط گارسون به آشپزخانه منتقل شده و بعد از یک دقیقه غذا آماده می شه . به همین ترتیب شما سه غذای دیگه رو سفارش داده و برای هر غذا 1 دقیقه معطل میشید . خوب شما هروز همین غذاهارو سفارش داده و برای آماده شدن هر غذا 1 دقیقه معطل می شید . گارسون با خودش فکر می کنه که برای اینکه هم خودش کمتر کار کنه و هم شما کمتر معطل بشید بیاد و 1 میز دیگه ای آماده از غذاهای شما رو تهیه کنه و بلافاصله بعد از سفارش شما غذا رو روی میزتون بزاره . در اینجا گارسون” باس ” آشپزخانه ” رم ” و میز آماده ” کش ” در نظر گرفته می شن . بعد از چند روز شما همبرگر رو میخورید طبق عادت گارسون برای شما سوسیس میاره اما شما می گید که امروز املت می خوام! اینجا گارسون مجددا مجبور میشه که 1 دقیقه شما رو در انتظار بزاره تا املت رو براتون بیاره . در اینجا گارسون میز دومی رو تهیه می کنه که بر اساس انتخاب های دوم شما چیده شده . بدین ترتیب شما اگر غذایی رو سفارش بدین که در میز اول نباشه اما در میز دوم باشه بلافاصله غذا رو میل می کنید و معطل نمی شید . میز دوم در اینجا کش سطح دو یا ” Cache L2 ” هست . اصطلاحی که امروزه در رابطه با فول کش یا هالف کش گفته میشه همین کش سطح 2 هست . اصول کار پردازنده بدین صورت که پیش بینی دستورات بعدی رو کرده و جواب دستورات رو در حافظه ی نهان یا همون کش می ذاره . جالبه که بدونید پردازنده 90% دستورات بعدی رو درست حدس میزنه و اگر حدس پردازنده غلط از کار در بیاد مجبوره که به حافظه ی رم مراجعه کنه که همین مراجعه باعث تاخیر زیادی در کار پردازنده میشه . نکته ی که قابل گفتن هست اینه که این حافظه بسیار گران قیمت هست و به صرفه نیست که برای بالا بردن سرعت کامپیوتر حافظه کش تهیه کنید . ( مجبورید پردازنده هم عوض کنید!)
کتابداری را در نظر بگیرید که در یک کتابخانه مسئول تحویل کتاب به متقاضیان است . فرض کنید در سیستم فوق ( درخواست و تحویل کتاب ) از مفهوم Cache استفاده نمی گردد. اولین متقاصی کتابی را درخواست می نماید( فرض شده است که متقاضی خود نمی تواند مستقیما” کتاب مورد نظر را از قفسه مربوطه ،بردارد) ، کتابدار، کتاب مورد نظر را از قفسه مربوطه پیدا و در ادامه آن را تحویل متقاضی می نماید. متقاضی پس از ساعاتی مراجعه و کتاب را تحویل می دهد. کتابدار، کتاب تحویلی را مجددا” در قفسه مربوطه قرار می دهد. پس از لحظاتی یک متقاضی دیگر مراجعه و همان کتاب قبلی را درخواست می نماید ، کتابدار مجددا” می بایست به بخش مربوطه در کتابخانه مراجعه و پس از بازیابی کتاب ، آن را در اختیار متقاضی دوم قرار دهد.همانگونه که ملاحظه می گردد ، کتابدار مکلف است برای تحویل هر کتاب ( ولو کتاب هائی که فرکانس استفاده از آنان توسط متقاضیان زیاد باشد ) به بخش مربوطه مراجعه و پس از یافتن کتاب آن را در اختیار متقاضیان قرار دهد. آیا روشی وجود دارد که با استناد به آن بتوان عملکرد و کارآئی کتابدار را بهبود بخشید ؟
در پاسخ به سوال فوق می توان با ایجاد یک سیستم Cache برای کتابدار ، کارآئی آن را افزایش داد. فرض کنید بخشی را با ظرفیت حداکثر ده کتاب در مجاورت ( نزدیکی ) کتابدار آماده نمائیم . کتاب هائی که توسط متقاضیان برگردانده می شود، در بخش فوق ذخیره خواهند شد. مثال فوق را با در نظر گرفتن سیستم Cache ایجاد شده برای کتابدار مجددا” دنبال می نمائیم . در ابتدای فعالیت روزانه ، بخش Cache خالی بوده و هنوز در آن کتابی قرار نگرفته است . اولین متفقاصی مراجعه و کتابی را درخواست می نماید . کتابدار می بایست به بخش مربوطه مراجعه و کتاب را از قفسه مربوطه براشته و در اختیار متقاضی قرار دهد. متقاضی پس از تحویل کتاب ، چند ساعت بعد مراجعه و کتاب را تجویل کتابدار خواهد داد. کتابدار، کتاب تحویلی را در بخش پیش بینی شده برای Cache قرار می دهد. لحظاتی بعد متقاضی دیگر مراجعه و درخواست همان کتاب را می نماید .کتابدار در ابتدا بخش مربوط به Cache را جستجو و در صورت یافتن کتاب ، آن را به متقاضی تحویل خواهد داد. در این حالت ضرورتی به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود. در روش فوق زمان تحویل کتاب به متقاضی بهبود چشمگیری پیدا خواهد کرد. در صورتیکه کتاب درخواستی توسط متقاضی در بخش Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا مدت زمانی صرف خواهد شد که کتابدار به این اطمینان برسد که کتاب درخواستی در بخش Cache موجود نمی باشد ( جستجو) یکی از چالش های اصلی در رابطه با طراحی Cache به حداقل رساندن زمان جستجو در Cache است .سخت افزارهای جدید ، زمان فوق را به صفر نزدیک کرده اند. پس از حصول اطمینان از عدم وجود کتاب در بخش Cache ، کتابدار می بایست با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختیار متقاضی قرار دهد.
با توجه به دو مثال فوق ، چندین نکته مهم در رابطه با Cache استنباط می گردد:

– تکنولوژی Cache ، استفاده از حافظه های سریع ولی کوچک ، بمنظور افزایش سرعت یک حافظه کند ولی با حجم بالا است
– زمانیکه از Cache استفاده می گردد ، در ابتدا می بایست محتویات آن بمنظور یافتن اطلاعات مورد نظر بررسی گردد. فرآیند فوق را Cache hit می گویند. در صورتیکه اطلاعات مورد نظر در Cache موجود نباشند (Cache miss) ، کامپیوتر می بایست در انتظار تامین داده های خود از حافظه اصلی سیستم باشد ( حافظه ای کند ولی با حجم بالا )
– اندازه Cache محدود بوده وسعی می گردد که ظرفیت فوق حتی المقدور زیاد باشد ، ولی بهرحال اندازه آن نسبت به رسانه های ذخیره سازی دیگر بسیار کم است .
– این امکان وجود خواهد داشت که از چندین لایه Cache استفاده گردد.

Cache در کامپیوتر

کامپیوتر، ماشینی است که زمان انجام کارها توسط آن با واحدهای خیلی کوچک اندازه گیری می گردد.زمانیکه ریزپردازنده قصد دستیابی به حافظه اصلی را داشته باشد، می بایست مدت زمانی معادل 60 نانوثانیه را برای این کار در نظر بگیرد. سرعت فوق بسیار بالا است ولی سرعت ریزپردازنده بمراتب بیشتر است . ریزپردازنده قادر به داشتن سیکل هائی به اندازه دو نانوثانیه است . تفاوت سرعت بین پردازنده و حافظه کاملا” مشهود بوده و قطعا” رضایت پردازنده در این خصوص کسب نخواهد شد. پردازنده می بایست تاوان کند بودن حافظه را خود بپردازد . انتظار پردازنده و هرز رفتن زمان مفید وی کوچکترین تاوانی است که می بایست پردازنده پذیرای آن باشد.
بمنظور حل مشکل فوق ، فرض کنید از یک نوع خاص حافظه، با ظرفیت کم ولی با سرعت بالا ( 30 نانوثانیه ) ، استفاده گردد . سرعت دستیابی به حافظه فوق دو مرتبه سریعتر نسبت به حافظه اصلی است .این نوع حافظه راL2 Cache می نامند. فرض کنید از یک حافظه بمراتب سریعتر ولی با حجم کمتر استفاده و آن را مستقیما” با پردازنده اصلی درگیر نمود. سرعت دستیابی به حافظه فوق می بایست در حد و اندازه سرعت پردازنده باشد .این نوع حافظه ها را L1 Cache می گویند.
در کامپیوتر از زیرسیستمهای متفاوتی استفاده می گردد.از Cache می توان در رابطه با اکثر زیر سیستمهای فوق استفاده تا کارآئی آنان افزایش یابد.

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.