شنبه 30 شهریور 1398 |  عضویت / ورود

فلسفه وجود RAM و Cache در کامپیوتر و رابطه سرعت آن‌ها و موسیقی


آیا تا به حال از خود پرسیده‌اید که چه لزومی دارد روی یک کامپیوتر RAM وجود داشته باشد؟ همانطور که می‌دانید، RAM نیز همچون هارد دیسک یک حافظه است. پس با وجود هارد دیسک‌های حجیم و پرسرعت امروزی، چه لزومی به وجود RAM است؟ می‌دانید که Cache نیز یک حافظه کوچک است که در کنار  CPU قرار دارد، اما باز هم سؤال این است که با وجود حافظه‌ای مثل هارد دیسک، چه نیازی به رم و کش که حافظه موقتی هستند، است؟

بگذارید کمی درباره فلسفه وجود RAM و Cache با یک مثال، توضیح دهم:

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

همانطور که می‌دانید، هر صدایی یک موج تولید می‌کند. کسانی که در رشته کامپیوتر تحصیل می‌کنند، ممکن است استادشان در درس «محاسبات عددی» مطالبی در مورد کاربرد این درس در شناسایی و اندازه‌گیری این امواج بیان کند.

http://aftab.cc/uc/Hamid/852/DevilMusic.jpgجالب است که انسان و همه موجودات طبیعت، تمایل دارند که خود را با موجی که یک صوت تولید می‌کند، هماهنگ کنند. به همین دلیل است که شما می‌بینید وقتی شخصی قرآن می‌خواند، ناخودآگاه جلو و عقب می‌رود! یا برخی دعاها باعث می‌شوند انسان برای هماهنگی با آن‌ها به سمت چپ و راست مایل شود.
در تلویزیون می‌بینید که وقتی بخش‌هایی از پارتی‌های جوانان را نشان می‌دهد، این افراد با آن آهنگ تند خودشان را هماهنگ کرده‌اند و ناخودآگاه بالا و پایین می‌پرند یا سرشان را به شدت به سمت چپ و راست پرتاب می‌کنند.
مثال‌های از این دست بسیار است: مثلاً دیده‌اید که راننده ماشین‌هایی که آهنگ تند در آن‌ها پخش می‌شود، معمولاً ناخواسته تندتر و هیجانی‌تر از بقیه رانندگی می‌کنند.
این‌ها از تأثیرات امواجی است که صدا در طبیعت ایجاد می‌کند.

اینکه انسان خودش را با امواج صداها و آهنگ‌ها هماهنگ می‌کند، برای جلوگیری از تأثیرات منفی آن در حالت باقی ماندن به سکون است. یعنی اینکه بهتر است وقتی شما یک آهنگ را می‌شنوید بگذارید بدنتان با آن آهنگ هماهنگ شود. (از تأثیر آن بر روی آب و گیاه و حیوانات هم که زیاد شنیده‌اید) یک نکته جالب در فیلم «الفبای افغان» دیدم و آن اینکه ملاها در افغانستان از همان کودکی به بچه‌ها آموزش می‌دهند که وقتی قرآن می‌خوانند، خود را به جلو و عقب حرکت دهند. (دقیقاً نمی‌دانم که این منبع روایی دارد یا خیر، اما به هر حال هر کس دستور چنین کاری داده، از اصل موضوع خبر داشته است)
اگر شما نتوانید خودتان را با آهنگی که می‌شنوید هماهنگ کنید، به مرور نشانه‌های عصبی و عصبانی شدن را در خود خواهید دید.
بیایید تصور کنیم یک نفر در حال گوش دادن به یک موسیقی تند است. چقدر خطرناک خواهد بود اگر تصور کنیم که این شخص در یک ماشین در حال گوش دادن به این موسیقی است!! امواج موسیقی او را به حرکت تند، جنب و جوش و شور و هیجان دعوت می‌کند، اما او بر روی یک صندلی، در پشت یک کمربند ایمنی زندانی است. شاید تند راندن و جیغ کشیدن در ماشین کمی او را با امواج موسیقی هماهنگ کند، اما فاجعه‌انگیزترین حالت، زمانی خواهد بود که تصور کنیم این شخص در یک ماشین و در پشت ترافیکی مثل ترافیک‌های تهران در حال گوش دادن به این موسیقی است!! می‌خواهد جنب و جوش داشته باشد، زندانی است، هر چه می‌خواهد گاز بدهد، چراغ قرمز جلوش را گرفته است و خلاصه عدم هماهنگی با این امواج! اگر کمی به این افراد دقت کنید، شروع می‌کنند انگشتان خود را روی دنده ماشین حرکت دادن و ضربه زدن روی دسته دنده. اگر دستشان روی فرمان باشد، تند تند روی فرمان ضربه می‌زنند. خیلی بیشتر از بقیه بوق می‌زنند! در حالی که ماشین خلاص است، گاز می‌دهند و حرکاتی که همه و همه از تأثیرات امواجی است که آن موسیقی ایجاد کرده‌اند.
این افراد همان افرادی هستند که به مرور دچار اختلالات عصبی می‌شوند و خیلی زود داغ می‌کنند و حاضرند رو در روی مادر، پدر،‌ خواهر و هر کس دیگری بایستند و بلند بلند داد بزنند! (مقاله مرتبط: آنچه از برخي موسيقيها نميدانستيد!)

