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