PDA

View Full Version : حافظه cache



Younes
شنبه 05 اسفند 1385, 10:17 صبح
با سلام
میشود درمورد حافظه cache کمی توضیح دهید؟ میدانم که از جنس ram ولی باسرعت بیشتر است . اما آیا سرعت آن به cpu میرسد؟ یا اینکه کجا قرار دارد؟ آیا مقدار آن بعنوان یکی از مشخصه های یک پردازنده است یا مشخصه یک کامپیوتر خاص که بشکل خاصی جمع شده؟ آدرس آن در ردیف آدرسهای ram است یا در آدرس خاصی است؟ و ..... ممنون

Best Programmer
یک شنبه 06 اسفند 1385, 03:02 صبح
با سلام.
نمی خوام زیاد وارد جرییات بشم و بصورت کلی توضیح می دهم.
بهتر است ابتدا به اولین تصویر ضمیمه شده نظری بیاندازید.

پردازنده های قدیمی تر خانواده ia32 اینتل دستورالعمل ها و داده ها که مورد نیاز واحد اجراکننده (Execution Unit) بود را مستقیما از حافظه سیستم واکشی(Fetch) میکردند. بدلیل اینکه این بازیابی اطلاعات از حافظه و در اختیاز گذاردن آنها به cpu مدت زمان زیادی را تلف کرده و cpu در این مدت باید منتظر دستورالعمل ها بماند،اصطلاحی بوجود آمد به اسم prefetching(پیش واکشی)
همان طور که از اسمش بر می آید پیش واکشی سعی می کند که داده ها ویا دستورالعمل ها را قبل از اینکه واقعا مورد نیاز واحد اجراکننده (Execution Unit) شود را واکشی نماید. برای این عمل باید یک فضای ذخیره ای را درون چیپ پردازنده ایجاد شود که :
به سادگی در دسترس پردازنده قرار بگیرد از حافظه های معمول سریع تر باشد

این کار با به کار گیری pipelining صورت گرفت.
pipelining شامل ایجاد یک حافظه پنهان (memory cache) درون چیپ پردازنده است که: دستورالعمل ها داده های محیطی

بتوانند دخیره شوند و زمانی که مورد نیاز پردازنده می باشند در کسری از زمان بازیابی شوند.
هنگامی که واحد اجراکننده(Execution Unit) آماده برای دستورالعمل بعدی می باشد ،آن دستورالعمل درون حافظه پنهان(Cache) موجود است و می تواند سریعا مورد پردازش قرار بگیرد.
این مورد در ضمیمه 2 آمده است.

امیدوارم اینقدر کامل بوده باشد که یک دید کلی از داستان بهت داده باشه. از این که بیشتر وارد جزییات نشدم مرا ببخشید! چون جزییات یک کتاب میشه
چند مورد برایتان به صورت سوال میزام خودتون برید تحقیق کنید
سوال 1 : چطور می شود داده یا دستورالعمل بعدی را حدس زد؟
سوال 2 : در دستورالعمل های شاخه ای چه اتفاقی رخ می دهد

