قائمة الطعام
مجانا
التسجيل
الصفحة الرئيسية  /  الوسائط المتعددة/ ذاكرة الإنسان الترابطية. الذاكرة الترابطية

الذاكرة الترابطية البشرية. الذاكرة الترابطية

الخامس الذاكرة الترابطيةلا يتم تحديد العناصر حسب العنوان ، ولكن حسب المحتوى. دعونا نشرح المفهوم الأخير بمزيد من التفصيل. للذاكرة مع تنظيم العنوان ، تم تقديم المفهوم الحد الأدنى من الوحدة عنونة(MAE) كجزء من البيانات بعنوان فردي. دعونا نقدم مفهومًا مشابهًا لـ الذاكرة الترابطية، وستكون وحدة التخزين الدنيا هذه الذاكرة الترابطيةيتصل سلسلة الذاكرة الترابطية(حزام). يحتوي كل StrAP على حقلين: حقل علامة (علامة إنجليزية - علامة ، ملصق ، سمة) وحقل بيانات. يمكن التعبير عن طلب القراءة إلى الذاكرة الترابطية بالكلمات على النحو التالي: حدد السطر (الخطوط) ، حيث (أي) العلامة تساوي القيمة المحددة.

نلاحظ بشكل خاص أنه مع مثل هذا الاستعلام ، تكون إحدى النتائج الثلاثة ممكنة:

  1. يوجد سطر واحد بالضبط مع العلامة المحددة ؛
  2. هناك سطور متعددة بالعلامة المحددة ؛
  3. لا توجد أسطر بالعلامة المحددة.

يعد البحث عن سجل حسب السمة نشاطًا نموذجيًا في عمليات الوصول إلى قاعدة البيانات ، وغالبًا ما يشار إلى البحث في قاعدة البيانات على أنه بحث ترابطي. لإجراء مثل هذا البحث ، يجب عليك عرض جميع السجلات ومقارنة العلامة المحددة بعلامة كل سجل. يمكن القيام بذلك عند استخدام الذاكرة العادية القابلة للعنونة لتخزين السجلات (ومن الواضح أن هذا سيستغرق الكثير من الوقت - بما يتناسب مع عدد السجلات المخزنة!). عن الذاكرة الترابطيةيقولون عندما يتم دعم استرجاع البيانات الترابطية من الذاكرة بواسطة الأجهزة. عند الكتابة إلى الذاكرة الترابطية ، يتم وضع عنصر البيانات في StrAP جنبًا إلى جنب مع العلامة المتأصلة في هذا العنصر. لهذا ، يمكنك استخدام أي StrAP مجانية. ضع في اعتبارك أنواع التنظيم الهيكلي لذاكرة التخزين المؤقت أو طرق العرض ذاكرة الوصول العشوائيعلى ذاكرة التخزين المؤقت.

مخبأ الترابطي بالكامل

يظهر رسم تخطيطي لذاكرة التخزين المؤقت الترابطية بالكامل في الشكل (انظر الشكل أدناه).

دعونا نصف خوارزمية النظام مع ذاكرة التخزين المؤقت. في بداية العمل ، تكون ذاكرة التخزين المؤقت فارغة. عندما يتم تنفيذ الأمر الأول أثناء أخذ العينات ، فإن الكود الخاص به ، بالإضافة إلى عدد قليل من البايتات المجاورة كود البرنامج، - سيتم نقلها (ببطء) إلى أحد سطور ذاكرة التخزين المؤقت ، وفي نفس الوقت سيتم كتابة الجزء العلوي من العنوان إلى العلامة المقابلة. هذه هي الطريقة التي يتم بها ملء خط ذاكرة التخزين المؤقت.

إذا كانت التحديدات التالية ممكنة من هذه المنطقة ، فسيتم إجراؤها بالفعل من CACHE (سريع) - "CACHE-hit". إذا اتضح أن العنصر المطلوبلا توجد ذاكرة تخزين مؤقت في ذاكرة التخزين المؤقت ، - "CASH-Miss". في هذه الحالة ، يحدث الوصول إلى ذاكرة الوصول العشوائي (ببطء) ، وفي نفس الوقت يتم ملء خط ذاكرة التخزين المؤقت التالي.

دوائر ذاكرة التخزين المؤقت الترابطية بالكامل

يتم الوصول إلى ذاكرة التخزين المؤقت على النحو التالي. بعد تشكيل العنوان التنفيذي ، تكون وحدات البت عالية المستوى ، التي تشكل علامة ، عبارة عن أجهزة (سريعة) ومقارنة بعلامات جميع سطور ذاكرة التخزين المؤقت في نفس الوقت. في هذه الحالة ، من الممكن حدوث حالتين فقط من الحالات الثلاثة المذكورة سابقًا: إما أن تؤدي جميع المقارنات إلى نتيجة سلبية (خطأ في ذاكرة التخزين المؤقت) ، أو سيتم تسجيل نتيجة مقارنة إيجابية تمامًا لسطر واحد (نتيجة ذاكرة التخزين المؤقت).

عند القراءة ، إذا تم تسجيل نتيجة ذاكرة التخزين المؤقت ، تحدد البتات السفلية من العنوان الموضع في سطر ذاكرة التخزين المؤقت الذي يتم تحديد البايت منه ، ويحدد نوع العملية عدد البايتات. من الواضح ، إذا تجاوز طول عنصر البيانات بايتًا واحدًا ، فإن المواقف تكون ممكنة عندما يكون هذا العنصر (في أجزاء) موجودًا في سطرين مختلفين (أو أكثر) من ذاكرة التخزين المؤقت ، ثم يزداد وقت جلب هذا العنصر. يمكن مواجهة ذلك من خلال محاذاة المعاملات والتعليمات على طول حدود خطوط ذاكرة التخزين المؤقت ، والتي تؤخذ في الاعتبار عند تطوير تحسين المترجمين أو عند تحسين التعليمات البرمجية يدويًا.

إذا كان هناك خطأ في ذاكرة التخزين المؤقت ولا توجد أسطر مجانية في ذاكرة التخزين المؤقت ، فيجب استبدال سطر واحد من ذاكرة التخزين المؤقت بسطر آخر.

الهدف الرئيسي لاستراتيجية الاستبدال هو الاحتفاظ بالذاكرة المؤقتة بالخطوط التي من المرجح أن يتم الوصول إليها في المستقبل القريب ، واستبدال الخطوط التي سيتم الوصول إليها في وقت لاحق أو عدم الوصول إليها على الإطلاق. من الواضح أن الخوارزمية المثلى ستكون تلك التي تحل محل الصف الذي سيتم الوصول إليه لاحقًا في المستقبل أكثر من أي صف CACHE آخر.

لسوء الحظ ، مثل هذا التنبؤ غير قابل للتحقيق عمليًا ، ويجب على المرء استخدام خوارزميات أدنى من الخوارزميات المثلى. بغض النظر عن خوارزمية الاستبدال المستخدمة ، يجب تنفيذها في الأجهزة لتحقيق سرعة عالية.

من بين العديد من خوارزميات الاستبدال الممكنة ، الأكثر شيوعًا هي أربعة ، يتم النظر فيها من أجل تقليل الكفاءة النسبية. يمكن تطبيق أي من هذه في ذاكرة التخزين المؤقت الترابطية بالكامل.