با این مقدمه برویم سراغ بحث اصلی:

روند کار پردازش در کامپیوتر به این صورت است که باید میلیون‌ها و بهتر است بگوییم میلیاردها دستور در هر لحظه از داخل حافظه جانبی که محل قرار گرفتن برنامه‌ها و تصاویر و ... است، خوانده و توسط CPU محاسبه شود و نتایج به حافظه برگردد و یا به دستگاه‌های خروجی. همین حالا که شما در حال دیدن یک صحنه ثابت بر روی مانیتور هستید، در هر لحظه میلیون‌ها پردازش در حال انجام است تا شما یک صحنه ثابت ببینید. تمامی این اطلاعات طبیعتاً در حافظه جانبی مثل هارد دیسک هستند. چون RAM و Cache حافظه‌های موقتی‌اند و هر بار که کامپیوتر خاموش شود، تخلیه می‌شوند.

پس ما دائماً بین هارد دیسک و پردازشگر، چنین رفت و آمدی خواهیم داشت:

 

CPU - HD

سرعت محاسبه CPU سرسام آور است! آن هم CPUهای امروزی!  مثلاً یک سی.پی.یو معمولی در هر ثانیه می‌تواند 3 میلیارد دستور العمل را انجام دهد. سرعتی شگفت انگیز! اما یک سؤال اساسی مطرح است:

آیا هارد دیسک می‌تواند خود را با این سرعت هماهنگ کند؟ اگر خود را هماهنگ نکند، چه مشکلی پیش خواهد آمد؟
هارد دیسک از نظر سخت افزای طوری ساخته شده است که سرعت خواندن اطلاعات از آن نسبت به سرعت CPU بسیار بسیار ناچیز است (در درس «ذخیره و بازیابی» گفته می‌شود که «درنگ دورانی» و «درنگ جابه‌جایی هِد» باعث تأخیر شدیدی خواندن بیت‌ها می‌شود؛ مطلب مرتبط: «داخل هارد دیسک چه می‌گذرد؟ (Inside Hard Disk)»). حالا تصور کنید: CPU می‌خواهد گاز بدهد، اما هارد دیسک این اجازه را به او نخواهد داد! به مرور، CPU عصبی خواهد شد و داغ خواهد کرد و ...
باید فکری کرد! بهترین راه حل، هماهنگ کردن حافظه با CPU است. آیا می‌توان هارد دیسک را طوری تغییر داد تا سرعت خواندن اطلاعات از آن افزایش یابد؟ چرا که نه! اما ماده‌ای که برای این کار نیاز داریم، قیمت هارد دیسک را سرسام آور می‌کند! با یک حساب سر انگشتی که بعداً درباره‌اش توضیح خواهم داد، قیمت یک هارد دیسک 40 گیگابایتی، 600 هزار تومان خواهد شد!!!
خوب، پس بهترین راه این است که ما یک حافظه میانی تعریف کنیم به نام RAM، جنس رم را از این ماده گران‌قیمت انتخاب کنیم و نوع دسترسی به آن را Random یا تصادفی می‌کنیم (برای فهم تصادفی، چندین برگه را یک بار روی هم قرار دهید و سپس دنبال یک برگه خاص بگردید. باید برگه‌ها را یکی یکی ورق بزنید تا برسید به برگه مورد نظر. این می‌شود ترتیبی. اما اگر برگه‌ها را روی میز پخش کنید و حالا دنبال یک برگه خاص بگردید، خواهید دید که خیلی سریع آن را خواهید یافت. این می‌شود تصادفی) پس از اینکه RAM را سریع‌تر از هارد دیسک کردیم، حالا در روند پردازش کمی تغییر ایجاد کنیم:
در اصطلاح، یک (یا چند) بلاک از اطلاعات ضروری که همین حالا CPU به آن‌ها نیاز دارد را از هارد دیسک به RAM منتقل می‌کنیم و هر وقت CPU به این اطلاعات نیاز داشت، به جای مراجعه به هارد دیسک، از روی رم با سرعت مورد پسندش می‌خواند و اگر کار آن با این اطلاعات تمام شد، نتایج را روی RAM می‌نویسد و ما با زدن کلید Save در نرم‌افزارهای مختلف، اطلاعات را از روی RAM به روی هارد دیسک منتقل می‌کنیم تا دائمی شود و با رفتن برق،‌ از بین نرود.

