تبلیغات
دانش نامه کامپیوتر - حافظه کش چگونه کار میکند ؟
 

حافظه کش چگونه کار میکند ؟

نوشته شده توسط :امیر سبزلون
دوشنبه 26 اسفند 1387-01:59 ب.ظ

مقدمه
حافظه کش، یک حافظه سرعت بالای قابل دسترس درون CPU است که برای افزایش سرعت دسترسی به داده ها و دستورالعملهای ذخیره شده درون RAM است. در این مقاله ما میخواهیم با یک زبان ساده توضیح بدهیم که این مدار چگونه کار میکند.

یک کامپیوتر کاملا بی فایده است اگر شما نگویید پردازنده (به عبارت دیگر CPU) چه کاری انجام دهد. این بواسطه یک برنامه انجام میشود، که یک لیست از دستورالعملهایی است که میگوید CPU چه کاری انجام دهد.
CPU برنامه ها را از حافظه RAM واکشی میکند. مشکل با حافظه RAMاینست که با قطع جریان برقش، محتویاتش از بین میرود و این حافظه RAM را مانند یک رسانه فرار طبقه بندی میکند. بنابراین برنامه ها و داده ها باید در یک رسانه غیر فرار ذخیره بشوند (به عبارت دیگر، در جائی محتویات بعد از اینکه شما کامپوتر خودتان را خاموش میکنید از بین نروند) اگر شما بخواهید آنها را بعد از خاموش کردن کامپیوترتان داشته باشید، مثل درایو های هارددیسک، رسانه های نوری مانند CDها و DVDها.
هنگامیکه شما برروی یک آیکون ویندوز برای اجرای برنامه ای دابل کلیک میکنید، برنامه که معمولا برروی هاردیسک ذخیره شده است در حافظه RAM بارگذاری میشود و سپس بواسطه حافظه RAM، CPU برنامه را درون مداری که کنترلر حافظه نامیده میشود بارگذاری میکند، که در پردازنده های Intel درون چیپ ست (چیپ North Bridge) و یا در پردازنده های AMD درون CPU قرار دارد.

Image

شکل 1) چگونه داده های ذخیره شده به CPU اتقال داده میشوند.
CPU نمیتواند داده ها را بطور مستقیم از هارددیسک واکشی کند، چونکه آنها برایش خیلی کم سرعت هستند، حتی اگر شما فکر کنید که سریع ترین هارددیسک را دارید. فقط به شما چند ایده میدهد از چیزی که ما داریم درباره اش صحبت میکنیم، یک هاردیسک SATA-300 سریع ترین هاردیسک قابل دسترس برای کاربران معمولی در حال حاضر میباشد، که نرخ انتقال تئوریک آن 300 MB/s است و یک CPU که با فرکانس داخلی 2 GHz و 64 مسیر داده (Data Path) داخلی کار میکند، نرخ انتقال داده اش 16 GB/s میباشد، که حدود 50 برابر سریعتر است.
این یک محاسبه ناهنجار است، فقط برای اینکه به شما یک ایده داده باشد، زیرا CPU ها دارای چندن مسیر داده مختلف درون خودشان هستند و هریک دارای طول های مختلف هستند.برای مثال در پردازنده های AMD مسیر داده بین حافظه کش L2 حافظه کش L1 128 بیتی است، در صورتیکه این مسیر در CPU های کنونی Intel 256 بیتی است. اما شما نگران نباشید، این فقط برای اینست که توضیح بدهیم عددی که در بالا نوشتیم ثابت نیست، اما در هر حال CPU ها همیشه از هارددیسک ها خیلی سریعتر هستند.
اختلاف در سرعت از این ناشی میشود که هارددیسک ها سیستم های مکانیکی هستند، که کندتر از سیستم های الکترونیکی خالص میباشند، بطوریکه بخش های مکانیکی برای بازیابی شدن اطلاعات مجبورند داده ها را انتقال بدهند (که بمراتب کندتر از انتقال الکترونیکی است). در طرف دیگر حافظه RAM قرار دارد که 100% الکترونیکی است و همچنین از هاردیسک ها سریعتر و در بهترین حالت در حد سرعت CPU است.
در اینجا مشکلی وجود دارد. حتی سریع ترین حافظه های RAM به سرعت CPU نیستند. اگر شما حافظه های DRR-2 800 تهیه کنید، آنها داده را در نرخ 6400 MB/s و در صورت Dual Channel بودن با نرخ 12800 MB/s انتقال میدهند. ولو اینکه این عدد در مثال قبلی 16 GB/s بود، چونکه CPU های کنونی توانایی واکشی داده داده از حافظه کش L2 را در نرخ 128 بیت یا 256 بیت دارند، اگر CPU به طور داخلی در فرکانس 2 GHz کار کند ما داریم در مورد 32 GB/s یا 64 GB/s صحبت میکینم. در این رابطه نگران نباشید چونکه در حال حاضر "حافظه کش L2" وجود دارد، بعدا درباره اش توضیح میدهیم. خواسته ما اینست که شما به این ایده برسید که حافظه RAM از CPU کندتر است.
 ضمنا نرخ های انتقال میتوانند با فرمول زیر محاسبه بشوند (در تمام این مثال ها Data per Clock برابر یک میباشد)