الأكثر كفاءة هي خوارزمية الاستبدال بناءً على الاستخدام الأقدم ( LRU - الأقل استخدامًا مؤخرًا ) ، والذي يحل محل خط CACHE الذي لم يتم الوصول إليه لأطول وقت. أظهرت الأبحاث أن خوارزمية LRU التي تنظر للخلف تؤدي أداءً جيدًا بشكل معقول مقارنة بالخوارزمية المثلى للتطلع إلى الأمام.

أشهر طريقتين لتنفيذ الأجهزة لهذه الخوارزمية. في الحالة الأولى ، يرتبط العداد بكل سطر من ذاكرة التخزين المؤقت. يتم إضافة وحدة إلى محتويات جميع العدادات على فترات منتظمة. عند الوصول إلى صف ، تتم إعادة تعيين عداده إلى الصفر. وبالتالي ، سيكون أكبر رقم في عداد الصف الذي لم يتم الوصول إليه لأطول فترة ، وهذا الصف هو المرشح الأول للاستبدال.

يتم تنفيذ الطريقة الثانية باستخدام قائمة انتظار ، حيث يتم إدخال المراجع إلى هذه السطور بترتيب ملء سطور ذاكرة التخزين المؤقت. في كل مرة يتم فيها الوصول إلى صف ، يتم نقل الارتباط إليه إلى نهاية قائمة الانتظار. نتيجة لذلك ، يكون أول ما في قائمة الانتظار هو الارتباط للصف الذي لم يتم الوصول إليه لأطول وقت. هذا هو الخط الذي تم استبداله أولاً وقبل كل شيء.

خوارزمية الاستبدال المحتملة الأخرى هي خوارزمية ما يدخل أولاً يخرج أولاً ( الوارد أولاً يصرف أولاً ). هنا ، يتم استبدال السلسلة التي كانت في ذاكرة التخزين المؤقت الأطول. يتم تنفيذ الخوارزمية بسهولة باستخدام قائمة الانتظار المدروسة سابقًا ، مع الاختلاف الوحيد أنه بعد الوصول إلى السلسلة ، لا يتغير موضع الارتباط المقابل في قائمة الانتظار.

خوارزمية أخرى هي استبدال السلسلة الأقل استخدامًا (LFU - الأقل استخدامًا). يتم استبدال السطر الموجود في ذاكرة CACHE بأقل عدد من عمليات الوصول. يمكن وضع المبدأ موضع التنفيذ من خلال ربط كل صف بعداد دخول ، إلى محتوياته التي يتم إضافة واحد إليها بعد كل ضربة. المنافس الرئيسي للاستبدال هو السلسلة التي يحتوي عدادها على أصغر رقم.

أبسط خوارزمية هي الاختيار التعسفي لسلسلة لاستبدالها. يتم تحديد السلسلة المراد استبدالها عشوائيًا. يمكن تنفيذ ذلك ، على سبيل المثال ، بمساعدة عداد ، يزداد محتواه بمقدار واحد مع كل نبضة على مدار الساعة ، بغض النظر عما إذا كانت هناك نتيجة أو خطأ. تحدد القيمة الموجودة في العداد السلسلة المراد استبدالها.

بالإضافة إلى العلامة وبايت البيانات ، قد يحتوي سطر ذاكرة التخزين المؤقت على حقول خدمة إضافية ، من بينها ، أولاً وقبل كل شيء ، يجب أن تكون بتة الصلاحية V (من صالحة - صالحة) وبت التعديل M (من التعديل - التغيير ، التعديل) وأشار. عند ملء سطر ذاكرة التخزين المؤقت التالي ، يتم تعيين V على الحالة "الصالحة" ، و M - على الحالة "غير المعدلة". إذا تم تغيير محتوى هذا الخط أثناء تنفيذ البرنامج ، يتم تبديل بت M ، مما يشير إلى أنه عند استبدال هذا الخط ، يجب إعادة كتابة محتواه في ذاكرة الوصول العشوائي. إذا تغيرت ، لسبب ما ، نسخة من عنصر من هذه السلسلة مخزنة في مكان آخر (على سبيل المثال ، في ذاكرة الوصول العشوائي) ، فإن البت V. إلى ذاكرة الوصول العشوائي الرئيسية. بالإضافة إلى ذلك ، قد يحتوي مجال الخدمة على بتات تدعم خوارزمية LRU.

تقدير حجم المعدات

حجم ذاكرة التخزين المؤقت النموذجي بتنسيق النظام الحديث- 8 ... 1024 كيلو بايت ، وطول خط التخزين المؤقت 4 ... 32 بايت. تم إجراء مزيد من التقييم لذاكرة التخزين المؤقت 256 كيلوبايت وطول الخط 32B ، وهو أمر نموذجي للأنظمة التي تحتوي على معالجات Pentium و PentiumPro. في هذه الحالة ، يكون طول العلامة 27 بتًا ، وسيكون عدد الأسطر في ذاكرة التخزين المؤقت 256 ك / 32 = 8192. هذا هو بالضبط عدد المقارنات الرقمية لرموز 27 بت المطلوبة لتنفيذ الهيكل أعلاه.

يعطي التقدير التقريبي لتكاليف المعدات لبناء مقارن رقمي قيمة 10 trans / bit ، وسيكون العدد الإجمالي للترانزستورات فقط في وحدة المقارنة مساويًا لـ:

10*27*8192 = 2 211 840,

وهو ما يقرب من مرة ونصف أقل من العدد الإجمالي للترانزستورات على بلورة بنتيوم. وبالتالي ، من الواضح أن الهيكل الموصوف لذاكرة CACHE الترابطية بالكامل () لا يمكن تحقيقه إلا بعدد صغير من الأسطر في ذاكرة التخزين المؤقت ، أي بحجم صغير لذاكرة التخزين المؤقت (لا يزيد عمليا عن 32 ... 64 سطرًا). تم بناء ذاكرة تخزين مؤقت أكبر وفقًا لهيكل مختلف.

جدول الصفحات المتدرجيتطلب العديد من الوصول إلى الذاكرة الرئيسية ، لذلك يستغرق الكثير من الوقت. في بعض الحالات ، هذا التأخير غير مقبول. يتم حل مشكلة تسريع البحث على مستوى هندسة الكمبيوتر.

نظرًا للخاصية المحلية ، فإن معظم البرامج تصل إلى عدد صغير من الصفحات لبعض الوقت ، لذلك يتم استخدام جزء صغير فقط من جدول الصفحات بشكل نشط.

الحل الطبيعي لمشكلة التسريع هو تزويد الكمبيوتر بجهاز لتعيين الصفحات الافتراضية للصفحات الفعلية دون الوصول إلى جدول الصفحات ، أي أن يكون لديك ذاكرة تخزين مؤقت صغيرة وسريعة تخزن ما يلزم هذه اللحظةجزء من جدول الصفحة. هذا الجهاز يسمى الذاكرة الترابطية، مصطلح الترجمة lookaside buffer (TLB) يستخدم أحيانًا أيضًا.

