موضوع مقاله: سلسله‌مراتب حافظه | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # سلسله‌مراتب حافظه | مقدمه: اصطلاح سلسله‌مراتب حافظه دربارهٔ طراحی معماری کامپیوتر استفاده می‌شود، وقتی در مورد عملکرد طراحی معماری کامپیوتر، پیش‌بینی الگوریتم و سازه‌های برنامه‌نویسی سطح پایین بحث می‌شود مانند ارجاع محلی. | ## بخش 1: سلسله‌مراتب حافظه | «سلسله مراتب حافظه» در ذخیره‌سازی کامپیوتر هر سطح را با زمان پاسخ متمایز می‌کند. از آنجا که زمان پاسخ، پیچیدگی و ظرفیت با هم مرتبط هستند، سطوح نیز ممکن است با توجه به فناوری کنترل متمایز شود. بسیاری از بده بستان‌ها در تمایز قایل شدن در کارایی در سطح بالا شامل ساختار سلسله مراتب حافظه می‌شود. به عنوان مثال اندازه و فناوری هر مؤلفه؛ بنابراین مؤلفه‌های مختلف می‌توانند به عنوان انئاع مختلف سلسله مراتب حافظه در نظر گرفته شوند(m1,m2,…) به گونه‌ای که هر کدام از این mها به عنوان یک تابعی به m بعدی در سلسله مراتب است. برای انتظار محدود در سطوح بالاتر، سطوح پایین‌تر باید از طریق پر کردن بافر و سپس علامت دهی برای فعال کردن انتقال باید پاسخگو باشند. چهار سطح ذخیره‌سازی بزرگ وجود دارد داخلی – ثبّات‌های پردازشگر و حافظه نهان اصلی - RAM سیستم و کارت کنترل ذخیره‌سازی انبوه آنلاین - ذخیره‌سازی ثانویه ذخیره‌سازی انبوه آفلاین- ذخیره‌سازی برای سومین بار این سلسله مراتب اصلی ساختار حافظه است. به عنوان مثال، یک الگوریتم صفحه بندی ممکن است به عنوان یک سطح برای حافظه مجازی در هنگام طراحی معماری کامپیوتر در نظر گرفته شود. یکی از راه‌های اصلی برای افزایش کارایی سیستم به حداقل رساندن پایین رفتن سلسله مراتب حافظه برای دستکاری اطلاعات. | ## بخش 2: سلسله‌مراتب حافظه | هیچ‌کدام از آن‌ها یکسان نیستند، اما مخصوص به یک مؤلفه خاص از سلسله مراتب حافظه است پیش‌بینی محل اطلاعات در سلسله مراتب حافظه دشوار است. محل در سلسله مراتب حافظه زمان مورد نیاز را برای رخ دادن واکشی اولیه، تعیین می‌کند. کاربرد مفهوم تعداد سطوح در سلسله مراتب حافظه و عملکرد در هر سطح در طول زمان افزایش یافته‌است. برای مثال سلسله مراتب حافظه پردازنده اینتل هاسول موبایل ۲۰۱۳ عبارت است از: ثبات‌های پردازشگر- سریعترین دسترسی ممکن (معمولاً۱چرخه CPU). دراندازه چند هزار بایت حافظه کش سطح 0(L0)کش‌های ریزعملیات - در اندازه ۶کیلوبایت سطح1L1 کش‌های دستورالعمل - در اندازه ۱۲۸کیلوبایت سطح 1L1 کش‌های داده - در اندازه ۱۲۸کیلوبایت. بهترین سرعت دسترسی حدود ۷۰۰ گیگابایت بر ثانیه است سطح 2(L2) دستورالعمل و داده - در اندازه ۱مگابایت. بهترین سرعت دسترسی حدود ۲۰۰ گیگابایت برثانیه است سطح 3(L3) کش به اشترک گذاشته شده - در اندازه ۶ مگابایت. بهترین سرعت دسترسی حدود ۱۰۰گیگابایت برثانیه است سطح 4(L4) کش به اشترک گذاشته شده - در اندازه ۱۲۸مگابایت. | ## بخش 3: سلسله‌مراتب حافظه | بهترین سرعت دسترسی حدود ۴۰ گیگابایت برثانیه است حافظه اصلی – دراندازه چندین گیگابایت. از سال ۲۰۱۳، بهترین سرعت دسترسی از یک درایو جامد در حدود ۶۰۰مگابایت برثانیه است. اکثر پردازنده‌های مدرن چنان سریع هستند که برای اکثر حجم سنگین کار برنامه، تنگنا محل مرجع و کارایی ذخیره‌سازی و انتقال حافظه بین سلسله مراتب مختلف حافظه. در نتیجه CPUبیشتر وقت خود را تلف می‌کند و منتظر کامل شدن ورودی و خروجی حافظه می‌ماند. شرایط برای داده‌های که در حال از دست رفتن هستند از یک سطح بالاتر به ترتیب عبارتند از: ریختن ثبات (با توجه به فشار ثبات: ثبات برای کش)، فقدان حافظه پنهان (کش به حافظه اصلی) و خطای صفحه (حافظه اصلی به دیسک) زبان‌های برنامه‌نویسی مدرن عمدتاً دو سطح حافظه را فرماندهی می‌کنند، حافظه اصلی و ذخیره‌سازی دیسک، از طریق زبان‌های اسمبلی و اسمبلرهای درون خط در زبان‌هایی مثل C می‌توان به ثبات‌ها به‌طور مستقیم دسترسی یافت. استفاده بهینه از سلسله مراتب حافظه نیاز به همکاری برنامه، سخت‌افزار و کامپایلرها دارد (و همچنین حمایت اساسی از سیستم عامل): برنامه نویسان مسئول حرکت داده‌ها بین دیسک و حافظه از طریق فایل I/O هستند. | ## جمع‌بندی | سخت‌افزار مسئول حرکت داده‌ها بین حافظه و کش است کامپایلر بهینه‌سازی مسئول تولید کد می‌شود که زمانی که اجرا شود، سبب استفاده سخت‌افزار از کش و ثبت به‌طور کارآمد می‌شود.