حافظه Cache
اگر تا کنون برای خود کامپیوتری تهیه کرده باشید ، واژه ” Cache” برای شما آشنا خواهد بود. کامپیوترهای جدید دارای Cache از نوع L1 و L2 می باشند. شاید در هنگام خرید یک کامپیوتر از طرف دوستانتان توصیه هائی به شما شده باشد مثلا” : ” سعی کن از تراشه های Celeron

استفاده نکنی چون دارای Cache نمی باشند! ” Cache یک مفهوم کامپیوتری است که بر روی هر نوع کامپیوتر با یک شکل خاص وجود دارد. حافظه های Cache ، نرم افزارهای با قابلیت Cache هارد دیسک و صفحات Cache همه بنوعی از مفهوم Caching استفاده می نمایند. حافظه مجازی که توسط سیستم های عامل ارائه می گردد نیز از مفهوم فوق استفاده می نماید.
مبانی CachingCaching یک تکنولوژی استفاده شده برای زیر سیستم های حافظه ، در کامپیوتر است . مهمترین هدف یک Cache افزایش سرعت و عملکرد کامپیوتر بدون تحمیل هزینه های

اضافی برای تهیه سیستم است . با استفاده از Cache عملیات کاربران با سرعت بیشتری انجام خواهد شد. کتابداری را در نظر بگیرید که در یک کتابخانه مسئول تحویل کتاب به متقاضیان است . فرض کنید در سیستم فوق ( درخواست و تحویل کتاب ) از مفهوم Cache استفاده نمی گردد. اولین متقاصی کتابی را درخواست می نماید( فرض شده است که متقاضی خود نمی تواند مستقیما” کتاب مورد نظر را از قفسه مربوطه ،بردارد) ، کتابدار، کتاب مورد نظر را از قفسه مربوطه پیدا و در ادامه آن را تحویل متقاضی می نماید. متقاضی پس از ۹۰ساعاتی مراجعه و کتاب را

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

که فرکانس استفاده از آنان توسط متقاضیان زیاد باشد ) به بخش مربوطه مراجعه و پس از یافتن کتاب آن را در اختیار متقاضیان قرار دهد. آیا روشی وجود دارد که با استناد به آن بتوان عملکرد و کارآئی کتابدار را بهبود بخشید ؟

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

درخواستی توسط متقاضی در بخش Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا مدت زمانی صرف خواهد شد که کتابدار به این اطمینان برسد که کتاب درخواستی در بخش Cache موجود نمی باشد ( جستجو) یکی از چالش های اصلی در رابطه با طراحی Cache به حداقل رساندن زمان جستجو در Cache است .سخت افزارهای جدید ، زمان فوق را به صفر نزدیک کرده اند. پس از حصول اطمینان از عدم وجود کتاب در بخش Cache ، کتابدار می بایست با مر

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

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