إدخال جدول واحد في الذاكرة الترابطية(إدخال واحد) يحتوي على معلومات حول صفحة افتراضية واحدة: سماتها والإطار الذي توجد فيه. تتوافق هذه الحقول تمامًا مع الحقول الموجودة في جدول الصفحات.

لأن الذاكرة الترابطيةيحتوي فقط على بعض إدخالات جدول الصفحات ، يجب أن يتضمن كل إدخال TLB حقلاً مرقمًا صفحة افتراضية... تسمى الذاكرة الترابطية لأنها تقارن في نفس الوقت عدد المعروض صفحة افتراضيةمع حقل مطابق في جميع صفوف هذا الجدول الصغير. لذا وجهة نظر معينةالذاكرة باهظة الثمن. في الخط ، المجال صفحة افتراضيةالتي تتزامن مع القيمة المطلوبة ، تم العثور على رقم إطار الصفحة. إدخالات TLB النموذجية من 8 إلى 4096. زيادة في عدد الإدخالات في الذاكرة الترابطيةيجب أن يتم ذلك مع مراعاة عوامل مثل حجم ذاكرة التخزين المؤقت الرئيسية للذاكرة وعدد مرات الوصول إلى الذاكرة لكل تعليمات.

ضع في اعتبارك أداء مدير الذاكرة في الوجود الذاكرة الترابطية.

عرض المعلومات الأولى صفحة افتراضيةفي الجسدية الذاكرة الترابطية... إذا تم العثور على الإدخال المطلوب ، فكل شيء على ما يرام ، باستثناء حالات انتهاك الامتياز ، عندما يتم رفض طلب الوصول إلى الذاكرة.

إذا كان الإدخال المطلوب في الذاكرة الترابطيةغائب ، يتم العرض من خلال جدول الصفحات. أحد الإدخالات في الذاكرة الترابطيةتم العثور على سجل من جدول الصفحات. نحن هنا نواجه مشكلة استبدال ، وهي مشكلة تقليدية لأي ذاكرة تخزين مؤقت (أي ، أي من الإدخالات في ذاكرة التخزين المؤقت تحتاج إلى تغيير). تصميم الذاكرة الترابطيةيجب أن تنظم السجلات بطريقة يمكن من خلالها اتخاذ قرار بشأن أي من السجلات القديمة يجب إزالته عند عمل سجلات جديدة.

عدد عمليات البحث الناجحة عن رقم الصفحة بتنسيق الذاكرة الترابطيةفيما يتعلق بالعدد الإجمالي لعمليات البحث تسمى نسبة (مطابقة) (نسبة ، نسبة). أحيانًا ما يتم استخدام المصطلح "نسبة زيارة ذاكرة التخزين المؤقت". وبالتالي ، فإن نسبة الدخول هي جزء الروابط التي يمكن إجراؤها باستخدام الذاكرة الترابطية... يؤدي الوصول إلى نفس الصفحات إلى زيادة نسبة الدخول. كلما زادت نسبة الدخول ، قل متوسط ​​وقت الوصول إلى البيانات في ذاكرة الوصول العشوائي.

لنفترض ، على سبيل المثال ، أن الأمر يستغرق 100 نانوثانية لتحديد العنوان في حالة فقدان ذاكرة التخزين المؤقت من خلال جدول الصفحة ، ولتحديد العنوان في حالة حدوث ذاكرة تخزين مؤقت من خلال الذاكرة الترابطية- 20 نانوثانية. مع نسبة إصابة 90٪ ، يكون متوسط ​​وقت تحديد العنوان 0.9x20 + 0.1x100 = 28 نانوثانية.

يثبت الأداء المقبول تمامًا لنظام التشغيل الحديث كفاءة الاستخدام الذاكرة الترابطية... احتمال كبير للعثور على البيانات بتنسيق الذاكرة الترابطيةالمرتبطة بوجود هذه الخصائص الموضوعية: المكانة المكانية والزمانية.

من الضروري الانتباه إلى الحقيقة التالية. عند تبديل سياق العمليات ، من الضروري التأكد من أن العملية الجديدة لا "ترى" في الذاكرة الترابطيةالمعلومات المتعلقة بالعملية السابقة ، مثل تصفيتها. باستخدام ذلك الذاكرة الترابطيةيزيد من وقت تبديل السياق.

يعتبر ذو مستويين ( الذاكرة الترابطية+ جدول الصفحة) مخطط ترجمة العنوان هو مثالا ساطعاتسلسل هرمي للذاكرة يقوم على مبدأ المكانة كما نوقش في مقدمة المحاضرة السابقة.

جدول الصفحات المقلوب

على الرغم من التنظيم المتدرج ، لا يزال تخزين جداول الصفحات الكبيرة المتعددة يمثل مشكلة. تعتبر أهميتها مناسبة بشكل خاص لمعماريات 64 بت ، حيث يكون عدد الصفحات الافتراضية كبيرًا جدًا. الحل هو أن تستخدم جدول الصفحة المقلوبة(جدول الصفحات المقلوب). يتم استخدام هذا الأسلوب على أجهزة PowerPC وبعض محطات عمل Hewlett-Packard و IBM RT و IBM AS / 400 والعديد من الأجهزة الأخرى.

يحتوي هذا الجدول على إدخال واحد لكل إطار صفحة. ذاكرة جسدية... من الضروري أن يكون جدول واحد كافياً لجميع العمليات. وبالتالي ، يلزم وجود جزء ثابت من الذاكرة الرئيسية لتخزين وظيفة العرض ، بغض النظر عن بنية البت وحجم وعدد العمليات.

على الرغم من التوفير في ذاكرة الوصول العشوائي ، فإن استخدام طاولة مقلوبةله عيب كبير - الإدخالات الموجودة فيه (كما في الذاكرة الترابطية) بترتيب تصاعدي لأرقام الصفحات الافتراضية ، مما يعقد ترجمة العنوان. طريقة واحدة لحل هذه المشكلة هي استخدام جدول التجزئة. عناوين افتراضية... علاوة على ذلك ، جزء عنوان افتراضيالذي يمثل رقم الصفحة يتم تعيينه إلى جدول تجزئة باستخدام وظيفة التجزئة. تتوافق كل صفحة من صفحات الذاكرة الفعلية هنا مع إدخال واحد في جدول التجزئة و جدول الصفحة المقلوبة. عناوين افتراضيةالتي لها نفس قيمة التجزئة متسلسلة مع بعضها البعض. عادة ، لا يتجاوز طول السلسلة سجلين.

مقاس الصفحه

نادرًا ما يمتلك مصممو أنظمة التشغيل للأجهزة الحالية القدرة على التأثير في حجم الصفحة. ومع ذلك ، لإعادة أجهزة الكمبيوتر التي يتم إنشاؤهاالقرار بشأن الحجم الأمثل للصفحة مناسب. كما قد تتوقع ، لا يوجد أفضل حجم. بدلاً من ذلك ، هناك مجموعة من العوامل التي تؤثر على الحجم. عادةً ما يكون حجم الصفحة عبارة عن أس اثنين من 2 9 إلى 2 14 بايت.

الذاكرة الترابطية

