الذاكرة memory هي مجموعة الدارات التي تسمح بتخزين المعلومات واستحضارها. وقد يُطلق اسم الذاكرة على وحدات التخزين الخارجية مثل الشرائط المغنطيسية. وفي الاستعمال الشائع، تشير الذاكرة إلى دارات أنصاف النواقل semiconductor الموصولة إلى المعالج مباشرة. استُخدمت تقنيات متعددة لتحقيق الذاكرة. ففي عام 1949، كان كل بت معلومات يُخزّن في حلقة حديدية صغيرة، تسمى اللبّ core، تُمغنط في أحد اتجاهين متعاكسين (الشكل -1). وفي السبعينيات، كانت معظم الحواسيب المنتجة تعتمد هذه الذاكرة. تُنظّم الذاكرة اللبّية مصفوفياً، وينبغي لعنونة أي حلقة فيها تمرير تيار في سلكين يمثلان سطر موقع الحلقة وعموده. ويختلف قطر اللب من بضعة ميليمترات إلى أبعاد غير مرئية. تعاني هذه الذاكرة من بطء استجابتها، البالغة 1μs ميكروثانية وسطياً، ومن حجمها الكبير، ومن تخريب محتواها عند قراءته. وفي منتصف السبعينيات، بدأ استخدام الذاكرات المصنوعة من أنصاف النواقل التي تميزت بكلفتها المنخفضة وبصغر أبعادها وبموثوقيتها المرتفعة، وبسرعة النفاذ إلى معلوماتها. وقد سمحت تقانات التكامل بأجيالها المختلفة ببناء ذاكرات تخزن ملايين البتات. وتطرح زيادة سرعة المعالجات الصغرية تحدياً مستمراً أمام مصنّعي الذاكرة بغية رفع أدائها لمواكبة تلك المعالجات.
بنية الذاكرة
الشكل (2) البنية الداخلية للذاكرة
تشغل جلَّ مساحة الرقاقة صفيفةٌ من خلايا التخزين، يخزِّن كل منها بتاً واحدةً من المعلومات، تسمى بسطح الذاكرة memory plan. يُسند إلى كل موقع في الذاكرة عنوان فريد. يُفكّ عنوان الموقع المطلوب النفاذ إليه بوساطة مفكِّك ترميز decoder لانتقاء السطر المقابل للخلايا المنشودة.
تُنقل المعلومات من خلايا الذاكرة وإليها بواسطة خطوط معطيات، تتصل بالمسرى الخارجي عبر أصونة (دوارئ) الدخل/الخرج I/O buffers. تحتاج الذاكرة إلى خط تحكم لتحديد نوع العملية المنفَّذة فيها، وأمر انتقاء يسمح بتأهبها لإجراء العملية. تتولى وحدة التحكم الداخلية تحليل هاتين الإشارتين (الشكل -2).
مميزات أساسية
يختلف أداء ذاكرة عن أخرى بحسب الميزات الآتية:
ـ سعة الذاكرة: وهي كمية المعلومات الإثنانية الممكن تخزينها في الذاكرة.
ـ عرض الكلمة: يمثل عرض الكلمة عدد البتات الممكن كتابتها في الذاكرة دفعة واحدة.
ـ زمن النفاذ: وهو المدة اللازمة لإخراج المعطيات المطلوبة (في حالة القراءة)، أو إدخالها (في حالة الكتابة) بعد تحديد عنوانها. وكلما ازدادت سرعة الذاكرة، نقص زمن النفاذ إلى المعطيات.
ـ تردد العمل: تحتاج بعض أنواع الذاكرة إلى ميقاتية تضبط عملها. يقيس تردد تلك الميقاتية سرعة استجابة الذاكرة.
ـ معدل النقل transfer rate: وهو كمية المعلومات الإثنانية المنقولة في واحدة الزمن. ويُقدّر بالبت/ثانية. ويسمى أيضاً بعرض حزمة الذاكرة memory bandwidth.
ـ كشف الخطأ وتصحيحه: قد يحدث في الذاكرة أخطاء برمجية عشوائية بسبب الظروف المحيطة بها. ولضمان سلامة المعطيات، تُضمّن في الذاكرة إحدى الطريقتين الآتيتين: الندّية parity أو الرماز المصحِّح للأخطاء Error Correcting Code (ECC). تسمح طريقة الندّية parity باكتشاف الأخطاء الوحيدة في الكلمات دون تصحيحها، وتُنفّذ بإضافة بت واحد إلى كل بايت. أما طريقة الرماز المصحِّح للأخطاء فتسمح بكشف الخطأ وتصحيحه. ومن الأرمزة المستخدمة: رماز هامنغ Hamming الذي يتطلب إضافة 5 بتات إلى كل بايت.
تصنيف الذاكرات
تُصنّف الذاكرة بحسب طريقة النفاذ إلى المعلومات في ثلاثة أنواع : ذاكرة النفاذ العشوائي random access، وذاكرة النفاذ التتابعي sequential access، وذاكرة النفاذ التجميعي associative access.
ذاكرة النفاذ العشوائي
وهي تسمح بانتقاء أي موقع فيها بغضّ النظر عن ترتيبه. ولها نوعان : الذاكرة المتلاشية volatile، والذاكرة الدائمة non-volatile.
الذاكرة المتلاشية: سُميت بذلك لأنها تفقد معلوماتها فور انقطاع التغذية عنها. تُبنى خلاياها بأسلوبين: دينامية، وسكوني. وتعدّ الذاكرة الدينامية ذات النفاذ العشوائي Dynamic Random Access Memory (DRAM) أكثر الأنواع انتشاراً بسبب سعة تخزينها العالية واستهلاكها المنخفض للطاقة نسبياً. تُنظم هذه الذاكرة مصفوفياً، بحيث يتطلب النفاذ إليها إصدار عنوان سطر ثم عنوان عمود. وهذا من شأنه إبطاء عملية النفاذ. وتُبنى خلية التخزين الأساسية من مكثف وترانزستور. وهي تتطلب عملية إنعاش دورية لتعويض تيار التسريب leakage في المكثف.
أما الذاكرة السكونية ذات النفاذ العشوائي SRAM (Static RAM) فتستطيع الاحتفاظ بالمعلومات المخزنة دون إنعاش، ما دامت التغذية مستمرة. وتتميز بسرعتها المرتفعة، وعدم حاجتها إلى الإنعاش، وسهولة التخاطب معها. تُنظم هذه الذاكرة خطياً، بحيث لا يتطلب النفاذ إليها إلا عنواناً واحداً. وتُبنى خلية التخزين الأساسية فيها من قلاب يضم عموماً 4 ترانزستورات (الشكل -3).
الذاكرة الدائمة: وهي تستطيع الاحتفاظ بالمعلومات بعد زوال التغذية. نميز فيها أربعة أنواع فرعية:
ـ ذاكرة القراءة فقط (ROM) Read Only Memory: تماثل في واجهتها الخارجية الذاكرة السكونية. يُخزن برنامج المستخدِم أو معطياته عند صناعتها ولا يمكن تغيير محتوياتها بعد البرمجة. تتألف الخلية الأساسية فيها من فاصمة، توصل أو تُفصل عند البرمج.
ذاكرة القراءة القابلة للبرمجة Programmable ROM: وهي ذاكرة يمكن برمجتها مرة واحدة عند المستخدِم ولكن لا يمكن بعدئذٍ محوها.
ـ ذاكرة القراءة القابلة للبرمجة والمحو Erasable-Programmable ROM : توظِّف هذه الذاكرة طريقة مختلفة كلياً عن الذاكرتين السابقتين لتخزين المعلومات. إذ تعتمد على تصيّد الشحنات في خلاياها المبنية على الترانزستور ذي البوابة العائمة Floating-gate transistor. ولمحو المعلومات، تُعرَّض الذاكرة إلى الأشعة فوق البنفسجية عدة دقائق، بغية إفراغ شحنات البوابات العائمة.
ـ ذاكرة القراءة القابلة للبرمجة والمحو كهربائياً Electrically EPROM: في هذه الذاكرة، تُحقن الإلكترونات في البوابة العائمة باستخدام ظاهرة النفق tunnel بدلاً من ظاهرة الانهيار avalanche. ولما كانت هذه الطريقة ثنائية الاتجاه، فمن الممكن إعادة الإلكترونات المحقونة إلى الركيزة substrate بقلب شروط الانحياز bias. تُمحى الذاكرة كهربائياً ويمكن محو بعض المواقع دون غيرها لتوفير الوقت. ومن أهم أنواعها الذاكرة الومضية Flash التي تُمحى وتُبرمج سريعاً ولها إمكانية حماية كتلة محددة فيها من الكتابة.
ذاكرة النفاذ التتابعي
في هذا النوع من الذاكرات، يعتمد الموقع الجاري النفاذ إليه على الموقع السابق، وهذا ما يقلّل من سرعتها. ومثال ذلك، الشرائط المغنطيسية التي ظهرت أولاً عام 1951. يُلفّ الشريط حول بكرة، ويبلغ عرضه 0.5 إنش، أو 1 إنش، ويتفاوت طوله بين 600 و2400 قدم. تُخزّن المعطيات عليه بكثافة تقع بين 800 بت/ إنش، و6250 بت/إنش. وقد تصل سعة تخزينه إلى 2جيغا بايت.
ذاكرة النفاذ التجميعي
الشكل (5) البنية الداخلية للذاكرة التجميعية
عند القراءة، يقدم المعالج جزءاً من المعطيات المطلوبة إلى هذه الذاكرة التي تبحث في جميع مواقعها عن تطابق مع معطيات الدخل المقدَّمة. تسمى هذه الذاكرة أيضاً بالذاكرة المعنونة بالمحتوى Content Addressable Memory (CAM). يُرفق بكل كلمة معطيات بت إضافي يسمى بت الصلاحية validity bit، وتسمى المعلومات المحددة من المعالج بالأمارة tag. وتُحدَّد مواقع بتات الأمارة في الكلمة بواسطة سجل القناع. ويُعلن عن حدوث مطابقة عند العثور على موقع يحوي تلك الأمارة، وله بت صلاحية يساوي الواحد (الشكل -5).
عند الكتابة، يقدم المعالج المعطيات إلى الذاكرة، التي تبحث بدورها عن موقع ذي بت صلاحية معدوم، فإذا لم تعثر على ذلك، استعاضت عن أحد المواقع وفق سياسة استعاضة محددة، كالاستعاضة عن الموقع ذي الاستخدام الأقل حداثة Least-Recently Used. وتُعدّ الذاكرة الخبيئة Cache Memory من هذا النوع. وهي ذاكرة صغيرة الحجم نسبياً وذات سرعة نفاذ مرتفعة. تُنظم وفق أسطر lines مؤلفة من عدة بايتات، وهي تغني المعالج عن اللجوء إلى الذاكرة الرئيسة البطيئة.
أنواع الذاكرة المتقدمة
تعاني الذاكرة الدينامية من زمن النفاذ الكبير. وهذا ما حدا المصنّعين إلى إيجاد تقنيات جديدة تسمح برفع أدائها.
ـ ذاكرة النفاذ السريع إلى الصفحة :Fast Page Memory (FPM)
تسمح هذه الذاكرة بالنفاذ إلى أعمدة متتالية في السطر ذاته، بعد تحديد عنوان السطر مرة واحدة. ظهرت هذه الذاكرة عام 1987، ولها زمن نفاذ قدره 50 نانو ثانية. وهي متاحة بتعليب ذي 72 مغرز pin، يسمى نسيقة ذاكرة ذات تعليب وحيد الجانب SIMM.
ـ ذاكرة ذات خرج مطوَّل :Extended Data Out (EDO)
تقلِّص هذه الذاكرة الزمن الفاصل بين عمليتي نفاذ متتابعتين، وهي تحوي قناة توارد pipeline بمرحلتين في دخلها. ظهرت هذه الذاكرة عام 1995، وهي أسرع بنسبة 10% من الذاكرة الدينامية التقليدية. تُتاح هذه الذاكرة بتعليب ذي 144 أو 168 مغرز، يسمى نسيقة ذاكرة مزدوجة الجانب DIMM.
ـ الذاكرة الدينامية المتزامنة :Synchronous DRAM (SDRAM)
تعمل بطريقة مختلفة عن بقية الذاكرات. إذ يتزامن عملها مع نبضات ميقاتية داخلية. تستطيع هذه الذاكرة توليد عنوان العمود التالي داخلياً وإرساله إلى الخرج. ظهرت هذه الذاكرة عام 1997، وكانت تعمل بتردد 66 ميغا هرتز، ثم طُوِّرت عام 1998 لتعمل بتردد 100 ميغاهرتز، وأداؤها أعلى بنسبة 18% من الذاكرة EDO. ثمة جيل ثانٍ من هذه الذاكرة، ظهر عام 2000، يسمى بالذاكرة المتزامنة ذات المعدل المضاعف Double Data Rate (DDR). تُنقل فيها المعطيات عند كل جبهة من نبضات الميقاتية، وتعمل بتردد 266 ميغا هرتز. تُتاح هذه الذاكرة بتعليب DIMM فقط.
ـ الذاكرة الدينامية المسرَوية :Rambus DRAM (RDRAM)
أُنتجت هذه الذاكرة بفضل التعاون بين شركتي إنتل Intel ورامباص Rambus عام 1999. وهي ذات بنية مبتكرة، إذ توصّف مسرى جديداً بين رقاقات الذاكرة، ذا ميفاق protocol تخاطب خاص به، ويضبط عمله متحكم متخصص يرتبط بوحدة المعالجة المركزية. يبلغ عرض المسرى بايتين، وتُنقل معلومات العناوين والمعطيات بتردد 800 ميغا هرتز. ولذا، يُقدر معدل النقل بقيمة 1.6 جيغا بايت/ثانية. تُتاح هذه الذاكرة بتعليب خاص ذي 184 مغرز، يسمى نسيقة ذاكرة بتعليب رامباص RIMM، ويضاف إلى رقاقات الذاكرة مبدّد حراري للحيلولة دون حدوث التسخين الزائد.
ـ الذاكرة السكونية وحيدة الترانزستور 1T-SRAM
ظهرت هذه الذاكرة في بداية العام 2000، وهي تجمع بين السرعة العالية والكلفة المنخفضة والكثافة المرتفعة والاستهلاك المحدود للطاقة. يعتمد التصميم على خلايا الذاكرة الدينامية بترانزستور واحد بدلاً من أربعة. ولها واجهة تُماثِل الذاكرة السكونية تخفي وراءها كل عمليات الإنعاش.
دراسة حالة الحاسوب الشخصي
يتألف نظام الذاكرة في الحاسوب من أنواع مختلفة من الذاكرات (الشكل -6). تُكامل في معالج الحاسوب بنتيوم Pentium ذاكرة خبيئة من المستوى الأول L1 سعتها 16 كيلوبايت. تُقسم بالتساوي بين خبيئة معطيات وتعليمات. كما يحوي الحاسوب أيضاً ذاكرة خبيئة من المستوى الثاني L2 سرعتها 10 نانو ثانية، توضع في لوحته الأم، وهي ذاكرة موحّدة للمعطيات والتعليمات. تُبنى ذاكرة الحاسوب الرئيسة من ذاكرة دينامية تصل سعتها إلى مئات ملايين البايتات. ويستخدم الحاسوب ذاكرة دائمة، تسمى نظام الدخل/الخرج الأساسي BIOS، لتخزين إجرائيات التخاطب مع الطرفيات، وتصل سعتها إلى 256 كيلوبايت.
يسمح تراتب الذاكرة في الحاسوب بتحسين أدائه، وتجاوز الهوة المتزايدة الاتساع بين سرعة المعالجات والذاكرة.