آزمایشگاه آزاد؛ بدون نیاز به ورود
حافظهٔ نهان چطور نرخ برخورد رو عوض میکنه؟
حافظهٔ نهان کوچکتر و سریعتره. اگر دادهها دوباره یا پشت سر هم درخواست بشن، چند بار جواب از همین حافظه پیدا میشه؟
آزمایش رو شروع کنبا اندازهٔ نهان ۸، دادهٔ ۳۰ و الگوی پیدرپی شروع کن؛ ظرفیت نهان رو به ۳۰ برسون و نرخ موفقیت رو مقایسه کن.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
ظرفیت نهان به اندازهٔ داده
حجم داده رو روی ۳۰ و الگو رو روی پیدرپی نگه دار؛ یک بار ظرفیت نهان رو ۸ و بعد ۳۰ بذار.
حدست چیه؟ وقتی همهٔ داده جا میشه، دور دوم دسترسی چه تغییری میکنه؟
توضیح نتیجه رو ببین
با ظرفیت ۸، نرخ موفقیت ۰٪ و زمان مدل ۱۰ واحده؛ هیچکدوم از بلوکهای دور دوم جا نموندن. با ظرفیت ۳۰، دور اول همه رو وارد میکنه و دور دوم hit میشه: نرخ ۵۰٪ و میانگین ۵٫۵ واحد.
جا شدن مجموعهٔ فعال
حجم داده رو روی ۳۰ و الگو رو روی «مجموعهٔ فعال» بذار؛ ظرفیت نهان رو اول ۸ و بعد ۱۰ کن.
حدست چیه؟ اگر ظرفیت دقیقاً اندازهٔ مجموعهای باشه که مدام استفاده میشه، نرخ موفقیت چقدر عوض میشه؟
توضیح نتیجه رو ببین
در این الگو، مدل ۱۰ بلوک رو تکرار میکنه. با ظرفیت ۸، نرخ موفقیت ۰٪ه؛ با ظرفیت ۱۰، ۱۰ درخواست اول miss میشن و ۵۰ درخواست بعدی hit، پس نرخ به ۸۳٫۳٪ میرسه.
الگوی دسترسی هم مهمه
حجم داده رو ۳۰ و ظرفیت نهان رو ۱۰ بذار؛ یک بار الگوی پیدرپی و بعد «مجموعهٔ فعال» رو انتخاب کن.
حدست چیه؟ کدوم الگو بلوکهای قبلی رو بیشتر دوباره درخواست میکنه؟
توضیح نتیجه رو ببین
برای پیدرپی، دو بار مرور ۳۰ بلوک با ظرفیت ۱۰ هیچ hitی نمیسازه و نرخ ۰٪ه. در مجموعهٔ فعال، ۱۰ بلوک بارها تکرار میشن و نرخ ۸۳٫۳٪ میشه؛ استفادهٔ دوباره از داده کمک میکنه داخل نهان بمونه.
پشت این حرکت چه خبره؟
نرخ موفقیت یا hit rate
hit_rate = hits/accesses
اگر بلوک درخواستشده از قبل در حافظهٔ نهان باشه، hit داریم؛ در غیر این صورت باید از حافظهٔ اصلی آورده بشه. نرخ موفقیت تعداد hitها تقسیم بر همهٔ درخواستهاست.
چه چیزی از نهان بیرون میره؟
در روش کمترین استفادهٔ اخیر، وقتی نهان پره، بلوکی بیرون میره که زمان بیشتری از آخرین دسترسی بهش گذشته. هر بار که دوباره سراغ بلوکی میری، همون بلوک تازهترین دسترسی رو پیدا میکنه.
استفادهٔ دوباره از داده
اگر مجموعهٔ کوچکی از بلوکها بارها درخواست بشه و همهشون در نهان جا بشن، بیشتر درخواستهای بعدی hit میشن. اما اگر دادههای زیادی رو فقط یکبار و پشت سر هم بخونی، نهان کوچک ممکنه قبل از مرور بعدی همهٔ بلوکها رو بیرون کرده باشه.
زمان این مدل واحد واقعی نداره
avg_time = 1*hit_rate + 10*(1-hit_rate)
شبیهساز برای hit یک واحد و برای miss ده واحد میذاره. زمان میانگین از ترکیب همین دو عدد در میآد؛ این عدد نانوثانیه یا اندازهگیری یک پردازنده نیست.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
چرا نهان با ظرفیت ۸ برای ۱۰ بلوک فعال هیچ hitی نداشت؟
چون مدل به ترتیب همون ۱۰ بلوک رو میچرخونه. تا بلوک اول دوباره درخواست بشه، نهان ۸تایی پر شده و اون بلوک ازش بیرون رفته؛ وقتی ظرفیت رو به ۱۰ میرسونی، بلوکها جا میشن و درخواستهای بعدی hit میشن.
سؤالهای رایج
hit در حافظهٔ نهان یعنی چی؟
یعنی بلوک موردنیاز از قبل در حافظهٔ نهان بوده و لازم نبوده دوباره از حافظهٔ اصلی بیاد.
چرا نهان بزرگتر hit بیشتری میگیره؟
اگر بلوکهایی که دوباره لازم میشن همگی جا بشن، احتمال بیرون رفتنشون کمتره. نتیجه به الگوی دسترسی هم بستگی داره.
مجموعهٔ فعال یعنی چی؟
در این مدل یعنی بارها به یک زیرمجموعهٔ کوچک از بلوکها سر میزنه؛ اگر نهان برای همون مجموعه جا داشته باشه، درخواستهای تکراری hit میشن.
زمان میانگین بر حسب نانوثانیه است؟
نه؛ hit را ۱ و miss را ۱۰ واحد فرضی میگیرد. برای زمان واقعی باید سختافزار مشخص و اندازهگیری داشته باشی.
الگوی تصادفی هر بار ترتیب تازهای میسازه؟
نه. این شبیهساز از یک دنبالهٔ ثابت و فرمولی استفاده میکنه؛ بهخصوص برای بعضی اندازههای داده فقط چند بلوک تکرار میشن.