اسم المعلمة المعنى
موضوع المقال: الذاكرة الترابطية
الفئة (فئة مواضيعية) أجهزة الكمبيوتر

جدول الصفحة

تنظيم جدول الصفحة هو أحد العناصر الأساسية لآليات التحويل من صفحة إلى أخرى. دعنا نفكر في هيكل جدول الصفحات بمزيد من التفصيل.

لذلك ، يتكون العنوان الظاهري من رقم صفحة افتراضي (بتات عالية المستوى) وإزاحة (بت منخفضة الترتيب). يتم استخدام رقم الصفحة الافتراضية كفهرس في جدول الصفحات للعثور على إدخال الصفحة الافتراضية. من هذا الإدخال في جدول الصفحة ، يتم العثور على رقم إطار الصفحة ، ثم تتم إضافة الإزاحة وتشكيل العنوان الفعلي. بالإضافة إلى ذلك ، يحتوي الإدخال في جدول الصفحات على معلومات حول سمات الصفحة ، ولا سيما بتات الأمان.

تكمن المشكلة الرئيسية للتنفيذ الفعال لجدول الصفحات في الحجم الكبير لمساحات العنوان الافتراضية. أجهزة الكمبيوتر الحديثة، والتي يتم تحديدها عادةً من خلال شهادة بنية المعالج. الأكثر شيوعًا اليوم هي المعالجات 32 بت ، والتي تسمح بإنشاء مساحات عناوين افتراضية بهذا الحجم 4 غيغابايت (بالنسبة لأجهزة الكمبيوتر ذات 64 بت ، هذه القيمة هي 2 ** 64 ب).

دعونا نحسب الحجم التقريبي لجدول الصفحات. في مساحة عنوان 32 بت بحجم صفحة 4K (Intel) ، نحصل على مليون صفحة وأكثر في 64 بت. الذي - التي. يجب أن يحتوي الجدول على مليون سطر (إدخال) ، ويتكون الإدخال في السطر من عدة بايت. لاحظ أن كل عملية تحتاج إلى جدول صفحات خاص بها (وفي حالة مخطط صفحة المقطع ، واحد لكل مقطع). لذلك ، في هذه الحالة ، يجب أن يكون جدول الصفحات كبيرًا جدًا.

ومع ذلك ، يجب أن يكون العرض سريعًا. يجب أن يكون التعيين سريعًا ، كما يتم عند كل وصول للذاكرة ، يحدث في كل تعليمات الجهاز تقريبًا. يتم حل هذه المشكلة بشكل أساسي من خلال تطبيق الذاكرة الترابطية.

من أجل تجنب الأهمية الحاسمة لوجود جدول ضخم في الذاكرة طوال الوقت ، والاحتفاظ فقط بأجزاء قليلة منه (هذا ممكن مرة أخرى بناءً على خاصية المنطقة) ، تستخدم العديد من أجهزة الكمبيوتر جدول صفحات متعدد المستويات.

النظر في مثال نموذج (الشكل 10.4). افترض أن العنوان 32 بت مقسم إلى حقل Ptr1 10 بت ، وحقل Ptr2 10 بت ، وإزاحة 12 بت. يسمح لك الإزاحة 12 بت بترجمة بايت داخل صفحة 4K (2 ** 12) ، ليصبح المجموع 2 ** 20 صفحة. كما يتضح من الشكل. 9.4 1024 صفًا في الجدول افضل مستوىباستخدام حقل Ptr1 ، يشيرون إلى 1024 جدولًا من المستوى الثاني ، يحتوي كل منها أيضًا على 1024 صفًا. باستخدام حقل Ptr2 ، يشير كل صف من جدول المستوى الثاني إلى صفحة معينة. الهدف من مثل هذه المنظمة هو تجنب الاحتفاظ بجميع جداول المستوى الثاني (وهناك 1024 منها) في الذاكرة طوال الوقت. لنلقِ نظرة على مثال بأرقام مستديرة. لنفترض أن العملية تحتاج إلى 12 ميجا من الذاكرة: 4 ميجا في الجزء السفلي من الذاكرة للتعليمة البرمجية ، و 4 ميجا في الجزء السفلي للبيانات ، و 4 ميجا في الجزء العلوي من الذاكرة للمكدس. توجد مساحة ضخمة من 4 جيجابايت إلى 12 ميغا بايت بين الجزء السفلي من المكدس وأعلى البيانات ، ĸᴏᴛᴏᴩᴏᴇ غير مستخدم. في هذه الحالة ، هناك حاجة إلى جدول مستوى أعلى واحد و 3 جداول من المستوى الثاني. يعمم هذا الأسلوب بشكل طبيعي على ثلاثة مستويات أو أكثر من الجدول.

ضع في اعتبارك أحد إدخالات جدول الصفحات. يختلف حجمها من نظام إلى آخر ، ولكن 32 بت هي الحالة الأكثر شيوعًا. أهم حقل هو رقم الإطار. الغرض من الترحيل هو توطين هذه القيمة. علاوة على ذلك ، بتات التواجد ، بتات الحماية (على سبيل المثال ، 0 - قراءة / كتابة ، 1 - للقراءة فقط ...) ، تعديل البتات (إذا تمت كتابتها) وربط البتات التي تساعد على تمييز الصفحات قليلة الاستخدام ، والبتات التي تمكن التخزين المؤقت. لاحظ أن عناوين الصفحات الموجودة على القرص ليست جزءًا من جدول الصفحات.

الشكل 10.4 - مثال لجدول صفحات من مستويين.

كيف يؤثر وجود طبقات متعددة على أداء مدير الذاكرة؟ بافتراض أن كل مستوى عبارة عن جدول منفصل في الذاكرة ، فقد تتطلب ترجمة العنوان عمليات وصول متعددة للذاكرة.

يعتمد عدد المستويات في جدول الصفحات على البنية المحددة. يمكنك إعطاء أمثلة على تنفيذ صفحات المستوى الفردي (DEC PDP-11) ، والمستويين (Intel ، DEC VAX) ، وثلاثة مستويات (Sun SPARC ، و DEC Alpha) تعيين عدد من المستويات (موتورولا). يعمل معالج MIPS R2000 RISC بدون جدول صفحات على الإطلاق. هنا ، البحث عن الصفحة المرغوبة ، إذا لم تكن هذه الصفحة في الذاكرة الترابطية ، يجب أن يتم الاستيلاء عليها بواسطة نظام التشغيل (ما يسمى بترحيل مستوى الصفر).

يستغرق العثور على الصفحة المطلوبة في جدول صفحات متعدد المستويات يتطلب وصولاً متعددًا إلى الذاكرة الرئيسية في طريق ترجمة عنوان افتراضي إلى عنوان فعلي وقتًا طويلاً. في عدد من الظروف ، مثل هذا التأخير غير مقبول. تجد هذه المشكلة حلها أيضًا على مستوى هندسة الكمبيوتر.

بحكم المكان ، ترتبط معظم البرامج بعدد صغير من الصفحات على مدار فترة زمنية ، لذلك يتم التأكيد فقط على جزء صغير من جدول الصفحات.