Transfer rate = width (number of bits) x clock rate x data per clock / 8
مشکل فقط نرخ انتقال یا به عبارت دیگر سرعت انتقال نیست بلکه تأخیر (Latency) نیز هست. Latency (به Access Time نیز مشهور است) مقدار زمانی است که حافظه در ارجاع داده هایی که CPU درخواست کرده تأخیر می اندازند- این آنی نیست. هنگامیکه CPU برای یک دستورالعمل (یا داده) که در یک آدرس معین ذخیره شده است درخواست میکندحافظه یک زمان تأخیر جزئی برای تحویل این دستورالعمل (یا داده) برگشتی ایجاد میکند. در حافظه های کنونی اگر نوشته باشد که دارای CL ( CAS Latency، تأخیری است که ما درباره اش داریم صحبت میکنیم) 5است، این معنا را میدهد که حافظه داده های درخواستی را بعد از پنج سیکل ساعت حافظه تحویل میدهد- معنی اش اینست که CPU باید منتظر بماند.
انتظار کارایی CPU ار پایین می آورد. اگر CPU بری دریافت دستورالعمل یا داده درخواستی اش 5 سیکل ساعت حافظه منتظر بماند، کارائی اش فقط 1/5 آن عملکردی خواهد بود که اگر از یک حافظه توانا در تحویل فوری داده استفاده میکرد. به عبارت دیگر، در هنگام دسترس بودن یک حافظه DRR-2 800 با CL5، کارایی CPU به همان مقدار کارکرد حافظه در 160 MHz (800 MHz/5) میرسد. در دنیای واقعی کاهش کارایی زیاد نیست چونکه حافظه تحت یک مد، که مد Burst نام دارد کار میکنند در جائیکه داده دوم درخواست میشود، داده میتواند بطور آنی تحویل داده شود اگر درون یک آدرس همجوار ذخیره شده باشد (معمولا دستورالعمل های یک برنامه معین در آدرس های متوالی ذخیره میشوند) این مانند "x-1-1-1" توضیح داده شده است (مثلا "5-1-1-1" برای حافظه مثال ما)، معنایش اینست که که داده اول بعد از پنج سیکل ساعت تحویل داده میشود اما از دومین داده درخواستی، دادها میتوانند تنها د یک سیکل ساعت تحویل داده بشوند- اگر مانند آنچه ما گفتیم در یک آدرس متوالی ذخیره شده باشد.
Dynamic RAM در مقابل Static RAM
دو نوع حافظه وجود دارد: دینامیک یا پویا (DRAM) و استاتیک (SRAM). RAM استفاده شده در PC از نوع دینامیک میباشد. در این نوع حافظه هر بیت از داده ها درون تراشه حافظه در یک خازن بسیار ریز ذخیره میشود. خازن ها اجزای خیلی کوچکی هستند، به این معنی که میلیون ها از آن میتواند در یک فضای خیلی کوچک ساخته بشود. این چگالی عالی یا High Density نام دارد. از طرف دیگر خازن ها بعد از مدتی شارژشان را از دست میدهند، بنابراین حافظه های دینامیک به یک عمل که نو سازی یا Refresh نام دارد، احتیاج دارند، که این هر چند وقت یکبار اتفاق می افتد. در طی این مدت داده ها نمیتوانند خوانده یا نوشته بشوند. حافظه های دینامیک از حافظه استاتیک ارزانتر نیز میباشند و همچنین نیروی برق به مراتب کمتری استفاده میکنند، اما همانطور که ما گفتیم در RAM دینامیک داده ها به آسانی در دسترس نیستند و نمیتواند به سرعت CPU کار کند.
از طرف دیگر حافظه استاتیک میتواند با سرعت CPU کار کند، زیرا هر بیت داده در یک مدار که فلیپ فلاپ نام دارد ذخیره میشود، که همچنین میتواند داده ها را با تأخیر صفر یا خیلی کوچک تحویل دهد، زیرا فلیپ فلاپ ها به Refresh نیازی ندارند. مشکل اینجاست که فلیپ فلاپ ها برای ساخته شدن به چندین ترانزیستور نیاز دارند، به عبارت دیگر آنها از یک خازن خیلی بزرگتر هستند. این به این معناست که در همان فضایی که در یک حافظه استاتیک یک فلیپ فلاپ وجود دارد، در یک حافظه دینامیک صدها خازن وجود دارد. بنابراین حافظه های های استاتیک یک چگالی پائین را فراهم میکنند- تراشه ها دارای ظرفیت کمی هستند. دو مشکل دیگر با حافظه های استاتیک: خیلی گران هستند و مصرف برق زیادی دارند- بنابراین حرارت بیشتری تولید میکنند.
در جدول زیر بطور خلاصه تفاوتهای DRAM و SRAM را بیان کرده ایم.
Image 

با اینکه RAM استاتیک سریعتر از RAM دینامیک است، ولی شرایط نامساعدش از استفاده شدن آن در مدارهای اصلی RAM جلوگیری میکند. 
راه حل موجود برای کاهش اثر استفاده از حافظه RAM که کندتر از CPU است، استفاده از مقدار کمی RAM استاتیک مابین CPU و حافظه RAM بود. این روش حافظه کش نام دارد و امروزه این مقدار کم از حافظه استاتیک درون CPU قرار دارد.
حافظه کش اغلب داده هایی را که به تازگی مورد دسترسی RAM بودهاند ار به حافظه استاتیک کپی میکند و سعی میکن حدس بزند چه داده هایی را CPU بعدا درخواست میکن و آنها را در حافظه استاتیک بارگذاری می نماید قبل از اینکه CPU در عمل به آنها نیاز داشته باشد. هدف از ایجاد دسترسی CPU به حافظه کش در عوض دسترسی مستقیم CPU به RAM است، چونکه میتواند داده را فورا یا تقریبا فورااز حافظه کش بازیابی کند، در صورتیکه، هنگامی که داده های مورد دسترسی در RAM قرار داشته باشند باید منتظر بماند. بیشتر CPU به جای RAM به حافظه کش دسترسی دارد، چونکه سیستم سریعتر خواهد بود. ما بطور صحیح فقط در یک دقیقه توضیح دادیم که حافظه کش چگونه کار میکند.
ضمنا، در اینجا ما داریم از واژه های "داده " و "دستورالعمل" قابل تعویض را استفاده میکنیم، زیرا هرچیزی که درون هر آدرس حافظه ذخیره میشود هیچ تغیییری در حافظه ایجاد نمیکند.
تاریخچه حافظه کش در کامپوترهای شخصی
این بخش فقط برای آنهایی است که به وجه گذشته حافظه کش علاقه دارندریال اگر شما به این بخش علاقه ندارد میتوانید به بخش بعدی بروید.
حافظه کش اولین بار در کامپیوترهای 386DX استفاده شد. ولو اینکه CPU حافظه کشی درون خودش نداشت، آنرا بصورت مداراتی پشتیبانی میکرد، بهعبارت دیگر چیپ ست یک کنترلر حافظه کش داشت. پس در آن زمان حافظه کش خارج از CPU قرار داشت. بنابراین انتخابی بود و یا به نحوی دیگر میتوان گفت که سازنده مادربورد میتوانست آنرا اضافه کند یا نه. اگر شما یک مادربورد بدون حافظه کش داشتید کامپوترتان از کامپوتر دارای این مدار خیلی کندتر می بود.
مقدار حافظه کش قابل دسترس متفاوت بود و بعلاوه به مدل مادربورد وابسته بود و نوع قیمتها، برای زمانیکه 64 کیلوبایتی و 128 کیلو بایتی بودند. در این هنگام کنترلر حافظه کش از یک معماری، معروف به “write-through” برای عملیات نوشتن استفاده میکرد- به عبارت دیگر هنگامیکه CPU میخواست داده ها را حافظه ذخیره کند- کنترلر حافظه فورا حافظه RAM را آپدیت میکرد.
با پردازنده های 486DX اینتل یک مقدار کوچک (8KB) از حافظه کش را درون CPU اضافه کرد. این حافظه کش داخلی L1 (Level 1) یا توکار نامیده شد. در صورتیکه حافظه کش خارجی L2 (Level 2) یا خارجی نامیده شد.مقدار و موجودیت کش خارجی به مدل مادربورد وابسته بود. انواع مقادیری که در آن زمان موجود بود، 128 کیلو بایتی و 256 کیلو بایتی. بعد از مدل 486 معماری کش “write back” اضافه شد، که حتی تا امروزه نیز استفاده میشود، به طوریکه برای عملیات های نوشتن، حافظه RAM فورا آپدیت نمیشود، CPU داده ها را در حافظه کش ذخیره میکند و کنترلر حافظه فقط هنگامیکه حافظه RAM را آپدیت میکند که یک کمبود کش اتفاق بیافتد.
پس زا آن Intel در اولین پردازنده های پنتیوم، دو حافظه کش توکار مجزا ایجاد نمود، یکی برای دستورالعمل و یکی برای داده (در آن زمان هر کدام 8 کیلو بایت بودند). این معماری هنوز تا امروزه استفاده میشود و این که چرا شما بعضی اوقات می بینید که حافظه کش L1 به صورت 64KB+64KB نمایش داده میشود، چونکه یک کش دستورالعمل L1 64 کیلوبایتی و یک کش داده L1 64 کیلو بایتی وجود دارد. البت ما بعدا توضیح میدهیم که چرا مابین این دو تفاوت وجود دارد. در آن هنگام حافظه کش L2 در مادربورد جای داشت، پس بنابراین مقدار و موجودیتش به مدل مادربورد وابسته بود، البته داشتن ک سستم بدون حافظه کش دیوانگی بود. انواع موجود در آن زمان 256KB و 512KB بودند.
در پردازنده های AMD نسل K5، K6 و K6-2 از همین معماری استفاده شده اس، بعلاوه K6-III دارای یک حافظه کش سوم (L3, Level 3) میباشد.
مشکل حافظه کش L2 است که با یک نرخ کلاک پایین تر مورد دسترسی قرار میگیرد، چونکه در 486DX نرخ کلاک داخلی CPU از نرخ کلاک خارجی متفاوت است. بطوریکه برای مثال یک Pentium-200 با سرعت 200MHz کار میکندو به حافظه کش خود با سرعت 66MHz دسترسی دارد.
سپس Intel با معماری P6 حافظه کش را از مادربورد به داخل CPU انتقال داد، که اجازه میداد CPU به آن با نرخ کلاک داخلی خود دسترسی پیدا کند، به جز Pentium II که حافظه کش درون CPU قرارنداشت ولی در همان مدار چاپی که CPU بود لحیم شده بود (این مدار چاپی درون یک کارتریج قرار داشت) تا در نصف کلاک داخلی CPU کار کند، در Celeron-266 و Celeron-300 هیچ کدام حافظه کش L2 نداشتند (بنابراین آنها بد عملکردترین CPU ها در تاریخ کامپیوترهای شخصی هستند).
این معماری حتی تا امروزه مورد استفاده است: هردوی حافظه های کش L1 و L2 درون CPU قرار دارندو با نرخ کلاک داخلی CPU کار میکنند، بنابراین مقدار حافظه کشی که شما میتوانید داشته باشید به مدل CPU ای که دارید وابسته است.هیچ راهی برای افزایش مقدار حافظه کش بدون تعویض CPU وجود ندارد