فرض کنید همین حالا نرم‌افزار Word را باز می‌کنید و شروع به نوشتن می‌کنید. در حالت فعلی، نرم‌افزار Word تا جایی که نیاز باشد، به روی RAM منتقل می‌شود، چون بالاخره شما باید محیط آن را مدام توسط CPU پردازش کنید، دکمه‌ها را ببینید و ... تمام کلیدهایی که فشار می‌دهید، دستوراتش به CPU رفته و نتیجه‌اش (که چاپ یک کاراکتر است) روی RAM نوشته می‌شود، به محض اینکه کلید Save را می‌زنید، اطلاعات، از روی RAM به روی Hrad Disk منتقل می‌شوند.
حالا متوجه می‌شوید که چرا وقتی یک تایپیست در حال تایپ یک متن است و ناگهان برق می‌رود، می‌‌گوید: هر چه تایپ کرده بودم، پرید! چرا؟ چون اطلاعات را از روی RAM (که یک حافظه موقتی است) به هارد دیسک منتقل نکرده بود.

پس روندی که تا این لحظه داریم، به این صورت است:

 

CPU - RAM - HD

- حالا می‌فهمیم که چرا RAM بسیار گران‌تر از هارد دیسک است.
- می‌فهمیم که چرا حجم رم نسبت به هارد دیسک خیلی کمتر است و چرا نیازی به رم بسیار زیاد نیست. (مثلاً هارد دیسک من 250 برابر رم کامپیوتر من گنجایش دارد)
- می‌فهمیم که چرا وقتی چندین نرم‌افزار قوی را باز می‌کنیم، هشداری دریافت می‌کنیم مبنی بر اینکه رم شما پر شده است. یا اینکه چرا سرعت کامپیوتر در این لحظه پایین می‌آید.
- حالا می‌فهمیم که چرا وقتی می‌خواهند بگویند سرعت کامپیوتر اشخاص چقدر است، قدرت CPU و اندازه RAM را سؤال می‌کنند و تعداد دور در ثانیه (سرعت خواندن اطلاعات) مربوط به هارد دیسک را.

و اما، جالب است بدانید که سرعت RAM نیز CPU را عصبی می‌کند! چرا که باز هم نمی‌تواند خودش را با این سرعت هماهنگ کند. به خصوص اگر جنس رم با CPU هماهنگ و جور نباشد. چاره چیست؟
باز هم همان چاره قبلی: یعنی باز هم یک حافظه موقت، این بار با جنس بهتر و سرعتی بسیار بسیار بالاتر و حجم بسیار بسیار ناچیز در نظر می‌گیریم، آن هم دقیقاً چسبیده به CPU که خود سازنده CPU آن را انتخاب و قرار دهد (که هماهنگی بیشتر حاصل شود). این حافظه را Cache یا حافظه نهان می‌نامیم.
حالا تقریباً می‌توان گفت، همه چیز رو به راه است. یک یا چند بلاک از اطلاعات ضروری به RAM منتقل می‌شود و اطلاعات ناچیزی که CPU فی‌الحال به آن‌ها نیاز دارد، از RAM درخواست می‌شود و به Cache با آن سرعت شگفت انگیزش منتقل می‌شود و نتایج پردازش، روال عکس این را طی می‌کنند:

 

CPU - Cache - RAM - HD

حافظه کش، بسیار گرانقیمت است و بسیار کم‌حجم. به طور مثال، در کامپیوتر من، مقدار کش، یک دوهزارم مقدار حافظه RAM است! این روزها حجم هارد دیسک‌ها حول واحد ترابایت (TB) می‌چرخد، حجم رم‌ها حول واحد گیگابایت (GB) و حجم کش‌ها حول واحد مگابایت (MB) که حداقل هر واحد یک هزارم واحد بعدی است.

- حالا باید متوجه شده باشید که چرا مقدار Cache در CPU برای شما به عنوان مشتری خیلی خیلی مهم است. همینطور، مقدار رم، سرعت خواندن اطلاعات از هارد دیسک و در صدر این‌ها سرعت پردازش‌گر و چقدر هماهنگی بین این‌ها مهم است.

موفق باشید؛
حمید رضا نیرومند


[ارسال شده در مورخه : جمعه، 20 شهریور، 1388 توسط Hamid]
[ #سخت افزار]

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 5 با 15 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

مهدی رادی (امتیاز : 0)(لینک نظر)
توسط مهدی رادی در مورخه : جمعه، 20 شهریور، 1388
خیلی مفید بود و لذت بردم

خسته نباشی...


[ ارسال جوابیه ]


امید (امتیاز : 0)(لینک نظر)
توسط امید در مورخه : شنبه، 13 فروردین، 1390
ممنون خیلی خوب بود


[ ارسال جوابیه ]


فرشید (امتیاز : 0)(لینک نظر)
توسط فرشید در مورخه : سه شنبه، 3 آبان، 1390
سلام..اگهمیشه خواهشا این تحقیق رو به میلم بفرست در باره ی اینه در مورد disk cache و ram cache تحقیق کنید و آنها رو مقایسه کنید..ممنوونم..اینم ایمیلمه واسم بفرست farshid.rezai31@yahoo.com


[ ارسال جوابیه ]


[بدون موضوع]                توسط در مورخه : چهارشنبه، 7 تیر، 1391(لینک نظر)
با سلام

توضیحات شما در رابطه با موسیقی کاملا درست و به جا می باشد.اما ارتباط منطقی این دو را متوجه نشدم؟


[ ارسال جوابیه ]


[بدون موضوع]                توسط در مورخه : سه شنبه، 4 مهر، 1391(لینک نظر)
سلام



جالب نوشته شده بود

متشکرم


[ ارسال جوابیه ]


stu121                توسط stu121 در مورخه : سه شنبه، 1 اسفند، 1391(لینک نظر)
خیلی مفید بود....مرسی بابات اطلاعات مفیدتون


[ ارسال جوابیه ]


رضا غیاری (امتیاز : 0)(لینک نظر)
توسط رضا غیاری در مورخه : چهارشنبه، 6 شهریور، 1392
سلام دوست عزیز.عالی بود.


[ ارسال جوابیه ]


مصطفی                توسط مصطفی در مورخه : یکشنبه، 17 آذر، 1392(لینک نظر)
خداییش معرکه بود


[ ارسال جوابیه ]


محمد                توسط محمد در مورخه : شنبه، 27 دی، 1393(لینک نظر)
سلام

عالي بود

انصافا لذت بردم

متشكرم


[ ارسال جوابیه ]


[بدون موضوع]                توسط در مورخه : شنبه، 15 فروردین، 1394(لینک نظر)
خیلی خوب بود، کیف کردم

مرسی


[ ارسال جوابیه ]


جنید                توسط جنید در مورخه : دوشنبه، 31 اردیبهشت، 1397(لینک نظر)
ممنون از توضیح دقیق و شفاف تون .


[ ارسال جوابیه ]


عباس (امتیاز : 0)(لینک نظر)
توسط عباس در مورخه : پنجشنبه، 8 آذر، 1397
بازی نصب کردم اما داخل بازی سرعت خیلی زیاده انگار داری فیلمو با سرعت رد میکنی دلیلش چیه ؟ با تشکر


[ ارسال جوابیه ]


مجتبی م                توسط مجتبی م در مورخه : شنبه، 16 شهریور، 1398(لینک نظر)
خیلی ممنون
استاد چقدر خوبه که شما خواننده ها رو به قول خودتون که تو یکی از مطالبتون آوده بودین، گوسفند فرض میکنین!
(البته اونایی که اون مطلب رو نخوندن در جریان باشن که استاد جهت حفظ اعتماد به نفس در سخنرانی فرموده بودن که برای پیش گیری از استرس بقیه رو گوسفند فرض کنین)
حالا منظورم اینه که توی نوشتن هم خوبه اینجوری فکر کردن و اینکه مطلب رو طوری ساده و در عین حال کامل می نوسین که کسی که تخصصی هم تو یه زمینه نداره کامل متوجه موضوع میشه.

با سپاس فراوان


[ ارسال جوابیه ]