الحل الطبيعي هو تزويد الكمبيوتر بجهاز لتعيين الصفحات الافتراضية للصفحات الفعلية دون الوصول إلى جدول الصفحات ، أي الحصول على ذاكرة تخزين مؤقت صغيرة وسريعة تخزن الجزء المطلوب حاليًا من جدول الصفحات. يُطلق على هذا الجهاز عادةً اسم الذاكرة الترابطية ، وفي بعض الأحيان يستخدمون أيضًا مصطلح السجلات الترابطية (في بعض الأحيان المخزن المؤقت للترجمة (TLB)).

يحتوي سجل واحد في الجدول في الذاكرة الترابطية على معلومات حول صفحة افتراضية واحدة وسماتها والإطار الذي توجد فيه. تتوافق هذه الحقول تمامًا مع الحقول الموجودة في جدول الصفحات.

يعد تعيين الصفحات الافتراضية المخزنة في الذاكرة الترابطية سريعًا ، لكن ذاكرة التخزين المؤقت باهظة الثمن ومحدودة الحجم.
تم النشر في ref.rf
عدد إدخالات TLB من 8 إلى 2048

من المعتاد استدعاء الذاكرة الترابطية ، لأنه على عكس جدول الصفحات ، الذي يتم فهرسته بواسطة أرقام الصفحات الافتراضية ، تتم هنا مقارنة رقم الصفحة الافتراضية في نفس الوقت بالحقل المقابل في جميع صفوف هذا الجدول الصغير. لهذا السبب ، هذه الذاكرة باهظة الثمن. يحتوي السطر ، وهو حقل الصفحة الافتراضية الذي يتزامن مع القيمة المطلوبة ، على رقم إطار الصفحة.

دعونا نفكر في عمل مدير الذاكرة في وجود الذاكرة الترابطية. أولاً ، يبحث عن صفحة افتراضية في الذاكرة الترابطية. إذا تم العثور على الصفحة ، كل شيء على ما يرام ، إلا في حالات انتهاك الامتياز عندما يتم رفض طلب الوصول إلى الذاكرة.

إذا لم تكن الصفحة في الذاكرة الترابطية ، فسيتم البحث عنها من خلال جدول الصفحة. يتم استبدال إحدى الصفحات الموجودة في الذاكرة الترابطية بالصفحة التي تم العثور عليها. في الجدول ، يتم تمييز هذه الصفحة المحملة ببت تعديل ، والتي ستؤخذ في الاعتبار عند تحميل الذاكرة الترابطية التالية من جدول الصفحة.

يشار عادةً إلى النسبة المئوية لمرات وجود رقم الصفحة في الذاكرة الترابطية على أنها نسبة الدخول. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ ، نسبة الدخول - جزء من الروابط التي يجب إجراؤها باستخدام الذاكرة الترابطية. يؤدي الوصول إلى نفس الصفحات إلى زيادة نسبة الدخول.

على سبيل المثال ، افترض أن 100 ns مهمة للوصول إلى جدول الصفحات ، و 20 ns للوصول إلى الذاكرة الترابطية. مع نسبة إصابة 90٪ ، يكون متوسط ​​وقت الوصول 0.9 * 20 + 0.1 * 100 = 28 نانوثانية.

يثبت الأداء المقبول لأنظمة التشغيل الحديثة كفاءة استخدام الذاكرة الترابطية. ترتبط القيمة العالية لاحتمالية العثور على البيانات في الذاكرة الترابطية بوجود هذه الخصائص الموضوعية: المكان المكاني والزماني.

من الضروري الانتباه إلى الحقيقة التالية. عند تبديل العمليات ، من الضروري التأكد من أن العملية الجديدة لا ترى المعلومات المتعلقة بالعملية السابقة في الذاكرة الترابطية ، على سبيل المثال ، لمسحها. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ ، يزيد استخدام الذاكرة الترابطية من وقت تبديل السياقات.

الذاكرة النقابية - المفهوم والأنواع. تصنيف وميزات فئة "الذاكرة الترابطية" 2017 ، 2018.

في التجارب النقابية ، يجب التأكيد بشكل خاص على نقطة واحدة ، وهي أن الشرط الضروري لتحديد عملية ارتباطية موثوقة هو السلبية الكاملة للموضوع ، والحد الأقصى من الانفصال عن إرادته والتفكير من التدفق التلقائي للأفكار. خلاف ذلك ، بدلاً من العملية النقابية ، نحصل على عملية حتمية نشطة. يجب التأكيد على هذا الظرف بشكل خاص لسبب أن عملية الترابط الحقيقية هي ، في الواقع ، عملية عفوية تحدث خارج نشاط الشخص ؛ وبهذه الصفة تمثل إحدى مراحل تطور الذاكرة وأحد أشكال تجلياتها. في حالة الذاكرة الترابطية ، نحن نتعامل مع الذاكرة التلقائية ، وهي عملية ذاكرة عفوية لا علاقة لها بالذاكرة العشوائية. وبهذا المعنى ، فإن الذاكرة الترابطية ، بالطبع ، أقرب إلى الأشكال البدائية الموصوفة أعلاه لتجلي الذاكرة منها إلى أشكالها البشرية على وجه التحديد.

تميز العفوية الذاكرة الترابطية بنفس القدر كما هي الحال الآن حفظهذا هو تثبيتأو احتفاظ،والذكريات ، هذا هو النسخ.

يكون الموضوع دائمًا تحت تأثير الانطباعات المختلفة ، وغالبًا ما تظهر هذه الانطباعات أو تختفي بغض النظر عن نيته. ومع ذلك ، فإنها عادة لا تختفي دون أن يترك أثرا. صحيح أن هذه الانطباعات لا تبقى لفترة طويلة في النفس كتجارب واعية ، لكنها تسبب تغيرات شخصية معينة في الموضوع نفسه. وهكذا ، بناءً على هذه التغييرات ، عندما تظهر الظروف المناسبة ، على سبيل المثال ، عندما يبدأ أحد هذه الانطباعات مرة أخرى في التصرف في الموضوع ، يتفاعل هذا الأخير وفقًا للتغييرات التي حدثت فيه ، أي التجارب المقابلة لهذا التغيير تنشأ في وعيه ... هذه هي الطريقة التي يحدث بها استنساخ الأفكار ، التي يختبرها الموضوع كنتيجة لتأثير الانطباعات العفوية. كما ترون ، فإن استنساخ هذه الأخيرة يحدث أيضًا خارج التدخل النشط والمتعمد للموضوع.

حقيقة أن إعادة إنتاج التمثيلات النقابية تنشأ دائمًا فقط تحت تأثير بعض التجارب الثانية - التمثيل الإدراكي - تشهد أيضًا على حقيقة أنه يجب التمييز بوضوح بين الذاكرة الترابطية والذاكرة التعسفية. التمثيل أو الإدراك المزعج ضروري لظهور التمثيل النقابي. يميز هذا الظرف الذاكرة الترابطية جيدًا على أنها شكل لا يزال منخفضًا ومعتمدًا من عمل الذاكرة. الخامس هذه الحاسهإنها قريبة جدًا من التعرف عليها.