م حافظه ولی با سرعت بالا( قیمت بالا) برای افزایش سرعت و کارآئی میزان زیادی حافظه ولی با سرعت پایین ( قیمت ارزان ) است . در طراحی یک کامپیوتر هدف فراهم کردن شرایط لازم برای فعالیت پردازنده با حداکثر توان و در سریعترین زمان است . یک تراشه ۵۰۰ مگاهرتزی ، در یک ثانیه پانصد میلیون مرتبه سیکل خود را خواهد داشت ( هر سیکل در دونانوثانیه ) . بدون استفاده از L1 و L2 Cache ، دستیابی به حافظه حدودا” ۶۰ نانوثانیه طول خواهد کشید. بهرحال استفاده از Cache اثرات مثبت خود را بدنبال داشته و باعث بهبود کارآئی پردازنده می گردد.اگر مقدار L2 Cache معادل ۲۵۶ کیلو بایت و ظرفیت حافظه اصلی معادل ۶۴ مگابایت باشد ، ۲۵۶۰۰۰ بایت مربوط به Cache با استفاده از روش های موجود قادر به Cache نمودن ۶۴۰۰۰۰۰۰ بایت حافظه اصلی خواهند بود.
بهينه سازي استفاده ويندوز براي حافظه cpu
آيا تا به حال به اين قضيه كه حافظه اي كه در CPU هاي مدرن امروزي به چشم ميخورد و با نام CPU Cache شناخته ميشود ، چيست و چه كارايي دارد ، فكر كرده ايد؟ اين موضوعي است كه شايد بارها با آن برخورد داشته ايد ، اما هر بار تنها سرعت CPU بوده است كه نظر شما را به خودش جلب نموده است و از اين مورد غافل شده ايد. در اين مقاله من قصد ندارم شما را به صورت كامل و جزئي با تكنولوژي L2 Cache كه در اكثر CPU هاي قدرتمند امروزي استفاده ميشود آشنا سازم ، بلكه هدف من آشنايي مختصر شما با اين تكنولوژي و بهينه سازي آن براي استفاده حداكثر در سيستم ميباشد ( به حافظه L2 ، حافظه ثانويه سيستم نيز گفته ميشود يكي از بزرگترين اشكالاتي كه در ويندوزهاي سري NT ميتوان به آن اشاره كرد ، وجود يك كليد رجيستري منفرد و تنها ميباشد كه ميزان استفاده ويندوز از اين حافظه ثانويه را كنترل مينمايد. البته بسياري از افراد اين عامل را نقض ميكنند و آن را تنها مختص تنظيمات شركتي ميدانند كه در CPU براي حافظه L2 اعمال شده است. در صورتي كه اين طرز فكر تا حدودي اشتباه است و در ادامه مقاله شما علت آن را متوجه خواهيد شد. در اين مقاله شما خواهيد آموخت كه چگونه ميتوانيد تنظيمات اين كليد منحصر به فرد را براي استفاده حداكثر و بهينه از قابليت L2 Cache ، بهينه سازي نماييد. اگر شما از CPU اي استفاده ميكنيد كه در طراحي آن از قابليت دسترسي مستقيم به مسيرهاي حافظه L2 استفاده ميشود ، در اين صورت تنظيم نمودن اين كليد در رجيستري ميتواند در بالا بردن كارايي و سرعت فرآيندهاي آني سيستم شما ( نظير فرآيند بوت ) بسيار موثر باشد. اغلب CPU هاي سري Pentium امروزي و همچنين CPU هاي مدرن AMD از قابليت L2 Cache استفاده ميكنند ، براي اطمينان از اين امر ميتوانيد از دفتر چه راهنماي CPU و يا نوشته هاي اطلاعاتي روي CPU استفاده نماييد.در اكثر موارد ميزان دسترسي به اين حافظه توسط شركت سازنده تنظيم ميشود و بنابراين شما قادر نخواهيد بود تغييري ( در ظاهر ! ) در ميزان دسترسي به اين حافظه اعمال نماييد. به صورت پيش فرض ، ويندوز ( و به صورت كلي هر سيستم عاملي ) براي انجام عمليات بوت از فرامين دسترسي به HAL يا Hardware Abstraction Layer ( دسترسي به لايه هاي مج

رد هارد ديسك ) استفاده مينمايد. اين عمل باعث بازيابي حافظه L2 ميشود. اگر اين عمليات با شكست مواجه شود ، يعني به هر دليلي امكان دسترسي به لايه هاي هارد ديسك وجود نداشته باشد ، ويندوز براي انجام عمليات بوت از حافظه L2 كمك ميگيرد. در همين جا است كه نكته اصلي و پنهاني ماجرا آشكار ميشود ! ويندوز براي اين منظور تنها از ۲۵۶ KB از حافظه L2 استفاده ميك

ند ، در صورتي كه ممكن است CPU شما حافظه L2 اي بيش از اين داشته باشد ، متاسفانه اين مشكل از اينجا ناشي ميشود كه تنظيمات شركتي براي CPU تعريف شده هستند و به صورت پيش فرض نيز ويندوز از اين قابليت استفاده مفيد نميكند ، و علت اين امر همان كليد منحصر به فردي رجيستري ميباشد كه مورد بحث ما است و به صورت پيش فرض در حالت غير فعال قرار دارد.در ادامه مقاله شما با چگونگي فعال نمودن اين كليد و همچنين تنظيم بهينه آن آشنا خواهيد شد.پس با ادامه مقاله همراه باشيد.توجه : با توجه به اينكه اين تغييرات باعث اعمال فرامين خاصي توس

ط ويندوز در CPU خواهد شد و ممكن است باعث افزايش نسبي دماي CPU به علت دسترسي بيشتر سيستم به آن گردد ، لذا توصيه ميكنم قبل از هر گونه اعمال تغييري جوانب احتياط را رعايت نماييد و حتما از رجيستري ويندوز خود نيز نسخه پشتيبان تهيه نماييد. توجه داشته باشيد كه اين ترفندها تماما در گروه OverClocking قرار خواهند گرفت و لذا شما بايد كليه توصيه هاي مربوط به اين قبيل ترفندها را رعايت نماييد. در غير اين صورت مسئوليت هر گونه مشكلي در استفاده از آنها تنها با خود شما ميباشد .
در صفحه سمت راست به دنبال كليدي با نام SecondLevelDataCache بگرديد روي آن دوبار كليك نماييد تا صفحه مقدار دهي به آن ظاهر گردد
همان طور كه متوجه مي شويد مقدار اوليه اين كليد برابر ۰ ميباشد ، اين مقدار بدين معنا ميباشد كه CPU از تنظيمات شركتي خود براي حافظه L2 استفاده مينمايد ، در اين حالت ميزان استفاده از حافظه L2 تنها ۲۵۶ KB ميباشد ( البته توجه داشته باشيد كه بسته به نوع CPU شما اين مقدار نيز ممكن است متفاوت باشد كه در پايان مقاله در اين مورد بحث خواهم كرد ).

در قسمت Base حالت كد دهي را از Hexadecimal به Decimal تغيير دهيد و سپس عدد مورد نظر خود را براي ميزان استفاده از حافظه L2 ( بر حسب كيلوبايت ) در قسمت Value Data وارد نماييد ( براي مثال وارد نمودن عدد ۵۱۲ به اين معنا ميباشد كه سيستم از اين پس از ۵۱۲ كيلوبايت از حافظه L2 در مواقع نياز استفاده خواهد كرد ). هرگز عددي بيش از عددي كه براي حافظه L2 در CPU شما تعيين شده است در اين قسمت وارد ننماييد زيرا باعث بروز مشكلات بسيار جدي در سيستم شما خواهد شد .پس از وارد نمودن عدد مورد نظر بر روي OK كليك نماييد و سپس از رجيستري خارج شده و براي اعمال تغييرات سيستم خود را Restart نماييد.