rezalaghaian
11-20-2010, 03:32 PM
http://pnu-club.com/imported/mising.jpg
کش در کامپیوتر اصطلاحی است که در مورد برخی قطعات مثل هارد و سیپییو بکار میرود پس اول به سراغ خود اصطلاح Cache میروم تا ببینیم این فناوری چه میکند.
کش معمولا در زیر مجموعه حافظهها قرار میگیرد و کاربرد اصلی آن هم افزایش سرعت سیستم است بطوریکه قیمت آن همچنان قابل قبول باشد. این فناوری پلی است بین یک منطقه اطلاعات بزرگ با سرعت پائین و محلی که این اطلاعات مورد استفاده قرار میگیرد و حالا میتوانیم بگوئیم کش چیست. وقتی اطلاعات از روی هارد دیسک یا رم فراخوانده میشوند این اطلاعات قبل از اینکه به مقصد اصلی برسند در نقطهای ذخیره میشوند که به این نقطه کش میگوئیم. سرعت انتقال اطلاعات از کش بالاتر از رم و هارد است و بخشی که نیاز به اطلاعات دارد میتواند با سرعت بیشتری به آنها دسترسی پیدا کند و در همین فاصله دادههای دیگر را فرا بخواند یا آنها را به خروجیها منتقل کند. اما همیشه هم اینطور نیست که اطلاعات در کش قابل دسترس باشند و بنابراین اگر اطلاعات در کش باشد به این وضعیت cache hit و اگر نباشد cache miss میگویند.
http://pnu-club.com/imported/mising.jpg
امروزه تقربا تمام هارد دیسکها و DVD درایوها مجهز به این حافظه ذخیره کوتاه مدت هستند که به آن بافر هم گفته میشود اما در این قطعات معمولا از یک سطح حافظه استفاده میشود و مانند اغلب پردازندههای امروزی مجهز به دو و سه سطح از حافظه کش نیستند. با این حال همین مقدار هم تاثیر قابل توجهی در کارایی آنها دارد. اما ببینیم این کش چه تاثیری در پردازنده دارد.
وقتی اطلاعات از روی رم فراخوانده میشوند ۶۰ نانوثانیه (یک ثانیه تقسیم بر ۶۰ میلیارد) طول میکشد تا این اطلاعات در دسترس قرار بگیرند که مدت زمان واقعا کمی است ولی وقتی به چرخه زمانی پردازنده دقت کنیم که تنها ۲ نانوثانیه است میفهمیم این زمان برای پردازنده زمانی طولانی است. کشهای اولیه ابتدا روی مادربورد قرار گرفتند و زمان دسترسی به اطلاعات را به ۳۰ نانوثانیه کاهش دادند و بعد مشخص شد که این مقدار هم کافی نیست و یک لایه دیگر به آن اضافه کردند که این بار این لایه درون پردازنده قرار گرفت و با همان سرعت پردازنده کار میکرد. بعدها این ساختار به کلی عوض شد و اکنون علاوه بر این دو لایه یک لایه دیگر همبه حافظه درونی پردازنده اضافه شده که شروع کار آن را میتوان از زمان ورود پردازندههای چند هستهای دانست.
http://pnu-club.com/imported/mising.jpg
نکتهای که در مورد کش باید توجه کرد قیمت این حافظهها است. کش بیشتر ممکن است تاثیر مثبتی روی کارایی داشته باشد اما قیمت ن تا یک حد مشخص برای مصرف کننده قابل قبول است و به همین دلیل معمولا صرف نظر از توانائئهای فنی در ساخت پردازنده این نکته هم مورد توجه قرار میگیرد. مثال آن هم حجم کش پائین در مدلهای ارزان قیمت است.
وظیفه تمام این لایهها این است که تا حد امکان دادهها را نزدیک پردازنده نگه دارند تا پردازنده مجبور به فراخوانی اطلاعات از فاصلهای دورتر با سرعت کمتر و زمان بالاتر نباشد. اینها باعث شده تا در ساختار لایهها مخصوصا لایه دوم و سوم علاوه بر ذخیره اطلاعات مورد نیاز، از اشغال پهنای باند پردازنده با انتقال دادهها بین هستهها و ایجاد ترافیک غیرضروری در این ناحیه خودداری شود.
شیوه ذخیره اطلاعات در لایههای مختلف نیز متفاوت است. دادهها میتوانند به صورت انحصاری در یک لایه قرار بگیرند یا در لایههای مختلف تکرار شوند آنچه مشخص است این که در یک لایه اطلاعات تکرار نمیشوند و نمیتوان دو لایه همسان را در یک لایه پیدا کرد ولی با کاهش سطح لایهها و برای نزدیکتر شدن اطلاعات به هسته های پردازشی این دادهةا تکرار میشوند و در هر سطح میتوان قسمتی از اطلاعات لایه بالاتر را دید. اینتل و AMD سیاست یکسانی در این مورد ندارند به عنوان مثال در فنومهای AMD اطلاعات به صورت انحصاری در یک لایه هستند ولی در اینتل از روش جمع دادهها بین لایهها استفاده میشود.
http://pnu-club.com/imported/mising.jpg
فراخوانی اطلاعات از سمت کش نیز میتواند حالتهای مختلفی داشته باشد. در یکی از این حالتها تنها در یک مسیر اطلاعات روی کش کپی میشوند که مزیتهایی مثل آدرسدهی بهتر اطلاعات روی رم را دارد اما در مقابل چندین مسیر برای کپی کردن اطلاعات روی رم بکارگرفته میشوند که این روش هم مزایا و معایبی دارد. مزیت آن در این است که اطلاعات روی کش بازنویسی نمیشوند و زمان دسترسی به دادههای رم کوتاهتر خواهد بود اما از طرف دیگر مقایسه اطلاعات انتقال داده شده روی کش با رم باعث افزایش زمان تاخیر رم میشود. امروزه مشخص شده که استفاده از چند مسیر انعطاف بیشتری را برای پردازنده ایجاد میکند و کارایی بهتری دارد. اینتل در پردازندههای جدید خود مثل Core i7 و i5 در سطح L1 از هشت مسیر برای انتقال دستورالعملها و از ۴ مسیر برای انتقال دادهها استفاده میکند که در سطح L2نیز تقریبا همینطور است و ۸ مسیر برای انتقال اطلاعات استفاده میشوند در حالی که در لایه سوم ۱۶ مسیر برای ارتباط گذاشته شده است.
کش در کامپیوتر اصطلاحی است که در مورد برخی قطعات مثل هارد و سیپییو بکار میرود پس اول به سراغ خود اصطلاح Cache میروم تا ببینیم این فناوری چه میکند.
کش معمولا در زیر مجموعه حافظهها قرار میگیرد و کاربرد اصلی آن هم افزایش سرعت سیستم است بطوریکه قیمت آن همچنان قابل قبول باشد. این فناوری پلی است بین یک منطقه اطلاعات بزرگ با سرعت پائین و محلی که این اطلاعات مورد استفاده قرار میگیرد و حالا میتوانیم بگوئیم کش چیست. وقتی اطلاعات از روی هارد دیسک یا رم فراخوانده میشوند این اطلاعات قبل از اینکه به مقصد اصلی برسند در نقطهای ذخیره میشوند که به این نقطه کش میگوئیم. سرعت انتقال اطلاعات از کش بالاتر از رم و هارد است و بخشی که نیاز به اطلاعات دارد میتواند با سرعت بیشتری به آنها دسترسی پیدا کند و در همین فاصله دادههای دیگر را فرا بخواند یا آنها را به خروجیها منتقل کند. اما همیشه هم اینطور نیست که اطلاعات در کش قابل دسترس باشند و بنابراین اگر اطلاعات در کش باشد به این وضعیت cache hit و اگر نباشد cache miss میگویند.
http://pnu-club.com/imported/mising.jpg
امروزه تقربا تمام هارد دیسکها و DVD درایوها مجهز به این حافظه ذخیره کوتاه مدت هستند که به آن بافر هم گفته میشود اما در این قطعات معمولا از یک سطح حافظه استفاده میشود و مانند اغلب پردازندههای امروزی مجهز به دو و سه سطح از حافظه کش نیستند. با این حال همین مقدار هم تاثیر قابل توجهی در کارایی آنها دارد. اما ببینیم این کش چه تاثیری در پردازنده دارد.
وقتی اطلاعات از روی رم فراخوانده میشوند ۶۰ نانوثانیه (یک ثانیه تقسیم بر ۶۰ میلیارد) طول میکشد تا این اطلاعات در دسترس قرار بگیرند که مدت زمان واقعا کمی است ولی وقتی به چرخه زمانی پردازنده دقت کنیم که تنها ۲ نانوثانیه است میفهمیم این زمان برای پردازنده زمانی طولانی است. کشهای اولیه ابتدا روی مادربورد قرار گرفتند و زمان دسترسی به اطلاعات را به ۳۰ نانوثانیه کاهش دادند و بعد مشخص شد که این مقدار هم کافی نیست و یک لایه دیگر به آن اضافه کردند که این بار این لایه درون پردازنده قرار گرفت و با همان سرعت پردازنده کار میکرد. بعدها این ساختار به کلی عوض شد و اکنون علاوه بر این دو لایه یک لایه دیگر همبه حافظه درونی پردازنده اضافه شده که شروع کار آن را میتوان از زمان ورود پردازندههای چند هستهای دانست.
http://pnu-club.com/imported/mising.jpg
نکتهای که در مورد کش باید توجه کرد قیمت این حافظهها است. کش بیشتر ممکن است تاثیر مثبتی روی کارایی داشته باشد اما قیمت ن تا یک حد مشخص برای مصرف کننده قابل قبول است و به همین دلیل معمولا صرف نظر از توانائئهای فنی در ساخت پردازنده این نکته هم مورد توجه قرار میگیرد. مثال آن هم حجم کش پائین در مدلهای ارزان قیمت است.
وظیفه تمام این لایهها این است که تا حد امکان دادهها را نزدیک پردازنده نگه دارند تا پردازنده مجبور به فراخوانی اطلاعات از فاصلهای دورتر با سرعت کمتر و زمان بالاتر نباشد. اینها باعث شده تا در ساختار لایهها مخصوصا لایه دوم و سوم علاوه بر ذخیره اطلاعات مورد نیاز، از اشغال پهنای باند پردازنده با انتقال دادهها بین هستهها و ایجاد ترافیک غیرضروری در این ناحیه خودداری شود.
شیوه ذخیره اطلاعات در لایههای مختلف نیز متفاوت است. دادهها میتوانند به صورت انحصاری در یک لایه قرار بگیرند یا در لایههای مختلف تکرار شوند آنچه مشخص است این که در یک لایه اطلاعات تکرار نمیشوند و نمیتوان دو لایه همسان را در یک لایه پیدا کرد ولی با کاهش سطح لایهها و برای نزدیکتر شدن اطلاعات به هسته های پردازشی این دادهةا تکرار میشوند و در هر سطح میتوان قسمتی از اطلاعات لایه بالاتر را دید. اینتل و AMD سیاست یکسانی در این مورد ندارند به عنوان مثال در فنومهای AMD اطلاعات به صورت انحصاری در یک لایه هستند ولی در اینتل از روش جمع دادهها بین لایهها استفاده میشود.
http://pnu-club.com/imported/mising.jpg
فراخوانی اطلاعات از سمت کش نیز میتواند حالتهای مختلفی داشته باشد. در یکی از این حالتها تنها در یک مسیر اطلاعات روی کش کپی میشوند که مزیتهایی مثل آدرسدهی بهتر اطلاعات روی رم را دارد اما در مقابل چندین مسیر برای کپی کردن اطلاعات روی رم بکارگرفته میشوند که این روش هم مزایا و معایبی دارد. مزیت آن در این است که اطلاعات روی کش بازنویسی نمیشوند و زمان دسترسی به دادههای رم کوتاهتر خواهد بود اما از طرف دیگر مقایسه اطلاعات انتقال داده شده روی کش با رم باعث افزایش زمان تاخیر رم میشود. امروزه مشخص شده که استفاده از چند مسیر انعطاف بیشتری را برای پردازنده ایجاد میکند و کارایی بهتری دارد. اینتل در پردازندههای جدید خود مثل Core i7 و i5 در سطح L1 از هشت مسیر برای انتقال دستورالعملها و از ۴ مسیر برای انتقال دادهها استفاده میکند که در سطح L2نیز تقریبا همینطور است و ۸ مسیر برای انتقال اطلاعات استفاده میشوند در حالی که در لایه سوم ۱۶ مسیر برای ارتباط گذاشته شده است.