الاعتراف ، كما نعلم بالفعل ، يسير على النحو التالي: إن تصور N. دائمًا يكون مصحوبًا بشعور بالألفة. لقد تعرفت على ن ، ورأيته. ومع ذلك ، إذا تمت إضافة نوع من التمثيل إلى هذا ، على سبيل المثال ، رأيت "ن" هنا وهناك (صورة لمكان) أو كان في مثل هذه القبعة (صورة قبعة) ، فإننا نتعامل بالفعل مع الذاكرة الترابطية ، أي أن إدراك N. بهذا المعنى ، فإن الاختلاف بين الإدراك والذاكرة الترابطية يتمثل فقط في حقيقة أنه في حالة الاعتراف ، يأتي الماضي إلى الحياة في الإدراك نفسه ، دون تجاوز حدوده ، بينما في الذاكرة الترابطية ، لا يتم إعطاء هذا الماضي في الشكل من أي تصور سابق ، لكنه يظهر.صورة يتم تقديمها بشكل متكرر ، ولكن بالفعل في شكل تمثيل. أدناه سنكون مقتنعين أنه في مرحلة أعلى من التطور ، لاستنساخ تمثيلات الذاكرة ، لا تكون هناك حاجة دائمًا إلى الحافز. لا يوجد فقط الحفظ غير الطوعي ، ولكن أيضًا الاسترجاع الطوعي.

طرق تنظيم الذاكرة

اسم المعلمة المعنى
موضوع المقال: طرق تنظيم الذاكرة
الفئة (فئة مواضيعية) أجهزة الكمبيوتر

من الناحية الوظيفية ، تتكون الذاكرة من أي نوع دائمًا من مصفوفة تخزين تخزن المعلومات ، وكتل مساعدة ، معقدة نوعًا ما ، تعمل على البحث في المصفوفة والكتابة والقراءة (وإذا لزم الأمر ، للتجديد).

يتكون صفيف التخزين (ZM) من العديد من عناصر التخزين المتطابقة (ZE). يتم تنظيم جميع GEs في خلايا ، كل منها مصمم لتخزين وحدة من المعلومات في شكل رمز ثنائي ، يتم تحديد عدد بتات منها من خلال عرض العينة. تعتمد طريقة تنظيم الذاكرة على طرق وضع المعلومات واسترجاعها في ZM. على هذا الأساس ، يتم تمييز العنوان والذاكرة الترابطية والذاكرة المكدسة.

ذاكرة العنوان

في ذاكرة منظمة العنوان ، يعتمد وضع المعلومات واسترجاعها في ZM على استخدام عنوان تخزين وحدة المعلومات ، والتي سيتم تسميتها فيما يلي للإيجاز كلمة... العنوان هو رقم الخلية 3 ميجا التي توجد بها هذه الكلمة. عند كتابة (قراءة) كلمة إلى ZM ، يجب أن يشير الأمر الذي يبدأ هذه العملية إلى عنوان (رقم) الخلية التي تريد الكتابة (القراءة) عليها.

في التين. يوضح الشكل 5.2 البنية العامة لذاكرة العنوان.

تتم تهيئة دورة الوصول إلى الذاكرة من خلال إشارة "الوصول" التي تصل إلى وحدة التحكم في النظام (PCU). يتضمن الجزء العام من دورة الوصول تلقي عنوان وصول من ناقل العنوان (А) من ناقل العنوان (А) وتلقي إشارة تحكم "عملية" في PCU ، تشير إلى نوع العملية المطلوبة (قراءة أو كتابة) .

قراءة. يقوم BAV بفك تشفير العنوان وإرسال إشارة تحدد خلية 3M المحددة بواسطة العنوان. في الحالة العامة ، يمكن لـ BAS أيضًا إرسال إشارات إلى خلية الذاكرة المخصصة التي تقوم بإعداد خلايا ZE للكتابة أو القراءة. بعد ذلك ، تتم قراءة الكلمة المكتوبة في الخلية بواسطة مكبرات الصوت ACC ويتم نقلها إلى RgI. علاوة على ذلك ، في الذاكرة ذات القراءة المدمرة ، يتم إعادة إنشاء المعلومات عن طريق كتابة كلمة من RgI عبر BUZ في خلية ZM نفسها. تكتمل عملية القراءة بإصدار كلمة من RgI إلى ناقل معلومات الإخراج SHI out.

تسجيل.بالإضافة إلى الجزء العام أعلاه من دورة الوصول ، يتم استلام الكلمة المكتوبة من ناقل الإدخال ShI إلى RgI. يتكون السجل نفسه بشكل عام من عمليتين - مسح الخلية والسجل الفعلي. للقيام بذلك ، يقوم BAS أولاً بتحديد ومسح الخلية المحددة بواسطة العنوان في РгА. تنظيف خلية ZM (إدخال الحالة الأولية) بطرق مختلفة. على وجه الخصوص ، في الذاكرة ذات القراءة المدمرة ، يمكن إجراء المقاصة بواسطة الإشارة لقراءة الكلمة في الخلية عندما يتم حظر BUS (بحيث لا تصل المعلومات إلى RgI). بعد ذلك ، تتم كتابة كلمة جديدة في الخلية المحددة.

يتم تحديد الحاجة إلى تشغيل مسح الخلية قبل الكتابة ، وكذلك في عملية إعادة إنشاء المعلومات أثناء القراءة ، حسب نوع GE المستخدم ، وطرق التحكم ، وخصائص الهيكل الإلكتروني لذاكرة LSI ؛ لذلك ، هذه قد تكون العمليات غائبة في ذاكرات أشباه الموصلات.

تولد وحدة PCU التسلسلات الضرورية لإشارات التحكم التي تبدأ تشغيل عقد الذاكرة الفردية. يجب أن يؤخذ في الاعتبار أن وحدة PCU يجب أن تكون جهازًا معقدًا للغاية (نوع من وحدة التحكم مع ذاكرة التخزين المؤقت الخاصة بها) ، والتي تمنح الذاكرة LSI كخصائص خاصة كاملة للمستهلك ، مثل القدرة على منافذ متعددة ، وتسليم المعلومات عبر الأنابيب ، إلخ.

الذاكرة النقابية

في هذا النوع من الذاكرة ، لا يتم البحث عن المعلومات عن طريق العنوان ، ولكن من خلال محتواها. في هذه الحالة ، من المعتاد فهم محتوى المعلومات ليس على أنه الحمل الدلالي للكلمة المخزنة في خلية الذاكرة ، ولكن محتوى خلية ذاكرة ZE ، ᴛ.ᴇ. تكوين البتات المسجلة كلمة ثنائية... في هذه الحالة ، يكون الطلب الترابطي (الميزة) أيضًا كود ثنائيبتكوين أحادي معين. يحدث البحث عن طريق ميزة الترابط بالتوازي في الوقت المناسب لجميع خلايا 3M وهي عملية لمقارنة محتويات بتات تسجيل الميزة بمحتويات بتات خلايا الذاكرة المقابلة. لتنظيم مثل هذا البحث ، تم تجهيز جميع ZEs في SM بمعالجات أحادية البت ؛ لذلك ، في عدد من الحالات ، تعتبر الذاكرة من هذا النوع بمثابة نظام متعدد المعالجات.

