طرائق العنونة في الحواسيب Addressing

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • طرائق العنونة في الحواسيب Addressing

    عنونه في حواسيب (طرايق)

    Addressing - Adressage

    العنونة في الحواسيب (طرائق ـ)

    يتألف الحاسوب من وحدة معالجة مركزيةCPU المعالج، تتصل بذاكرة لتخزين البرنامج والمعطيات. وتتواصل مع الطرفيات الخارجية عبر دارات الدخل/الخرج. ولكي تتمكن وحدة المعالجة المركزية من تبادل المعلومات مع وِجهة معينة دون غيرها، تقوم أولاً بإرسال كلمة اثنانية binary تحدد الوجهة المقصودة على المسرى bus، ويلي تلك الكلمة إرسال المعلومات المطلوبة أو استقبالها. وتسمى عملية تحديد الوجهة بالعنونة addressing. والعنوان تعريفاً هو رقم أو محرف أو مجموعة محارف تعرِّف تجهيزة معينة أو موضع تخزين محدداً. ويقوم العتاد hardware بتفكيك العنوان بهدف النفاذ إلى الموضع أو التجهيزة. يبيّن الشكل 1 مخططاً صندوقياً مبسطاً للحاسوب.

    الشكل (1) المخطط الصندوقي للحاسوب
    فضاء العناوين ونماذج العنونة

    الشكل (2) نماذج العنونة
    يمثل فضاء العناوين address space مجموعة المواضع التي يمكن للمعالج النفاذ إليها. ويعتمد حجمه على عرض مسرى العناوين وسجلات العنونة. وقد يستخدم الحاسوب للنفاذ إلى فضاء العناوين نموذجاً يسمى العنونة الخطية linear addressing أو المسطحة flat addressing. فيولّد المعالج مباشرةً عنوان الموضع في الذاكرة المادية، والذي يسمى العنوان الماديphysical address، ويضعه على مسرى العناوين من دون أي عملية حسابية. وتعاني هذه الطريقة، السهلة التنفيذ، صغرَ حجم الفضاء الممكن النفاذ إليه. وثمة نموذج آخر، وهو العنونة المقتطعة segmented addressing، يسمح بعنونة فضاء أكبر حجماً باستخدام سجلات مقتطعات segment registers، يشير كل منها إلى بداية منطقة معينة في الذاكرة. وينتج العنوان المادي من جمع محتوى سجل المقتطع وانزياحoffset الموضع عن بداية المقتطع، ولكن قد يحتاج الحاسوب إلى تنفيذ برامج يتجاوز حجمها سعة المقتطع الواحد. ولذا، تلجأ الحواسيب إلى العنونة الافتراضية virtual addressing، التي تتيح تنفيذ عدة برامج في آنٍ واحد، يتجاوز حجمها سعة الذاكرة المادية. فيُخزَّن عندئذٍ الجزء النشط فقط من كل برنامج في تلك الذاكرة. ويعنون المعالجُ المعطيات في فضائه بوساطة قيم تسمى العناوين المنطقية logical address، والتي تُترجم إلى عناوين مادية بوساطة وحدة إدارة الذاكرة memory management unit (MMU). يبيّن الشكل 2 هذه النماذج الثلاثة.
    مجموعة التعليمات
    تُمثَّل كل تعليمة حاسوب بمتتالية بتات. وتُقسم التعليمة إلى عدة حقول تبعاً لعناصرها المؤلفة لها، كما هو موضح في الشكل 3. وتفيد هذه التعليمات في معالجة المعطيات، وقراءتها من الذاكرة أو التخزين فيها، وتبادل المعطيات مع الطرفيات، والتحكم في تتابع البرنامج.
    الشكل (3) حقول التعليمية ثلاثية العناوين
    وقد تُرمّز التعليمات في صيغة format ثلاثية العناوين، إذ يفيد عنوانان في الحصول على معامِلي الدخل operands، ويُستخدم عنوان ثالث لتخزين النتائج. وقد تكون التعليمة ثنائية العناوين، ويؤدي عندئذٍ أحد العنوانين دوراً مضاعفاً، فهو عنوان مصدر ووِجهة في آنٍ واحد. أما التعليمات الأحادية العنوان، فيُضمَر فيها العنوان الثاني، وهي تشير إلى سجل معالج، يسمى المراكِم accumulator. وتُصاغ في بعض الحواسيب تعليمات عديمة العنوان، للتعامل مع المكدسstack.
    أنماط العنونة addressing modes
    يمكن الحصول على معامِلات التعليمات المخزَّنة في الذاكرة بطرائق متعددة، تسمى أنماط العنونة. ولتحديد نمط العنونة المستخدم في التعليمة، يمكن اعتماد أرمزة عمليات opcodesمختلفة، أو تخصيص بت أو أكثر في صيغة التعليمة لتعيين النمط. وأهم الأنماط المعتمدة:
    1ـ العنونة الفورية immediate addressing: تُحدَّد قيمة المعامِل صراحةً في التعليمة، ويفيد ذلك في تعريف الثوابت أو إسناد القيم الابتدائية إلى المتغيرات. وتتميز بأنها لا تتطلب أي نفاذ إلى الذاكرة لجلب المعامِل، ولكنها مقيَّدة بحجم حقل العنونة.
    2ـ العنونة المباشرة direct addressing: وتحوي التعليمة عنوان المعامِل الفعلي. وهي تفيد في النفاذ إلى المتغيرات الشاملة global. وتتميز هذه الطريقة بأن الحصول على المعامِل يحتاج إلى نفاذ وحيد إلى الذاكرة. ولكنها تعاني الحجمَ المحدود لفضاء العناوين المتاح. وتسمى أحياناً بالعنونة المطلقة absolute add..
    3ـ العنونة غير المباشرة indirect addressing: يشير حقل العنونة في التعليمة إلى عنوان كلمة في الذاكرة تحوي العنوان الفعلي للمعامِل. ولهذه الطريقة مجال عنونة واسع، ولكنها تتطلب عمليتي نفاذ إلى الذاكرة للحصول على المعامِل، وهذا من شأنه إبطاء التنفيذ. ويمكن استخدام عنونة غير مباشرة متعددة المستويات، وتسمى عندئذٍ بالعنونة المتشلشلة cascaded. وفي كل مستوى، يشير حقل العنونة إلى عنوان موضع يحوي مؤشراً إلى المستوى التالي. وإذا كان حقل العنونة يشير إلى سجل معين، بدلاً من احتوائه على عنوان موضع في الذاكرة، سميت الطريقة بالعنونة غير المباشرة بالسجلregister-indirect، وهي أسرع تنفيذاً من العنونة غير المباشرة.
    4ـ العنونة بالسجل register addressing: ويشير حقل العناوين هنا إلى سجل، بدلاً من العنوان، ولا تحتاج هذه الطريقة إلى أي نفاذ إلى الذاكرة، ولكنها محدودة من حيث فضاء العناوين المتاح.
    5 ـ العنونة بالانتقال displacement: وهو نمط فعال يجمع إمكانات العنونة المباشرة وغير المباشرة بالسجل. وتتطلب هذه الطريقة أن يكون للتعليمة حقلا عنونة، وأن يكون أحدهما صريحاً. أما الحقل الآخر، فهو يشير إلى سجل تُضاف محتوياته إلى القيمة الصريحة للحصول على العنوان الفعلي. وقد تُستخدم هذه الطريقة بأحد الأشكال الثلاثة الآتية:
    5 ـ 1 العنونة النسبية relative addressing: عندما يكون السجل المشار إليه هو عداد البرنامجPC، يُضاف عنوان التعليمة الحالية إلى حقل العنونة الصريح للحصول على العنوان الفعلي.

    الشكل (4) أنماط العنونة في الحاسوب
    5ـ2 العنونة بسجل القاعدة base-register addressing: تشير التعليمة صراحةً أو ضمناً إلى سجل خاص يسمى سجل القاعدة، تضاف إليه قيمة حقل العنونة للحصول على العنوان الفعلي. وقد يتوافر في النظام عدة سجلات قاعدة، يشير كل منها إلى منطقة معينة في الذاكرة.
    5 ـ3 العنونة بالدليل indexed addressing: وفي هذه الحالة، يحوي حقل العنونة عنواناً في الذاكرة، في حين يحوي السجل المشار إليه انتقالاً موجباً من ذلك العنوان. وقد تكون الإشارة إلى السجل ضمنية أو صريحة. ويفيد هذا النمط في العمليات التكرارية، التي تتطلب زيادة سجل الدليل أو إنقاصه بعد كل تكرار. وقد تكون هذه الزيادة آلية، وتسمى عندئذٍ بالعنونة الآلية بالدليل auto-indexing. كما تسمح بعض الحواسيب بإجراء العنونة غير المباشرة مع العنونة بالدليل. فإذا جرت العنونة بالدليل بعد العنونة غير المباشرة، سميت الطريقة بالعنونة اللاحقة بالدليل post-indexing. أما إذا جرى خلاف ذلك، فإنها تسمى بالعنونة القبلية بالدليل pre-indexing.
    5 ـ 4 العنونة بالمكدس: لاتحتاج هذه التعليمات إلى تحديد المعامِلات، إذ تؤخذ ضمناً من قمة المكدس. وعند الحاجة إلى معامِلين، كما في تعليمة الجمع، يؤخذ المعامِل الأول من قمة المكدس، والمعامل الثاني من الموضع الذي يسبقه. ويبيّن الشكل 4 الأنماط المتعددة للعنونة.
    أمثلة عن العنونة في المعالجين بنتيومPentium4 وباور بي سي Power PC
    1ـ العنونة في المعالج بنتيوم 4
    يعتمد المعالج نموذج العنونة المقتطعة للنفاذ إلى أي موضع في الذاكرة. ويتوافر في هذا المعالج ستة سجلات مقتطعات، ويحوي المعالج أيضاً سجلين لتشكيل العنوان، وهما سجلا الدليل والقاعدة.
    إذا كان المعامِل في أحد سجلات المعالج، فمن الممكن استعمال النمط الفوري أو نمط العنونة بالسجل. أما إذا كان المعامِل في الذاكرة، فيُحدَّد الموضع بوساطة المقتطع والانزياح. وقد يُضمَّن الانزياح في نمط الانتقال في التعليمة، وينتج العنوان من جمع الانزياح وعنوان بداية المقتطع المعني. ويمكن استعمال سجل القاعدة مع الانتقال، فتضم التعليمة عندئذٍ مقدار الانتقال الواجب إضافته إلى سجل القاعدة.
    أما في نمط الدليل المقيَّس scaled index مع الانتقال، تؤخذ قيمة الانتقال من التعليمة. ويُضرب محتوى سجل الدليل بقيمة العامل، ثم يُضاف إليه مقدار الانتقال. ويفيد هذا النمط في الدلالة على الصفيفات arrays. وقد يستعمل المعالجُ نمطَ القاعدة والدليل والانتقال، وفيه تُجمع محتويات سجل الدليل والقاعدة والانتقال للحصول على العنوان الفعلي، ويفيد ذلك في النفاذ إلى صفيفة ثنائية البعد. ويتوافر في المعالج نمط الدليل المقيَّس والقاعدة والانتقال، وتُجمع فيه محتويات سجل الدليل بعد جدائها بقيمة العامل، إلى محتويات القاعدة والانتقال. وأخيراً يمكن عنونة المعامِل عنونة نسبية، وعندئذٍ يضاف الانتقال إلى عداد البرنامج.
    2ـ العنونة في المعالج باور بي سي
    ينتمي هذا المعالج إلى فئة البنى ذات التعليمات الموجزة RISC، لذا فهو يختلف عن المعالج بنتيوم من حيث استخدامه لأنماط عنونة بسيطة. فهو يستخدم لتعليمات التحميل والتخزين نمط عنونة غير مباشرة بالسجل مع دليل فوريregister indirect with immediate index، إذ تتضمن التعليمة قيمة الانزياح التي تضاف إلى سجل القاعدة. ويستخدم أيضاً طريقة ثانية، وهي العنونة غير المباشرة بالسجل مع نمط الدليلregister indirect with index mode، والتي تُجمع فيها محتويات سجل الدليل والقاعدة معاً. وفي حالة تعليمات التفريع، يُستخرج العنوان من القيمة الفورية المحتواة في التعليمة. ويستخدم المعالجُ أيضاً العنونةَ النسبية اعتماداً على عداد البرنامج.
    محمد نوار العوا
يعمل...
X