فرهنگ و تاريخ | سرگرمي | نيازمنديها | مذهبي | اقتصادي | خانواده و اجتماع | هنر | اخبار | ورزش | کامپيوتر | گردشگري | صنعت و دانشگاه | صفحه اصلي

آموزش کارکردن با نرم افزارها
دانلود نرم افزارهاي کاربردي
آموزش سخت افزار کامپيوتر
آخرين قيمت قطعات کامپيوتر
آموزش ويندوز و ترفندهاي آن
معرفي انواع سيستم عاملها
آموزش کار با اينترنت و شبکه
مبارزه با ويروسهاي کامپيوتري
رده بندي سايتهاي کامپيوتري
نشريات و کتابهاي کامپيوتري
 
 

عنوان: Cache يا حافظه نهان پردازنده چيست

نويسنده: بابک نقاش              ايميل:

منبع اطلاعاتي: www.13.asreertebat.com            تاريخ نگارش: 13/01/1389

عکس
 

 

گالري تصاوير

 

- - - -

 

- - - -

 
 
 

کش در کامپيوتر اصطلاحي است که در مورد برخي قطعات مثل هارد و سي‌پي‌يو بکار مي‌رود پس اول به سراغ خود اصطلاح Cache مي‌روم تا ببينيم اين فناوري چه مي‌کند.

کش معمولا در زير مجموعه حافظه‌ها قرار مي‌گيرد و کاربرد اصلي آن هم افزايش سرعت سيستم است بطوريکه قيمت آن همچنان قابل قبول باشد. اين فناوري پلي است بين يک منطقه اطلاعات بزرگ با سرعت پائين و محلي که اين اطلاعات مورد استفاده قرار مي‌گيرد و حالا مي‌توانيم بگوئيم کش چيست. وقتي اطلاعات از روي هارد ديسک يا رم فراخوانده مي‌شوند اين اطلاعات قبل از اينکه به مقصد اصلي برسند در نقطه‌اي ذخيره مي‌شوند که به اين نقطه کش مي‌گوئيم. سرعت انتقال اطلاعات از کش بالاتر از رم و هارد است و بخشي که نياز به اطلاعات دارد مي‌تواند با سرعت بيشتري به آنها دسترسي پيدا کند و در همين فاصله داده‌هاي ديگر را فرا بخواند يا آن‌ها را به خروجي‌ها منتقل کند. اما هميشه هم اينطور نيست که اطلاعات در کش قابل دسترس باشند و بنابراين اگر اطلاعات در کش باشد به اين وضعيت cache hit و اگر نباشد cache miss مي‌گويند.

 

 

 

 امروزه تقربا تمام هارد ديسکها و DVD درايو‌ها مجهز به اين حافظه ذخيره کوتاه مدت هستند که به آن بافر هم گفته مي‌شود اما در اين قطعات معمولا از يک سطح حافظه استفاده مي‌شود و مانند اغلب پردازنده‌هاي امروزي مجهز به دو و سه سطح از حافظه کش نيستند. با اين حال همين مقدار هم تاثير قابل توجهي در کارايي آنها دارد. اما ببينيم اين کش چه تاثيري در پردازنده دارد.

 

 

وقتي اطلاعات از روي رم فراخوانده ميشوند ۶۰ نانوثانيه (يک ثانيه تقسيم بر ۶۰ ميليارد) طول ميکشد تا اين اطلاعات در دسترس قرار بگيرند که مدت زمان واقعا کمي است ولي وقتي به چرخه زماني پردازنده دقت کنيم که تنها ۲ نانوثانيه است ميفهميم اين زمان براي پردازنده زماني طولاني است. کش‌هاي اوليه ابتدا روي مادربورد قرار گرفتند و زمان دسترسي به اطلاعات را به ۳۰ نانوثانيه کاهش دادند و بعد مشخص شد که اين مقدار هم کافي نيست و يک لايه ديگر به آن اضافه کردند که اين بار اين لايه درون پردازنده قرار گرفت و با همان سرعت پردازنده کار مي‌کرد. بعدها اين ساختار به کلي عوض شد و اکنون علاوه بر اين دو لايه يک لايه ديگر همبه حافظه دروني پردازنده اضافه شده که شروع کار آن را مي‌توان از زمان ورود پردازنده‌هاي چند هسته‌اي دانست.

 

 

نکته‌اي که در مورد کش بايد توجه کرد قيمت اين حافظه‌ها است. کش بيشتر ممکن است تاثير مثبتي روي کارايي داشته باشد اما قيمت ن تا يک حد مشخص براي مصرف کننده قابل قبول است و به همين دليل معمولا صرف نظر از توانائئ‌هاي فني در ساخت پردازنده اين نکته هم مورد توجه قرار مي‌گيرد. مثال آن هم حجم کش پائين در مدل‌هاي ارزان قيمت است.

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