تعد الذاكرة الترابطية الكاملة ذات الحجم الكبير جهازًا مكلفًا للغاية ؛ لذلك ، من أجل تقليل التكلفة ، يتم تقليل عدد المعالجات ذات البت الواحد إلى واحد لكل خلية ذاكرة. في هذه الحالة ، يتم إجراء مقارنة الاستعلام الترابطي بمحتويات خلايا الذاكرة بالتتابع للبتات الفردية ، بالتوازي في الوقت المناسب لجميع خلايا الذاكرة.

مع وجود كميات كبيرة جدًا من الذاكرة لفئات معينة من المشكلات ، فإن البحث الترابطي يسرع بشكل كبير معالجة البيانات ويقلل من احتمالية فشل الكمبيوتر. في الوقت نفسه ، تسمح الذاكرة الترابطية بكتل من الدوائر التوافقية المقابلة بإجراء عمليات منطقية معقدة للغاية في الذاكرة: البحث عن الحد الأقصى أو الحد الأدنى لعدد في المصفوفة ، والبحث عن الكلمات الموجودة في حدود معينة ، وفرز المصفوفة ، إلخ.

وتجدر الإشارة إلى أنه يمكن أيضًا تنفيذ البحث الترابطي في جهاز كمبيوتر به ذاكرة عنوان عادية عن طريق الاتصال التسلسلي للكلمات المكتوبة في خلايا الذاكرة في المعالج ومقارنتها ببعض الميزات الترابطية (النمط). في نفس الوقت ، مع وجود كميات كبيرة من الذاكرة ، سيستغرق ذلك الكثير من الوقت. عند استخدام الذاكرة الترابطية ، من الممكن ، دون قراءة الكلمات من OP إلى المعالج ، في مكالمة واحدة تحديد عدد الكلمات التي تتوافق مع استعلام ترابطي معين. هذا يجعل من الممكن في قواعد البيانات الكبيرة تنفيذ استعلام من النوع بسرعة كبيرة: كم عدد سكان المنطقة الذين لم يقدموا إقرار ضريبة الدخل الخاص بهم ، وما إلى ذلك.

في بعض أجهزة الكمبيوتر المتخصصة ، تم بناء OP أو جزء منه بطريقة تسمح لك بتنفيذ استرجاع معلومات الارتباط والعنوان.

مبسط مخطط هيكليتظهر الذاكرة الترابطية ، التي تم فيها تجهيز كل ZE من ZM بمعالجات أحادية بت ، في الشكل. 5.3

في البداية ، فكر في عملية تسمى مراقبة الارتباط... هذه العملية شائعة لعمليات القراءة والكتابة ، ولها أيضًا معنى مستقل.

يتم إرسال طلب ربط n-bit ، ᴛ.ᴇ ، إلى RgAP عبر ناقل معلومات الإدخال. يتم ملء البتات من 0 إلى n-1. في نفس الوقت ، يصل كود قناع البحث إلى RgM ، بينما يتم تعيين البتة n من RgM على 0. يتم إجراء البحث الترابطي فقط لمجموعة بتات RgAP ، والتي تتوافق مع 1 في RgM (بتات غير مقنعة من RgAP). من المهم ملاحظة أنه بالنسبة للكلمات التي تتطابق فيها الأرقام الموجودة في الأرقام مع الأرقام غير المقنعة لـ PrAP ، فإن KS تحدد 1 للأرقام المقابلة من PrSv و 0 على الأرقام المتبقية.

يشكل المخطط التوافقي لتشكيل نتيجة الانعكاس الترابطي للخدمة الثابتة ثلاث إشارات على الأقل من الكلمة المتكونة في РгСв:

أ 0 - عدم وجود كلمات في ZM ترضي السمة الترابطية ؛

أ 1 - وجود كلمة واحدة من هذا القبيل ؛

أ 2 - حضور أكثر من كلمة.

من الممكن أيضًا إجراء عمليات أخرى على محتوى РгСв ، على سبيل المثال ، حساب عدد الوحدات ، ᴛ.ᴇ. عد الكلمات في الذاكرة التي ترضي استفسارًا ترابطيًا وما شابه.

عادة ما يسمى تكوين محتوى PrCv و 0 ، a 1 ، a 2 من خلال محتوى PrAP ، RgM ، 3M عملية التحكم في الارتباط.

قراءة.أولاً ، يتم مراقبة الارتباط بواسطة سمة في RgAP.

أ 0 = 1 - تُلغى القراءة بسبب نقص المعلومات المطلوبة ؛

أ 1 = 1 - تتم قراءة الكلمة التي تم العثور عليها في RgI ، وبعد ذلك يتم إصدارها إلى SHI خارج ؛

A 2 = 1 - تتم قراءة الكلمة ، والتي تحتوي ، على سبيل المثال ، على أصغر رقم بين الخلايا التي تم تمييزها بالرقم 1 في PgSv ، وبعد ذلك يتم إصدارها إلى SHI.

تسجيل.أولاً ، تم العثور على خلية مجانية (نفترض أن الرقم 0 مكتوب في الجزء المشغول من الخلية الحرة). لهذا ، تتم مراقبة الارتباط عند РгАП = 111 ... 10 و РгМ = 000 ... 01 ، ᴛ.ᴇ. يتم تعيين البتة n من РгАП على 0 ، والبتة n من РгМ - إلى 1. في هذه الحالة ، يتم تمييز الخلية الحرة بـ 1 في РгСв. للتسجيل ، حدد خلية فارغة ، على سبيل المثال ، بأقل رقم. يسجل الكلمة الواردة من SHI في RgI.

وتجدر الإشارة إلى أن هذا الرسم البياني لا يظهر كتل BUP و BUS و BUZ الموجودة في الأجهزة الحقيقية. في الوقت نفسه ، لبناء ذاكرة ارتباطية ، يلزم وجود عناصر تخزين يمكن قراءتها دون إتلاف.

ذاكرة المكدس (مخزن)

الذاكرة المكدسة ، مثل الذاكرة الترابطية ، لا عنوان لها. يجب تنظيم ذاكرة المكدس في كل من الأجهزة وعلى مجموعة منتظمة من الذاكرة القابلة للتوجيه.

في حالة تنفيذ الأجهزة ، تشكل خلايا الذاكرة المكدسة مصفوفة أحادية البعد تتصل فيها الخلايا المجاورة ببعضها البعض بواسطة سلاسل بتات لنقل الكلمات (الشكل 5.4). في هذه الحالة ، هناك نوعان من الأجهزة (أ ، ب) ممكنان ، مبادئهما مختلفة. ضع في اعتبارك مبدئيًا الهيكل في الشكل. 5.4 ، أ.

تتم كتابة كلمة جديدة مستلمة من SHI في الخلية العلوية (صفر) ، بينما يتم نقل جميع الكلمات المكتوبة مسبقًا (بما في ذلك الكلمة الموجودة في الخلية 0) إلى الخلايا المجاورة ، والتي تكون أرقامها واحدة أخرى. القراءة ممكنة فقط من خلية الذاكرة العلوية (صفر). الوضع الرئيسي هو ϶ᴛᴏ القراءة مع الحذف. في هذه الحالة ، يتم إزاحة جميع الكلمات الأخرى في الذاكرة إلى الأعلى ، إلى الخلايا المجاورة ذات الأرقام الأقل. في مثل هذه الذاكرة ، يتم تنفيذ القاعدة: جاء آخر واحد - غادر أول واحد... يشار عادةً إلى الحزم من هذا النوع باسم مكدسات LIFO (Last In - First Out).

