کش در کامپیوتر اصطلاحی است که در مورد برخی قطعات مثل هارد و سی پی یو
بکار می رود پس اول به سراغ خود اصطلاح 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 داشتند و درمدل های بعدی هم بطور متوسط از ۶ مگابایت حافظه استفاده شد. در این مرحله اینتل توانست سطح بالاتری از کش را در لایه سوم ارائه دهد.




برگرفته از عصر ارتباط