شيوه ذخيره اطلاعات در لايه‌هاي مختلف نيز متفاوت است. داده‌ها مي‌توانند به صورت انحصاري در يک لايه قرار بگيرند يا در لايه‌هاي مختلف تکرار شوند آنچه مشخص است اين که در يک لايه اطلاعات تکرار نمي‌شوند و نمي‌توان دو لايه همسان را در يک لايه پيدا کرد ولي با کاهش سطح لايه‌ها و براي نزديک‌تر شدن اطلاعات به هسته هاي پردازشي اين داده‌ةا تکرار مي‌شوند و در هر سطح مي‌توان قسمتي از اطلاعات لايه‌ بالاتر را ديد. اينتل و AMD سياست يکساني در اين مورد ندارند به عنوان مثال در فنوم‌هاي AMD اطلاعات به صورت انحصاري در يک لايه هستند ولي در اينتل از روش جمع داده‌ها بين لايه‌ها استفاده مي‌شود.

 

 

 فراخواني اطلاعات از سمت کش نيز ميتواند حالت‌هاي مختلفي داشته باشد. در يکي از اين حالتها تنها در يک مسير اطلاعات روي کش کپي مي‌شوند که مزيت‌هايي مثل آدرس‌‌دهي بهتر اطلاعات روي رم را دارد اما در مقابل چندين مسير براي کپي کردن اطلاعات روي رم بکارگرفته مي‌شوند که اين روش هم مزايا و معايبي دارد. مزيت آن در اين است که اطلاعات روي کش بازنويسي نمي‌شوند و زمان دسترسي به داده‌هاي رم کوتاه‌تر خواهد بود اما از طرف ديگر مقايسه اطلاعات انتقال داده شده روي کش با رم باعث افزايش زمان تاخير رم مي‌شود. امروزه مشخص شده که  استفاده از چند مسير انعطاف بيشتري را براي پردازنده ايجاد مي‌کند و کارايي بهتري دارد. اينتل در پردازنده‌هاي جديد خود مثل Core i7 و i5 در سطح L1‌ از هشت مسير براي انتقال دستورالعمل‌ها و از ۴ مسير براي انتقال داده‌ها استفاده مي‌کند که در سطح L2‌نيز تقريبا همينطور است و ۸ مسير براي انتقال اطلاعات استفاده مي‌شوند در حالي که در لايه سوم ۱۶ مسير براي ارتباط گذاشته شده است.

اما در AMD شيوه متفاوتي به کار گرفته شده که از مهمترين دلايل اختلاف اين نوع پردازنده‌ها با اينتل است. در فنوم‌هاي چهار‌هسته‌اي براي لايه اول تنها ۲ مسير ايجاد شده که باعث کاهش زمان تاخير ميشود اما در کنار آن ظرفيت لايه L1 افزايش داده شده و ۶۴ کيلوبايت براي دستورالعمل‌ها و ۶۴ کيلوبايت نيز براي داده‌ها است. AMD در لايه‌هاي بعدي تهاجمي‌تر عمل مي‌کند بطوريکه در لايه دوم همان هشت مسير را استفاده کرده که مشابه اينتل است ولي در لايه سوم ۴۸ مسير براي انتقال اطلاعات فراهم شده است.

 

 

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

اولين سطح از کش داراي دو بخش است و محلي است که دستورالعمل‌هاي پردازنده و داده‌هاي مهم در آن قرار مي‌گيرد. اين سطح L1 ناميده ميشود. AMD اخيرا ( در همين يکي دو ساله) ساختار ۶۴ کيلوبايتي را به کش پردازنده‌هايش اضافه کرد و هر يک از اين دو بخش (داده‌ها و دستورالعمل‌ها) داراي ۶۴ کيلوبايت حافظه‌هستند در حالي که اينتل همچنان به ساختار ۳۲ کيلوبايتي متعهد مانده است.  اين لايه براي هر يک از هسته‌ها اختصاصي است و اطلاعات هر هسته در اختيار ساير هسته‌ها قرار نمي‌گيرد.

 

 

 کش در لايه دوم تا مدت‌ها به صورت مستقل براي هر هسته بود و حتي پيش از آن هم فقط AMD از اين لايه درون CPU استفاده مي‌کرد و در اينتل کش لايه دوم با هسته‌ها روي يک سطح نبودند. در واقع پس از معرفي فناوري ساخت ۱۸۰ نانومتري کش لايه دوم به سطح سيليکوني CPU اضافه شد. با ورود پردازنده‌هاي Core 2 Due کش مشترک در اينتل خلق شد و لايه دوم بطور مشترک بين دو هسته مورد استفاده قرار گرفت و اين روش در چهار هسته‌اي هاي اينتل هم ادامه پيدا کرد تا جايي که در چهار هسته‌اي دو کش L2 ديده مي‌شد. زيرا اين مدل‌ها چهار هسته‌اي واقعي نبودند و از اتصال دو سطح سيليکوني هر يک با دو هسته تشکيل شدند. البته دليل اينتل براي اين شيوه مسائل اقتصادي و صرفه اين مدل‌ها مطرح شد با اين حال AMD ساختار جديد را در فنوم‌ها پياده کرد که همراه با کش لايه سوم بود.

 

کش لايه سوم سال‌ها پيش ايجاد شد و البته مشکلات خاص خود را داشت بطوريکه بعد از استفاده IBM در سال ۱۹۹۵ اين سطح حافظه چندان مورد توجه قرار نگرفت تا اينکه اينتل اين لايه‌ها را در سال ۲۰۰۳ به رده حرفه‌اي محصولات خود اضافه کرد. نتيجه اين شد که ايتانيوم و پنتيوم ۴ اکستريم صاحب L3 شدند و نسل فنوم‌هاي AMD نيز از همان ابتدا با L3 همراه شدند هر چند که مدل‌هاي اوليه تنها ۲ مگابايت حافظه L3 داشتند و در مدل‌هاي بعدي هم بطور متوسط از ۶ مگابايت حافظه استفاده شد. در اين مرحله اينتل توانست سطح بالاتري از کش را در لايه سوم ارائه دهد.

 

 

 

 

 

 

گروه علمي فدک

کليه مطالب ارسالي با نام اشخاص و ذکر منبع در اين سايت درج مي شود

راهنما  |  آمار سايت  |  درباره ما  |  تماس با ما  |  نظر خواهي  | آرشيو  |  عضويت در سايت