حافظه نهان CPU چطور کار می‌کند و L1, L2,L3 چه هستند؟

حافظه نهان CPU چطور کار می‌کند و L1, L2,L3 چه هستند؟

در چند سال گذشته پردازنده‌های کامپیوتر پیشرفت چشمگیری داشته‌اند. اندازه‌ی ترانزیستورها هرسال کوچک‎تر شده و به حدی پیشرفت کرده‌اند که به زودی به پایان قانون مور خواهیم رسید. 
اما درمورد پردازنده‌ها تنها ترازیستور و فرکانس مهم نیست بلکه حافظه نهان نیز نقش تعیین کننده‌ای بازی می‎کند. 
شما به احتمال زیاد وقتی که درمورد پردازنده صحبت می‌شود گوشتان به حافظه نهان ( cache memory) خورده است. به هرحال ما به این ارقام خیلی اهمیت نمی‌دهیم و هنگام خرید آن را بررسی نمی‌کنیم. 
اما چرا حافظه نهان پردازنده مهم است و چگونه کار می‌کند؟ 
به طور خلاصه حافظه نهان (cache) یک نوع خیلی سریع از حافظه است. همانطور که می‌دانید یک کامپیوتر چندین نوع حافظه دارد.اول فضای داخلی اولیه، مثل هارد دیسک یا SSD است که انواع داده‌ها از جمله سیستم عامل و همه‌ی برنامه‌ها در آن قرار دارند. 
سپس حافظه دسترسی تصادفی یا رم است که بسیار سریع‌تر از حافظه اولیه است. 
در نهایت پردازنده دارای واحدهای حافظه بسیار سریع‌تری درون خود است که به کش یا حافظه نهان معروف است. 
حافظه در کامپیوتر یک سلسله مراتب دارد که بر اساس سرعت تعیین می‌شود و حافظه نهان در بالای آن قرار دارد. این حافظه همچنین به قسمت پردازش مرکزی نزدیک‌تر و بخشی از خود پردازنده است. 
حافظه نهان یک حافظه دسترسی تصادفی ایستا (SRAM) در مقایسه با رم سیستم است که یک حافظه تصادفی پویا (DRAM) است. رم ایستا بدون نیاز به رفرش سازی مداوم داده را در خود حفظ می‌کند اما رم پویا اینطور نیست. در نتیجه رم ایستا برای حافظه نهان مناسب است. 

 

حافظه نهان پردازنده چطور کار می‌کند؟ 


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

 

سطح حافظه نهان: L1, L2 و L3

cache


حافظه نهان پردازنده به سه سطح L1, L2 و L3 تقسیم می‌شود. این سلسله مراتب بر اساس سرعت و اندازه حافظه نهان تعیین می‌شود. 
L1 یا سطح یک حافظه نهان سریع‌ترین حافظه است که در یک سیستم کامپیوتر موجود است. حافظه نهان L1 حاوی داده‌ای است که پردازنده هنگام انجام یک عملیات خاص به آن بیشتر از همه نیاز دارد. 
اندازه حافظه نهان L1 معمولاً 256 کیلوبایت است. البته این میزان در پردازنده‌های خیلی قوی به یک مگابایت نیز می‎رسد. بعضی از تراشه‌های سرور ( مانند پردازنده مدل بالای زئون اینتل) چیزی بین 1 تا 2 مگابایت حافظه نهان سطح یک دارند. 
حافظه نهان L1 به دو قسمت جدا می‌شود: حافظه نهان دستورالعملی و حافظه نهان داده. حافظه نهان دستورالعملی درمورد عملیاتی است که پردازنده باید اجرا کند اما حافظه نهان داده دراصل داده‌ای را در خود نگاه می‌دارد که عملیات روی آن اجرا می‌شود. 
حافظه نهان L2 یا سطح دو از L1 کم سرعت‌تر اما بزرگ‌تر است. اندازه‌ی آن معمولاً بین 256 کیلوبایت تا 8 مگابایت است. البته در پردازنده‌های قوی‌تر این رقم بیشتر است. حافظه نهان L2 داده‌ای را در خود نگاه می‌دارد که در مرحله بعد پردازنده به آن دسترسی می‌یابد. در بیشتر پردازنده‌های مدرن، حافظه نهان L1 و L2 در هسته‎‌های پردازنده قرار دارد. هر هسته حافظه نهان جدا دارد.  
حافظه نهان L3 یا سطح سه بزرگ‌ترین حافظه و البته کم سرعت‌ترین است. اندازه‌ی آن چیزی بین 4 تا 50 مگابایت است. پردازنده‌های مدرن فضای جداگانه برای حافظه نهان L3 دارند چرا که فضای خیلی زیادی را پر می‌کند. 

 