نظرات() 


musculation complement alimentaire
چهارشنبه 24 مرداد 1397 01:43 ق.ظ
Amazing this is a invaluable web page.
gagner masse musculaire
سه شنبه 23 مرداد 1397 05:27 ق.ظ
You have got among the finest web-sites.
buying real viagra online
سه شنبه 23 مرداد 1397 03:14 ق.ظ

Really tons of excellent information!
buy canadian viagra online buy original viagra online viagra buy viagra viagra to buy pharmacy prices for viagra buy viagra online canada no prescription viagra professional viagra pharmacy viagra cheap viagra ordering viagra online where to buy viagra cheap
beste afslankpil
دوشنبه 22 مرداد 1397 02:38 ب.ظ
The data is amazingly significant.
aumento massa muscolare
دوشنبه 22 مرداد 1397 09:41 ق.ظ
Quite beneficial....looking forward to coming back again.
suplementos ganar masa muscular
دوشنبه 22 مرداد 1397 09:33 ق.ظ
Thank you for sharing your neat websites.
cialisvv.com
یکشنبه 21 مرداد 1397 11:59 ب.ظ

Nicely put, Many thanks.
cialis australia org can i take cialis and ecstasy tesco price cialis tadalafilo how does cialis work cialis prezzo di mercato link for you cialis price generic cialis review uk cialis en mexico precio order a sample of cialis
http://wiadomosci.bielsko.info
شنبه 20 مرداد 1397 09:03 ق.ظ
Hi everyone, it's my first visit at this web site, and paragraph is really fruitful
in favor of me, keep up posting these content.
http://nizanskie.info
شنبه 20 مرداد 1397 04:41 ق.ظ
An intriguing discussion is worth comment. I do think that you need to publish more on this topic, it might not be a taboo subject but typically people don't discuss these issues.
To the next! Kind regards!!
http://wiadomosci.pless.pl
شنبه 20 مرداد 1397 01:36 ق.ظ
I am really enjoying the theme/design of your weblog.
Do you ever run into any web browser compatibility problems?
A small number of my blog audience have complained about my site
not working correctly in Explorer but looks great in Safari.
Do you have any advice to help fix this issue?
http://wiadomosci.pless.pl
شنبه 20 مرداد 1397 12:25 ق.ظ
If some one wants to be updated with newest technologies
therefore he must be visit this web page and be up to date daily.
http://wiadomosci.pless.pl
شنبه 20 مرداد 1397 12:24 ق.ظ
Pretty portion of content. I simply stumbled upon your website and in accession capital to claim that I get in fact loved account your weblog posts.

