ذاكرة ترافقية



مقدمة: الذاكرة المترافقة (بالإنجليزية: Content-addressable memory أو Associative Memory) هي نمط خاص من ذاكرة ال RAM والتي يتم الوصول فيها إلى بيانات محددة ليس من خلال عنوانها وإنما من خلال مقارنة هذه البيانات مع محتويات الذاكرة وهذا النمط من الذواكر يستخدم في بعض ذواكر الكاش والذواكر الافتراضية.

الذاكرة المترافقة Associative Memory: يتم بناء ذاكرة الكاش إما باستخدام ال SRAM أو الذواكر المترافقة وفقا للنمط المستخدم في تخطيط الذاكرة في الذاكرة SRAM يتم الوصول لمحتوياتها كسائر أنماط الذواكر حيث تستقبل عنوان وتعطي محتوياتها الموجودة على ذاك العنوان ولكن في الذاكرة المترافقة يتم الوصول للبيانات بشكل مختلف عن باقي أنماط الذواكر حيث يتم تحديد جزء من البيانات المطلوبة (مثلا إذا كان طول الكلمة البيانات 20 بت تحدد 4 بتات مثلا) وتقوم الذاكرة المترافقة بالبحث في كل مواقعها الذاكرية على التوازي وتؤشر على المواقع التي حدث فيها تطابق مع جزء البيانات المحدد وتتم قراءة قيم هذه البيانات للتوضيح افترض بأنه لدينا ذاكرة مترافقة بثماني حجرات ذاكريه طول كل حجرة 16بت كما هو موضح بالشكل(2-9):

أيضا هنالك بت إضافي لبتات البيانات في كل كلمة معطيات والمسمى (V) بت الصلاحية Valid Bit وال (1) في هذا الموضع يشير إلى أن الحجرة الذاكرية تحتوي على بيانات صالحة لإجراء المقارنة والقيمة (0) تدل على أن القيمة غير صالحة لإجراء المقارنة. (كل بت في الذاكرة أما يحتوي القيمة (0) أو القيمة (1) سواء أكان يدل على صلاحية البيانات أو لا لهذا السبب من المهم أن يكون لدينا علم يحدد ببساطة هل البيانات صالحة أم غير صالحة وهذا شي مهم في عملية تحديد تطابق البيانات)

القيمة الأولى في الحجرة هي بيانات والقيمة الثانية هي دليل أو مفتاح. مثال 1: إذا كانت ال CPU تريد الوصول إلى البيانات التي خاناتها الأربعة الأعلى أهمية 1010 في الذاكرة المترافقة الموضحة بالشكل (1) والتي تحوي البيانات الموضحة بالجدول التالي:

تقوم ال 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.

تعميم: افترض أن لديك الموقع الذاكري (i) حيث بتات المعطيات هي والبت المفتاحي هو والمسجل mask register ومسجل البيانات وتحدث المطابقة عندما تتحقق العلاقة:

تحقيق الذاكرة المترافقة: كل موقع ذاكري في الذاكرة المترافقة يحتوي على البنية اللازمة لانجاز هذه العملية حيث تحتوي الذاكرة المترافقة على مسجل مطابقة(Match register) والذي يملك بت من أجل كل حجرة ذاكريه فإذا حدثت المطابقة مع هذه الحجرة توضع قيمة البت الموافق لهذه الخانة على القيمة (1) وإلا يوضع على القيمة (0) كما تحقق بنية الحجرة عملية القراءة والكتابة من الحجرة ويوضح الشكل (2) بنية حجرة ذاكريه وحيدة.

أما الشكل التالي(3) فهو منطق المطابقة لكلمة مخزنة :

والشكل العام للذاكرة يكون كما هو مبين بالشكل (5):

تنويه: علينا أن نضيف دارة and بعد منطق المقارنة مع بت الصلاحية v من أجل الوصول فقط للبيانات الصحيحة ويصبح الشكل

من أجل القراءة والكتابة: يكون منطق القراءة والكتابة لكل خلية ذاكرية هو كما الشكل (2)ولكن بشكل عام يكون يمكن اقتراح المنطق التالي الموضح بالشكل (7) للقراءة والكتابة:

حيث تم وضع بفرات على مخرج ال Output Registerو تم تفعيلها والتحكم بها عن طريق مدخل الOE. وفي المثال المذكور مثلا الموقعين الأخيرين يحققان المطابقة في مسجل البيانات ولكن الموقع قبل الأخير فقط لديه قيمة الخانة الدليل تساوي (1) أي بياناته قابلة للمطابقة وكنتيجة لهذا التساؤل فإن جميع خانات مسجل المطابقة سوف تسند قيمتها إلى القيمة (0) ما عدا الخانة قبل الأخيرة فأنها تسند قيمتها إلى (1) بعد ذلك تقوم دارة في الذاكرة المترافقة بإخراج قيمة الحجرة ما قبل الأخيرة إلى مسجل الخرج والذي يكون متاحا لل CPU للوصول إليه(إذا كان هنالك أكثر من خانة تحقق المطابقة يتم إخراجها بالتتالي لمسجل الخرج ولكن في تطبيقات الذاكرة المترافقة في ذواكر الكاش أو الذواكر الافتراضية فإن معظم الحالات تحدث مطابقة واحدة فقط) إن كتابة البيانات في الذاكرة المترافقة يتم بشكل مباشر حيث تقوم ال CPU بإرسال البيانات إلى مسجل البيانات ثم ترسل إشارة الكتابة write وتقوم الذاكرة المترافقة بالبحث عن موقع ذاكري قيمة خانة الدليل فيه تساوي (0) وتكتب البيانات الجديدة فيها وإذا لم تجد فيجب أن تقوم بمسح لتوضع قيمة البيانات فيه وتقوم باسنا القيمة (1) إلى خانة الدليل لهذه القيمة الجديدة ويتم تحديد هذه الخانة المستبدلة من خلال خوارزمية الاستبدال المطبقة من قبل الذاكرة.

de:Assoziativspeicher Content-addressable memory]] es:Memoria de contenido direccionable fa:حافظه تداعیگر fr:Mémoire adressable par contenu it:Content addressable memory ja:連想メモリ kk:Ассоциативтік жад ko:내용 주소화 기억장치 ms:Ingatan boleh alamat kandungan pl:Pamięć CAM ru:Ассоциативная память sk:Asociatívna pamäť (počítač) sv:CAM-minne uk:Асоціативна пам'ять zh:结合存储