سجل المكدس

سجل المكدس ، المعروف أيضًا بمؤشر المكدس ، هو سجل في المعالج المركزي للحاسوب يُستخدم لتتبع مسار مكدس الاستدعاءات . في الحواسيب ذات البنية المُجمِّعة ، قد يكون هذا السجل مخصصًا. أما في الحواسيب التي تحتوي على عدة سجلات للأغراض العامة ، فقد يكون سجلًا محجوزًا وفقًا للعرف، كما هو الحال في بنى IBM System/360 و z/Architecture و RISC ، أو قد يكون سجلًا مُبرمجًا لاستخدامه في تعليمات استدعاء الإجراءات والعودة، كما هو الحال في بنى PDP-11 و VAX و Intel x86 . بعض التصاميم، مثل Data General Eclipse، لم تكن تحتوي على سجل مخصص، بل استخدمت عنوان ذاكرة مخصصًا لهذه الوظيفة.

لم تكن أجهزة الكمبيوتر قبل أواخر الستينيات - مثل PDP-8 و HP 2100 - مزودة بمترجمات تدعم الاستدعاء الذاتي . كانت تعليمات البرامج الفرعية فيها عادةً ما تحفظ الموقع الحالي في عنوان القفز، ثم تُعيّن عداد البرنامج إلى العنوان التالي . [ 1 ] ورغم أن هذا أبسط من استخدام المكدس، إلا أنه نظرًا لوجود موقع عودة واحد فقط لكل قسم من أقسام التعليمات البرمجية للبرنامج الفرعي، فإنه لا يمكن تنفيذ الاستدعاء الذاتي دون بذل جهد كبير من جانب المبرمج.

قد تحتوي آلة المكدس على سجلين أو أكثر للمكدس - أحدهما يتتبع مكدس الاستدعاء ، والآخر (الآخرون) يتتبع مكدس (مكدسات) أخرى.

محرك المكدس

تخزن المعالجات الأبسط مؤشر المكدس في سجل أجهزة عادي ، وتستخدم وحدة الحساب والمنطق (ALU) لمعالجة قيمته. أما في المعالجات التي تحتوي على تعليمات لدفع العناصر إلى المكدس وسحبها منه، فتُنفذ هذه التعليمات إما باستخدام دورات معالجة مركزية متعددة مدمجة أو تعليمات دقيقة ، أو تُترجم إلى عمليات دقيقة متعددة ، وذلك لجمع/طرح مؤشر المكدس بشكل منفصل، وإجراء عمليات التحميل/التخزين في الذاكرة. [ 2 ]

تحتوي المعالجات الأحدث من هذا النوع على محرك مكدس مخصص لتحسين عمليات المكدس. وكان معالج بنتيوم إم أول معالج x86 يُدخل محرك المكدس. في تنفيذه، يُقسّم مؤشر المكدس بين سجلين: ESP O ، وهو سجل 32 بت، وESP d ، وهي قيمة دلتا 8 بت تُحدّث مباشرةً بواسطة عمليات المكدس. تعمل رموز العمليات PUSH وPOP وCALL وRET مباشرةً مع سجل ESP d . إذا كان ESP d قريبًا من تجاوز السعة أو تمت الإشارة إلى سجل ESP من تعليمات أخرى (عندما يكون ESP d ≠ 0)، تُضاف عملية مزامنة دقيقة تُحدّث ESP O باستخدام وحدة الحساب والمنطق (ALU) وتُعيد ضبط ESP d إلى 0. ظل هذا التصميم دون تغيير يُذكر في معالجات إنتل اللاحقة، على الرغم من توسيع ESP O إلى 64 بت. [ 3 ]

تم اعتماد محرك مكدس مشابه لمحرك إنتل في بنية AMD K8 الدقيقة . في معالج Bulldozer ، تم الاستغناء عن الحاجة إلى عمليات التزامن الدقيقة، لكن التصميم الداخلي لمحرك المكدس غير معروف. [ 3 ]

مراجع

  1. سالومون، ديفيد (فبراير 1993) [1992]. كُتب في جامعة ولاية كاليفورنيا، نورثريدج، كاليفورنيا، الولايات المتحدة الأمريكية. تشيفرز، إيان د. (محرر). المُجمِّعات والمُحمِّلات (ملف PDF) . سلسلة إليس هوروود في الحواسيب وتطبيقاتها (  الطبعة الأولى). تشيستر، غرب ساسكس، المملكة المتحدة: إليس هوروود المحدودة / مجموعة سيمون وشوستر الدولية . ISBN 0-13-052564-2مؤرشف (PDF) من الأصل بتاريخ 23 مارس 2020. تم الاطلاع عليه بتاريخ 1 أكتوبر 2008. تحفظ معظم الحواسيب عنوان العودة إما في المكدس، أو في أحد المسجلات، أو في الكلمة الأولى من الإجراء (وفي هذه الحالة ، يجب تخزين أول تعليمة قابلة للتنفيذ من الإجراء في الكلمة الثانية). إذا تم استخدام الطريقة الأخيرة، فإن العودة من الإجراء هي قفزة إلى موقع الذاكرة الذي يحتوي عنوانه على الكلمة الأولى من الإجراء.(xiv+294+4 صفحات)
  2. ستوكس، جون "هانيبال" (25-02-2004). "نظرة على قلب سينترينو: بنتيوم إم" . archive.arstechnica.com . ص 5. 
  3. 1 2 فوغ، أغنر. "البنية الدقيقة لوحدات المعالجة المركزية من إنتل، وإيه إم دي، وفيا" (ملف PDF) . الجامعة التقنية في الدنمارك.