تنظيم السجلات في المعالج الدقيق Register Organization

اقرأ في هذا المقال


تنظيم السجلات (Register organization) هو ترتيب السجلات في المعالج الدقيق، يقرر مصممو المعالج تنظيم السجلات في المعالج، قد يكون للمعالجات المختلفة تنظيم وترتيب سجلات مختلف، اعتمادًا على الأدوار التي تلعبها السجلات، يمكن تصنيفها إلى نوعين وهما: السجل المرئي للمستخدم (user-visible register) والتحكم (control) وسجل الحالة (status register).

ما هو السجل Register

السجلات هي وحدات الذاكرة الأصغر والأسرع التي يمكن الوصول إليها في وحدة المعالجة المركزية (CPU)، وفقًا للتسلسل الهرمي للذاكرة، تعمل السجلات الموجودة في المعالج بمستوى أعلى من الذاكرة الرئيسية (main memory) وذاكرة التخزين المؤقت (cache memory)، تسمّى السجلات التي تستخدمها الوحدة المركزية أيضًا باسم “سجلات المعالج” (processor registers)، يمكن أن يحتوي السجل على التعليمات أو موقع العنوان أو المعاملات (operands)، في بعض الأحيان، يتم تسجيل التعليمات كجزء من نفسها.

أنواع السجلات Types of Registers

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

سجلات المستخدم المرئية (User Visible Registers):

  • سجل الأغراض العامة (General Purpose Register).
  • سجل العنوان (Address Register).
  • كود الشرط (Condition Codes).

سجلات التحكم والحالة (Control and Status Registers):

  • عداد البرنامج (Program Counter).
  • سجل التعليمات (Instruction Register).
  • سجل عنوان الذاكرة (Memory Address Register).

سجلات المستخدم المرئية User-Visible Registers

هذه السجلات مرئية للتجميع (assembly) أو مبرمجي لغة الآلة ويستخدمونها بشكل فعّال لتقليل مراجع الذاكرة في التعليمات، حسنًا، لا يمكن الإشارة إلى هذه السجلات إلّا باستخدام لغة الآلة أو التجميع، يتم مناقشة السجلات التي تقع في هذه الفئة أدناه:

سجل الأغراض العامة General Purpose Register

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

سجل البيانات Data Register

يصف المصطلح نفسه أنّ هذه السجلات تستخدم للاحتفاظ بالبيانات، لكن المبرمجين لا يمكنهم استخدام هذه السجلات لحساب عنوان المعامل.

سجل العنوان Address Register

الآن، تحتوي سجلات العنوان على عنوان المعامل أو يمكن أن تعمل أيضًا كسجل للأغراض العامة، قد يتم تخصيص سجل عنوان لوضع عنونة معين، دعونا نفهم هذا بالأمثلة:

  • سجل مؤشر المقطع (Segment Pointer Register): تتطلب الذاكرة المقسمة إلى أجزاء تسجيل مقطع للاحتفاظ بالعنوان الأساسي للمقطع، يمكن أن يكون هناك العديد من سجلات المقاطع، حيث يمكن استخدام سجل مقطع واحد للاحتفاظ بالعنوان الأساسي للمقطع الذي يشغله نظام التشغيل، يمكن أن يحتفظ سجل المقطع الآخر بالعنوان الأساسي للمقطع المخصص للمعالج.
  • سجل الفهرس (Index Register): يتم استخدام سجل الفهرس للعنونة المفهرسة وتكون القيمة الأولية هي (0)، بشكل عام، يتم استخدامه لاجتياز مواقع الذاكرة، بعد كل مرجع، يتم زيادة سجل الفهرس أو إنقاصه بمقدار (1)، حسب طبيعة العملية، في وقت ما قد يتم فهرسة سجل الفهرس تلقائيًا.
  • سجل مؤشر المكدس (Stack Pointer Register): يحتوي سجل المكدس على العنوان الذي يشير إلى قمة المكدس.

كود الشرط Condition Code

أكواد الشرط هي بتات العلم (flag bits)، التي هي جزء من سجل التحكم، يتم تعيين رموز الحالة بواسطة المعالج كنتيجة لعملية ما ويتم قراءتها ضمنًا من خلال تعليمات الجهاز، لا يُسمح للمبرمجين بتعديل الأكواد الشرطية، بشكل عام، يتم اختبار أكواد الحالة أثناء تشغيل الفرع الشرطي.

سجلات التحكم والحالة Control and Status Registers

يحتفظ سجل التحكم والحالة بالعنوان أو البيانات المهمة للتحكم في تشغيل المعالج، أهم شيء هو أنّ هذه السجلات غير مرئية للمستخدمين، سنناقش أدناه جميع سجلات التحكم والحالة الضرورية لتنفيذ التعليمات:

عداد البرنامج Program Counter

عداد البرنامج هو سجل معالج يحتوي على عنوان التعليمات التي يجب تنفيذها بعد ذلك، إنّه معالج يقوم بتحديث عداد البرنامج بعنوان التعليمات التالية التي سيتم جلبها للتنفيذ.

سجل التعليمات Instruction Register

يحتوي سجل التعليمات على التعليمات التي يتم جلبها حاليًا، يساعد في تحليل كود التشغيل والمعامل الموجود في التعليمات.

سجل عنوان الذاكرة Memory Address Register (MAR)

سجل عنوان الذاكرة يحمل عنوان موقع الذاكرة.

سجل ذاكرة التخزين المؤقت Memory Buffer Register (MBR)

يحتفظ سجل ذاكرة التخزين المؤقت بالبيانات التي يجب كتابتها في موقع الذاكرة أو يحتفظ بالبيانات التي تمت قراءتها مؤخرًا، تستخدم سجلات عناوين الذاكرة (MAR) وسجلات ذاكرة التخزين المؤقت (MBR) لنقل البيانات بين المعالج والذاكرة، بصرف النظر عن السجلات المذكورة أعلاه، يوجد لدى العديد من المعالجات سجل يسمّى (Program Status Word (PSW))، كما توحي الكلمة أنّها تحتوي على معلومات الحالة، الحقول المضمنة في السجل (Program Status Word (PSW)):

  • الإشارة (Sign): يحتوي هذا الحقل على جزء الإشارة الناتج لآخر عملية حسابية تمّ إجراؤها.
  • صفر (Zero): يتم تعيين هذا الحقل عندما تكون نتيجة العملية صفرًا.
  • الحمل (Carry): يتم تعيين هذا الحقل عندما ينتج عن عملية حسابية حمل أو استعارة.
  • متساوي (Equal): إذا نتج عن عملية منطقية، يتم تعيين تساوي بت.
  • الفائض (Overflow): يشير هذا البت إلى الفائض الحسابي.
  • المقاطعة (Interrupt): تمّ تعيين هذا البت لتمكين المقاطعات أو تعطيلها.
  • المشرف (Supervisor): يشير هذا البت إلى ما إذا كان المعالج ينفذ في وضع المشرف أو في وضع المستخدم.

إذن، هذه هي أنواع السجلات التي يمتلكها المعالج، ينظم مصمم المعالج السجلات حسب متطلبات المعالج.


شارك المقالة: