Memory System & Cache

الفصل السابع: هرمية الذاكرة وإدارة الكاش

الهدف: فهم أنواع RAM، هرمية الذاكرة (Hierarchy)، وحسابات الكاش (Direct Mapping & EAT).
1

Types of Memory (RAM)

Dynamic RAM (DRAM)

  • تتكون من مكثفات (Capacitors) تسرب الشحنة بمرور الوقت.
  • تحتاج إلى Refresh كل بضع ملي ثانية.
  • رخيصة (Cheap) وعالية الكثافة.
  • الاستخدام: Main Memory (الذاكرة الرئيسية).

Static RAM (SRAM)

  • تتكون من دوائر Flip-Flops (رقمية بالكامل).
  • لا تحتاج إلى Refresh (تحتفظ بالبيانات طالما هناك طاقة).
  • سريعة جداً ولكنها باهظة الثمن.
  • الاستخدام: Cache Memory.
2

Memory Hierarchy & Locality

Registers
L1 Cache
L2 Cache
Main Memory (RAM)
Secondary Storage (Disk)

كلما صعدنا للأعلى: زادت السرعة، وزادت التكلفة، وقل الحجم.

Definitions

  • Hit: البيانات المطلوبة موجودة في المستوى الحالي.
  • Miss: البيانات غير موجودة، يجب البحث في المستوى الأسفل.
  • Miss Penalty: الوقت الضائع لجلب البيانات من المستوى الأدنى (Replace + Deliver).

Principle of Locality (مبدأ المحلية)

لماذا يعمل الكاش بكفاءة؟

  • Temporal Locality (زمانية): البيانات التي استخدمتها الآن، غالباً سأحتاجها مرة أخرى قريباً (مثل Loops).
  • Spatial Locality (مكانية): البيانات المجاورة لما أستخدمه الآن، غالباً سأحتاجها قريباً (مثل Arrays).
3

Cache Mapping Schemes

1. Direct Mapped Cache

القاعدة: كل بلوك في الذاكرة له مكان واحد فقط محدد في الكاش يمكن أن يذهب إليه.
Cache Block = (Memory Block Address) MOD (Number of Cache Blocks)

تقسيم العنوان (Address Fields)

Tag
Block
Offset
  • Offset: يحدد الكلمة داخل البلوك.
  • Block: يحدد رقم البلوك في الكاش.
  • Tag: للتأكد هل البلوك الموجود هو المطلوب فعلاً؟

2. Fully Associative

البلوك يمكن وضعه في أي مكان في الكاش. (مرن جداً لكن البحث فيه مكلف).

3. Set Associative

حل وسط. الكاش مقسم لمجموعات (Sets). البلوك يذهب لمجموعة محددة، ولكن في أي مكان داخل تلك المجموعة.

4

Replacement & Performance

Replacement Algorithms

عندما يمتلئ الكاش، ماذا نحذف؟ (فقط في Associative).

  • LRU (Least Recently Used): احذف الأقدم استخداماً (الأكثر كفاءة، الأصعب تنفيذاً).
  • FIFO (First In First Out): احذف الأقدم دخولاً.
  • Random: احذف عشوائياً.

Effective Access Time (EAT)

EAT = H * AccessC + (1-H) * AccessMM
  • H: Hit Rate (نسبة النجاح).
  • (1-H): Miss Rate (نسبة الفشل).
  • AccessC: زمن الوصول للكاش.
  • AccessMM: زمن الوصول للذاكرة الرئيسية (يشمل عقوبة الـ Miss Penalty).
EXAM VAULT (خزنة الاختبار)
CALCULATION / مسألة هامة

حساب EAT

Access Cache = 10ns, Access RAM = 200ns, Hit Rate = 99%. احسب EAT.

EAT = (0.99 * 10) + (0.01 * 200)
EAT = 9.9 + 2
EAT = 11.9 ns

لاحظ كيف اقترب الوقت الكلي من سرعة الكاش!

TRAP / فخ

Direct Mapping

إذا كان لدينا 4 بلوكات كاش (0, 1, 2, 3).
أين يذهب البلوك رقم 7 من الذاكرة؟
الخطأ: يذهب للبلوك 3 لأنه الأخير.
الصواب: نطبق القانون $7 \pmod 4 = 3$.
أين يذهب البلوك رقم 12؟
$12 \pmod 4 = 0$ (يذهب للبلوك 0).

→ السابق (Ch 6) الفصل التالي (Ch 8) ←