Any way I'll be subscribing for your augment or even I
success you get admission to constantly rapidly.
http://www.dzienniknowy.pl
جمعه 19 مرداد 1397 11:57 ب.ظ
Hi, I read your blog daily. Your story-telling style is witty, keep doing what
you're doing!
https://gostyn24.pl
جمعه 19 مرداد 1397 11:07 ب.ظ
Pretty! This was an extremely wonderful article.
Thanks for supplying these details.
http://www.radiozamosc.pl
جمعه 19 مرداد 1397 08:33 ق.ظ
Hi, I log on to your blog like every week. Your writing style is
witty, keep doing what you're doing!
http://tarnowska.pl
جمعه 19 مرداد 1397 08:03 ق.ظ
I used to be able to find good information from your blog articles.
http://wiadomosci.czecho.pl
جمعه 19 مرداد 1397 08:02 ق.ظ
What's up, everything is going sound here and ofcourse every one is sharing data,
that's genuinely excellent, keep up writing.
3700 zł brutto
پنجشنبه 18 مرداد 1397 04:11 ق.ظ
Appreciation to my father who shared with me concerning this blog, this weblog is actually remarkable.
VigRX
پنجشنبه 11 مرداد 1397 01:46 ب.ظ
If some one desires to be updated with hottest technologies then he must be go to see
this web page and be up to date everyday.
http://erectiepillen-bestellen.eu/vigrxplus.html
پنجشنبه 4 مرداد 1397 09:56 ق.ظ
whoah this blog is excellent i really like reading
your articles. Stay up the great work! You understand, lots of people are searching round for this info,
you could aid them greatly.
ms3388.com
یکشنبه 24 تیر 1397 03:05 ب.ظ
The process begins in the uncomplicated activity
of the account option. "Because you happen to be here scanning this flash games report now at this particular point in time; what you have is "The first
movers advantage" for yourself to take a hold of now. Technology is driving dynamic advertising into new areas which brings by it some potential challenges, well not all companies are able to pay thousands in electronic advertising, well both the options highlighted provides the same final results with low investment of your time and money, so now any business from mechanics to dentists can have these of their guest waiting rooms.
casino online usa
شنبه 16 تیر 1397 11:40 ق.ظ
casinos online
casino online free
best us casinos online
casino games list
casino games
چهارشنبه 13 تیر 1397 10:52 ب.ظ
casino online subtitrat
new usa online casinos
casino games real money
casino games
casino games roulette
چهارشنبه 13 تیر 1397 09:03 ب.ظ
casino games
casino online for fun
vegas casino games
best online casino games free
anepe καθαριστικα
سه شنبه 12 تیر 1397 10:27 ب.ظ
Hey there! I'm at work surfing around your blog from my new iphone 3gs!
Just wanted to say I love reading your blog and look forward to all
your posts! Keep up the excellent work!
pogo casino slots
یکشنبه 10 تیر 1397 05:16 ب.ظ
casino online usa
online casino
casino online application
casino online gambling
casino online
جمعه 8 تیر 1397 05:43 ب.ظ
gsn casino on facebook
world class casino slots masque
free games for casino slots
big fish casino
w88club
جمعه 8 تیر 1397 04:38 ب.ظ
The great thing about it DVD is that you could perform dance
exercises anytime, with no partner. "Because you are here reading this flash games report now at this particular moment in time; everything you have is "The first
movers advantage" for yourself to look at a your hands on now. The plastic's name is frequently abbreviated to CR-39, standing for Columbia Resin, and it is fewer than half the weight of glass, which supplanted quartz inside early twentieth century.
youtube w88
جمعه 8 تیر 1397 06:32 ق.ظ
Free PC choices to Recycle and Phatmatik Pro:Loopdrive3 VSTABS.
Cherry blossom tattoos represent different things in numerous cultures.
Now you've taken that all-important starting point and they are reading this article
report about flash games and social media, you happen to be inside
the unique and privideged position of being amongst a gaggle of pioneering entreprenuers who know already about it and are taking affirmative action.
new usa online casinos
شنبه 2 تیر 1397 12:26 ب.ظ
play casinos
online casino
online casino
best us casinos online
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ:



آرشیو:


طبقه بندی:


آخرین پستها:


نویسندگان:


نظرسنجی:


آمار وبلاگ:







The Theme Being Used Is MihanBlog Created By ThemeBox