مزایا، معایب و تأخیر در حافظه نهان 


داده از رم به حافظه نهان L3، سپس L2 و در نهایت L1 می‌رود. وقتی که پردازنده به دنبال داده برای عملیات می‌گردد اول آن را در حافظه نهان L1 جست‌وجو می‌کند اگر آن را یافت به آن « cache hit» می‌گویند. اگر پردازنده آن را نیافت به L2 و سپس L3 می‌رود. 
اگر داده را نیافت سعی می‌کند آن را از حافظه اصلی جست‌وجو کند. به این حالت « cache miss» می‌گویند. 
همانطور که گفتیم حافظه نهان طراحی شده تا رفت و آمد اطلاعات از حافظه اصلی به پردازنده را تسریع کند. به مدت زمان لازم برای دسترسی از حافظه تأخیر می‌گویند. L1 کمترین میزان تأخیر را دارد، سریع‌ترین است و از همه به هسته نزدیک‌تر است و اما L3 کمترین سرعت و بیشترین میزان تآخیر را دارد. وقتی که یک cache miss ایجاد می‌شود تآخیر به وجود می‌آید، چرا که پردازنده باید داده را از حافظه اصلی دریافت کند. 
هرچه کامپیوترها سریع‎تر و بهتر می‎شوند تأخیرها کاهش می‌یابند. در رم‌های DDR4 و SSD با مدت زمان مورد نیاز کوتاه برای دسترسی به حافظه اولیه تأخیر بسیار کاهش یافته است. 
قبلاً طراحی حافظه نهان در سطوح L2 و L3 خارج از پردازنده قرار داشتند که باعث ایجاد تأخیر می‌شد. 
اما پیشرفت در ساخت ترانزیستورهای پردازنده باعث شده تا هم اکنون بتوان میلیاردها ترانزیستور را در یک فضای کوچک جا داد. در نتیجه فضای بیشتری برای حافظه نهان باقی می‌ماند که باعث می‌شود حافظه نهان تا حد ممکن به هسته نزدیک و در نتیجه مدت زمان تأخیر کاهش یابد. 

 

آینده حافظه نهان 


طراحی حافظه نهان درحال پیشرفت است به خصوص که حافظه ارزان‌تر، سریع‌تر و فشرده‌تر می‌شود. شرکت‌های اینتل و AMD نقش بزرگی در توسعه و طراحی حافظه نهان پردازنده دارند. شرکت اینتل درحال حاضر در حال توسعه حافظه نهان L4 است. بازار پردازنده بیش از هر زمان دیگری در حال پیشرفت است. 
همچنین تلاش بر این است که تنگنا‌ها در کامپیوترهای مدرن کمتر شود. یکی از کارهایی که در این زمینه می‌شود تلاش برای کاهش تأخیر حافظه است. شرکت‎های مرتبط درحال تلاش برای رفع این مشکلات هستند و آینده بسیار امیدوار کننده است. 

 

مقالات مرتبط: 

کدام نوع ارتقا عملکرد کامپیوتر را به بیشترین حد خود می‌رساند؟

چه عواملی سرعت اینترنت ما را تعیین می‌کند؟

ما را در شبکه‌های اجتماعی مختلف تلگرام، روبیکا، توییتر، اینستاگرام، سروش همراهی کنید.

 

 

منبع خبر: makeuseof

مارال رضایی

مارال رضایی

مارال هشت سال است که یه عنوان مترجم مشغول به فعالیت است.او دارای مدرک کارشناسی ارشد زبان و ادبیات فرانسه از دانشگاه است و به سه زبان انگلیسی، فرانسه و اسپانیایی صحبت می کند. مارال به ادبیات، سینما و موسیقی راک علاقه مند است و به دنبال یک تجربه متفاوت به وادی تکنولوژی قدم گذاشته.


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر