
_START_ARTICLE_
ذاكرة ذات محتوى قابل للقصد
_START_PARAGRAPH_
ذاكرة ذات محتوى قابل للقصد أو الذكرة الترافقية أو الذاكرة الاقترانية (بالإنجليزية: Content-addressable memory أو Associative Memory) هي نمط خاص من ذاكرة ال RAM والتي يتم الوصول فيها إلى بيانات محددة ليس من خلال عنوانها وإنما من خلال مقارنة هذه البيانات مع محتويات الذاكرة وهذا النمط من الذواكر يستخدم في بعض ذواكر الكاش والذواكر الافتراضية.
_START_SECTION_
الذاكرة المترافقة
_START_PARAGRAPH_
يتم بناء ذاكرة الكاش إما باستخدام ال SRAM أو الذواكر المترافقة وفقا للنمط المستخدم في تخطيط الذاكرة _NEWLINE_في الذاكرة SRAM يتم الوصول لمحتوياتها كسائر أنماط الذواكر حيث تستقبل عنوان وتعطي محتوياتها الموجودة على ذاك العنوان ولكن في الذاكرة المترافقة يتم الوصول للبيانات بشكل مختلف عن باقي أنماط الذواكر حيث يتم تحديد جزء من البيانات المطلوبة (مثلا إذا كان طول الكلمة البيانات 20 بت تحدد 4 بتات مثلا)._NEWLINE_وتقوم الذاكرة المترافقة بالبحث في كل مواقعها الذاكرية على التوازي وتؤشر على المواقع التي حدث فيها تطابق مع جزء البيانات المحدد وتتم قراءة قيم هذه البيانات للتوضيح افترض بأنه لدينا ذاكرة مترافقة بثماني حجرات ذاكريه طول كل حجرة 16بت كما هو موضح بالشكل(2-9):_NEWLINE_أيضا هنالك بت إضافي لبتات البيانات في كل كلمة معطيات والمسمى (V) بت الصلاحية Valid Bit وال (1) في هذا الموضع يشير إلى أن الحجرة الذاكرية تحتوي على بيانات صالحة لإجراء المقارنة والقيمة (0) تدل على أن القيمة غير صالحة لإجراء المقارنة. (كل بت في الذاكرة أما يحتوي القيمة (0) أو القيمة (1) سواء أكان يدل على صلاحية البيانات أو لا لهذا السبب من المهم أن يكون لدينا علم يحدد ببساطة هل البيانات صالحة أم غير صالحة وهذا شي مهم في عملية تحديد تطابق البيانات)_NEWLINE_القيمة الأولى في الحجرة هي بيانات والقيمة الثانية هي دليل أو مفتاح.
_START_SECTION_
مثال 1
_START_PARAGRAPH_
إذا كانت ال CPU تريد الوصول إلى البيانات التي خاناتها الأربعة الأعلى أهمية 1010 في الذاكرة المترافقة والتي تحوي البيانات الموضحة بالجدول التالي:_NEWLINE_تقوم ال CPU بتحميل القيمة 0000 0000 1111 في المسجل Mask Register حيث أن كل بت يجب أن يتم فحصه بوضع (1) بغض النظر عن قيمته وباقي الخانات توضع على (0) وتقوم ال CPU بتحميل القيمة 1010 xxxx xxxx إلى مسجل البيانات (Data register) أو (Argument register)_NEWLINE_والبتات المحددة هي البتات التي يجب أن يتم فحصها والبتات إل 12 الأخرى يمكن أن تأخذ أي قيمة لأنه لن يتم فحصها والآن تقوم CPU بفحص كل خاناتها على التوازي حيث تحدث المطابقة إذا كانت قيمة كل خانة ذات القيمة (1) في المسجل Masked Register في الموقع الذاكري متطابقة مع قيمتها في مسجل البيانات Data Register والخانة المفتاح تحوي على القيمة V=1.
_START_SECTION_
تحقيق الذاكرة المترافقة
_START_PARAGRAPH_
كل موقع ذاكري في الذاكرة المترافقة يحتوي على البنية اللازمة لانجاز هذه العملية حيث تحتوي الذاكرة المترافقة على مسجل مطابقة (Match register) والذي يملك بت من أجل كل حجرة ذاكريه فإذا حدثت المطابقة مع هذه الحجرة توضع قيمة البت الموافق لهذه الخانة على القيمة (1) وإلا يوضع على القيمة (0) كما تحقق بنية الحجرة عملية القراءة والكتابة من الحجرة._NEWLINE_إن كتابة البيانات في الذاكرة المترافقة يتم بشكل مباشر حيث تقوم ال CPU بإرسال البيانات إلى مسجل البيانات ثم ترسل إشارة الكتابة write وتقوم الذاكرة المترافقة بالبحث عن موقع ذاكري قيمة خانة الدليل فيه تساوي (0) وتكتب البيانات الجديدة فيها وإذا لم تجد فيجب أن تقوم بمسح لتوضع قيمة البيانات فيه وتقوم باسنا القيمة (1) إلى خانة الدليل لهذه القيمة الجديدة ويتم تحديد هذه الخانة المستبدلة من خلال خوارزمية الاستبدال المطبقة من قبل الذاكرة.