في بعض الحالات ، توفر أجهزة الذاكرة المكدسة أيضًا عملية قراءة كلمة من الخلية 0 دون حذفها وتحويل بقية الكلمات. عند استخدام مكدس لحفظ معلمات تهيئة وحدات التحكم في أي أجهزة كمبيوتر ، فمن الممكن عادةً قراءة محتويات أي خلية في المكدس دون حذفها ، ᴛ.ᴇ. قراءة محتويات ليس فقط الخلية 0.

يقال إن الكلمة الأولى التي يتم دفعها إلى المكدس تقع فوقها أسفل المكدس... يُقال أن الكلمة الأخيرة التي تم إرسالها (في الوقت المناسب) على المكدس موجودة أعلى المكدس... Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ ، الخلية N-1 هي الجزء السفلي من المكدس ، والخلية 0 هي الأعلى.

عادةً ما يتم تزويد مكدس الأجهزة برقم عداد مكدس ، يعرض العدد الإجمالي للكلمات المخزنة في الذاكرة (العدد = 0 - المكدس فارغ). عندما يكون المكدس ممتلئًا ، فإنه لا يسمح بمزيد من الكتابة.

يمكن تنفيذ مبدأ التراص لتنظيم الذاكرة ليس فقط في الأجهزة المصممة خصيصًا. يمكن أيضًا تنظيم مكدس البيانات على ذاكرة العنوان العادية مع الوصول العشوائي (مكدس البرامج). لتنظيم مكدس LIFO ، في هذه الحالة ، هناك حاجة إلى خلية ذاكرة أخرى (سجل) ، حيث يتم دائمًا تخزين عنوان الجزء العلوي من المكدس والذي يسمى عادةً مؤشر كومة... عادة ، يتم استخدام أحد السجلات الداخلية للمعالج كمؤشر مكدس. بالإضافة إلى ذلك ، البرنامج المناسب مطلوب. يوضح الرسم التخطيطي في الشكل مبادئ تكديس البيانات في ذاكرة العنوان العادية. 5.5

على عكس مكدس الأجهزة ، لا تتحرك البيانات الموجودة في حزمة البرامج عند كتابة أو قراءة رقم جديد. تتم كتابة كل كلمة جديدة في موقع الذاكرة التالي بالترتيب للكلمة الموجودة في مؤشر المكدس. بعد كتابة كلمة جديدة ، تزداد محتويات مؤشر المكدس بمقدار واحد (انظر الشكل 6.5). Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ ، ليست البيانات التي يتم نقلها في مكدس البرنامج ، ولكن الجزء العلوي من المكدس. عندما تتم قراءة كلمة من المكدس ، تحدث العملية العكسية. تتم قراءة الكلمة من الخلية التي يكون عنوانها في مؤشر المكدس ، وبعد ذلك يتم تقليل محتويات مؤشر المكدس بواحد.

إذا كانت الكلمات التي تم تحميلها حديثًا على المكدس موجودة في خلايا ذاكرة ذات عناوين متزايدة بشكل تسلسلي ، فسيتم استدعاء المكدس مباشرة.إذا كانت العناوين تتناقص بالتتابع ، إذن - معكوسة.في معظم الحالات ، يتم استخدام مكدس مقلوب ، والذي يرتبط بخصائص تنفيذ الأجهزة للعدادات داخل المعالج.

لماذا هذا الشكل من تنظيم الذاكرة مناسب؟ بالنظر إلى المستقبل ، يمكن ملاحظة أن أي تعليمات يتم تنفيذها في المعالج ، في الحالة العامة ، يجب أن تحتوي على رمز العملية (CPC) وعنوان المعاملين الأول والثاني وعنوان إدخال النتيجة. لتوفير الذاكرة وتقليل وقت تنفيذ تعليمات الجهاز بواسطة المعالج ، من المستحسن تقليل طول التعليمات. الحد الأقصى لهذا التخفيض هو طول الأمر الذي لم تتم معالجته ، ᴛ.ᴇ. مجرد COP. هذه التعليمات بالتحديد ممكنة مع تنظيم الذاكرة المكدس ، لأنه مع الترتيب الصحيح للمعاملات في المكدس ، يكفي استردادها بالتسلسل وتنفيذ العمليات المقابلة عليها.

بالإضافة إلى ذاكرة مكدس LIFO التي تمت مناقشتها أعلاه ، تستخدم أجهزة الكمبيوتر ذكريات مكدسة من نوع آخر ينفذ القاعدة: من جاء أولاً - غادر أولاً... يشار عادةً إلى الحزم من هذا النوع باسم مكدسات FIFO (الوارد أولاً - يخرج أولاً). تُستخدم ذاكرة المكدس هذه على نطاق واسع لتنظيم أنواع مختلفة من قوائم الانتظار (أوامر ، بيانات ، طلبات ، إلخ). يظهر الهيكل العام لمكدس الأجهزة من نوع FIFO في الشكل. 5.4 ، ب.

كما في الحالة السابقة ، تشكل خلايا الذاكرة المكدسة مصفوفة أحادية البعد تتصل فيها الخلايا المجاورة ببعضها البعض عن طريق سلاسل نقل الكلمات بت. يتم تسجيل كلمة جديدة مستلمة من SHI في الخلية العلوية (صفر) ، وبعد ذلك تتحرك على الفور لأسفل ويتم تسجيلها في آخر خلية شاغرة. إذا كانت المجموعة فارغة قبل الكتابة ، تنتقل الكلمة على الفور إلى الخلية التي تحمل الرقم N-1 ، ᴛ.ᴇ. إلى أسفل المكدس. القراءة ممكنة فقط من الخلية السفلية المرقمة N-1 (أسفل المجموعة). الوضع الرئيسي هو ϶ᴛᴏ القراءة مع الحذف. في هذه الحالة ، يتم نقل جميع الكلمات (المكتوبة) اللاحقة إلى الخلايا المجاورة ، والتي تكون أرقامها واحدة أخرى. عندما يكون المكدس ممتلئًا ، يمنع العداد (Count) عمليات الكتابة الإضافية على المكدس.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ ، على عكس مكدس LIFO ، فإن مكدس FIFO لا يحرك الجزء السفلي ، بل يحرك الجزء العلوي. تنتقل الكلمات المكتوبة إلى مكدس ما يرد أولاً يصرف أولاً (FIFO) تدريجياً من أعلى إلى أسفل ، حيث تُقرأ على أنها مهمة للغاية ، ويتم تحديد معدل الكتابة والقراءة بواسطة إشارات تحكم خارجية وليست مرتبطة ببعضها البعض.

لا يتم النظر في تنفيذ برنامج مكدس FIFO في هذا القسم ، نظرًا لأنه نادرًا ما يتم استخدامه في الممارسة.

طرق تنظيم الذاكرة - المفهوم والأنواع. تصنيف ومميزات فئة "طرق تنظيم الذاكرة" 2017 ، 2018.