الدرس 6: الذاكرة والتسلسل الهرمي للذاكرة
في الدرس السابق كانت كل الدارات بلا ذاكرة — المخرج يُحدَّد فقط من المدخلات الحالية. الآن نعبر حدًا مهمًا: المنطق التتابعي — دارات تتذكر. مخرجها لا يعتمد على المدخلات فحسب بل أيضًا على حالة مخزَّنة بداخلها من الماضي. سنبدأ بأصغر وحدة تخزين — المزلاج (Latch) والقلّاب (Flip-Flop) اللذان يحملان بتًا واح
حتى الآن رأينا دارات تنسى فورًا. الآن سنبني دارات تتذكر: قلّاب يحمل بتًا واحدًا، وسجلّات سريعة في الـ CPU، وذاكرة RAM كبيرة. وسنرى لماذا نُبقي البيانات الأكثر استخدامًا قريبة وسريعة في ذاكرة مخبئية (Cache).
- المنطق التتابعي
- دارة يعتمد مخرجها على كل من المدخلات الحالية وعلى حالة مخزَّنة بداخلها من الماضي — أي دارة ذات ذاكرة. عكس المنطق التجميعي.
- المزلاج
- دارة تتابعية أساسية قادرة على حفظ بت واحد: يمكنك 'تثبيت' القيمة 0 أو 1 فيها وتبقى إلى أن تُغيَّر.
- القلّاب
- وحدة تخزين لبت واحد تتحدّث تزامنًا مع الساعة. القلّاب من نوع D 'يلتقط' قيمة المدخل عند نبضة الساعة ويحفظها حتى النبضة التالية.
- السجلّ
- مجموعة صغيرة من القلّابات (مثلًا 8 أو 32 أو 64) تحفظ قيمة كاملة داخل الـ CPU. إنه أسرع ذاكرة في الحاسوب.
- ذاكرة الوصول العشوائي (RAM)
- مصفوفة كبيرة من خلايا الذاكرة، يمكن الوصول إلى كل منها مباشرةً عبر عنوان — لقراءة أو كتابة البايت في تلك الخلية. متطايرة: تُمحى عند انقطاع الطاقة.
- العنوان
- رقم يحدّد خلية معيّنة في الذاكرة. تُعطي عنوانًا فتحصل على (أو تكتب) القيمة الموجودة في تلك الخلية، كرقم شقة في مبنى.
- متطايرة
- خاصية للذاكرة تفقد محتواها لحظة انقطاع الطاقة. الـ RAM متطايرة؛ أمّا القرص والـ SSD فغير متطايرَين.
- الذاكرة المخبئية
- ذاكرة صغيرة جدًا وسريعة جدًا قريبة من الـ CPU (L1/L2/L3) تحتفظ بنسخة من البيانات كثيرة الاستخدام لتجنّب رحلة بطيئة إلى الـ RAM.
- التسلسل الهرمي للذاكرة
- سلّم الذاكرة وفق السرعة والحجم والتكلفة: السجلّات ← الذاكرة المخبئية (L1/L2/L3) ← RAM ← SSD/قرص. كلما كان المستوى أسرع كان أصغر وأغلى.
- محلّية المرجع
- ميل البرامج إلى الوصول مجددًا إلى البيانات التي استخدمتها للتوّ، أو إلى بيانات مجاورة. بفضلها 'تخمّن' ذاكرة مخبئية صغيرة جيدًا ما سيُحتاج إليه قريبًا.