مراجع :
1: IA32 intel architecture Documents (ftp://download.intel.com/)
2: Professional assembly (http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010/sr=8-1/qid=1172368371/ref=pd_bbs_sr_1/104-5200413-9643144?ie=UTF8&s=books)
3: http://www.theinquirer.net/
4: Associative Processing and Processors (http://www.amazon.com/Associative-Processing-Processors-Anargyros-Krikelis/dp/0818676612/sr=8-1/qid=1172368188/ref=sr_1_1/104-5200413-9643144?ie=UTF8&s=books)


اما آیا سرعت آن به cpu میرسد؟

جواب در بالا


یا اینکه کجا قرار دارد؟

جواب در بالا


آیا مقدار آن بعنوان یکی از مشخصه های یک پردازنده است یا مشخصه یک کامپیوتر خاص که بشکل خاصی جمع شده؟

جواب در بالا


آدرس آن در ردیف آدرسهای ram است یا در آدرس خاصی است؟

شما دسترسی مستقیمی ندارید که بخواهید با آدرس های آن کاری داشته باشید.(البته برخی دوستانم راهی پیدا کرده اند البته بصورت نظری)

در انتها برای آشنایی با داخل پردازنده ها چند شکل قرار میدم:
AMD Dual Core : (معماری K8 - سال طراحی معماری 2003)
http://www.linuxhardware.org/images/articles/dualcoreopt-042105/dualcore-die.jpg
Intel Core2Duo : (معماری Conroe - سال معماری 2006)
http://img.hexus.net/v2/cpu/intel/Core2Duo/ConroeB.jpg
Sun UltraSparc : (معماری SPARC - سال معماری 2005)
http://www.computerworld.jp/images/_thumbnail/200603/355411.jpg
IBM Power970 : (معماری Power - سال معماری 2005)
http://ascii24.com/news/i/topi/article/2005/07/07/images/images779599.jpg
IBM Power3 :
http://www-03.ibm.com/servers/eserver/pseries/hardware/whitepapers/images/power3wp_fig2.gif
IBM Cell : (پردازنده ایی که در PS3 استفاده شده و در عالم پردازنده ها گردخاک و بحث های زیادی ایجاد کرده است)
http://www.research.ibm.com/cell/images/cell-diephoto.jpg

Younes
یک شنبه 06 اسفند 1385, 11:03 صبح
با تشکر فراوان
می خواستم سوال کنم که پس صف دستورالعملی که دکتر سید رضی در کتاب خود به آن اشاره کرده که در cpu قرار دارد (برای اینکه برای اجرای دستور بعدی مجبور به دسترسی مستقیم به حافظه و درنتیجه اتلاف وقت نباشیم) در همین کش هست؟
درمورد سوالها هم :
1) دستور بعدی را باید دستور فیزیکی بعدی در نظر بگیرد و ایجاد و طرح سوال دوم هم به همین دلیل می باشد . اینطور نیست؟
2) مجبور به دسترسی به حافظه هستیم برای همین می گویند که دستورات تغییر آدرس (اعم از حلقه و پرش و ..) زمان اجرای بیشتری دارند.
درست است ؟

Best Programmer
یک شنبه 06 اسفند 1385, 14:48 عصر
با تشکر فراوان
می خواستم سوال کنم که پس صف دستورالعملی که دکتر سید رضی در کتاب خود به آن اشاره کرده که در cpu قرار دارد (برای اینکه برای اجرای دستور بعدی مجبور به دسترسی مستقیم به حافظه و درنتیجه اتلاف وقت نباشیم) در همین کش هست؟
درمورد سوالها هم :
1) دستور بعدی را باید دستور فیزیکی بعدی در نظر بگیرد و ایجاد و طرح سوال دوم هم به همین دلیل می باشد . اینطور نیست؟
2) مجبور به دسترسی به حافظه هستیم برای همین می گویند که دستورات تغییر آدرس (اعم از حلقه و پرش و ..) زمان اجرای بیشتری دارند.
درست است ؟

حقیقت آخرین باری که من کتاب فارسی خواندم را یادم نیست. حالا شما کدام کتاب را می گویید برم کتاب فروشی سر کوچه بخونم ببینم چی گفته و منظورش چی بوده.
-منظورتون از دستور فیزیکی بعدی چیه؟
-مجبور به دسترسی به حافظه هستیم هم یعنی چی؟
زیاد نمی خواد ذهن خودتون را با کتاب های فارسی مغشوش کنید. اکثر کسانی که تالیف یا ترجمه کرده اند متاسفانه سطح دانش بسیار پایینی داشته اند و برای کلاس و رزومه کاری یه کتابی تالیف کرده اند. مانند برخی که به ترجمه آزاد می پردازند و روی آن تالیف می نویسند
اگر کتاب ها و متون گفته شده در بالا را بخوانی دیگر اینقدر اطلاعات در این زمینه خاص داری که میتونی یک کتاب فوق خفن تو ایران تالیف کنی :بامزه: