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

عداد البرنامج ( PC) [ 1 ] هو سجل يُخزّن مكان تنفيذ برنامج الحاسوب بواسطة المعالج . [ 2 ] ويُطلق عليه أيضًا اسم مؤشر التعليمات (IP) في معالجات Intel x86 و Itanium ، ويُسمى أحيانًا سجل عنوان التعليمات (IAR)، [ 3 ] [ 1 ] أو عداد التعليمات ، [ 4 ] أو ببساطة جزء من مُسلسل التعليمات. [ 5 ]
عادةً، يخزن عداد البرنامج (PC) عنوان الذاكرة للتعليمات . كما أنه يُزاد عادةً بعد جلب التعليمات، وبالتالي يشير إلى التعليمات التالية المراد تنفيذها. [ 6 ] بالنسبة للمعالجات التي تزيد قيمة عداد البرنامج قبل الجلب، فإنه يشير إلى التعليمات قيد التنفيذ. في بعض المعالجات، يشير عداد البرنامج إلى مسافة أبعد من التعليمات الحالية. على سبيل المثال، في معالج ARM7 ، تعكس قيمة عداد البرنامج الظاهرة للمبرمج الجلب المسبق للتعليمات، وتُقرأ كعنوان التعليمات الحالية مضافًا إليه 8 في حالة ARM، أو مضافًا إليه 4 في حالة Thumb. [ 7 ] بالنسبة للمعالجات الحديثة، يُصبح تحديد موقع التنفيذ في البرنامج أكثر تعقيدًا بسبب التوازي على مستوى التعليمات والتنفيذ خارج الترتيب .
بشكل افتراضي، يجلب المعالج التعليمات من الذاكرة بالتسلسل ، لكن تعليمة نقل التحكم تُغير هذا التسلسل بكتابة قيمة في عداد البرنامج (PC). يسمح التفرع بجلب التعليمة التالية من مكان آخر في الذاكرة. لا يقتصر استدعاء الدالة على التفرع فحسب، بل يحفظ قيمة عداد البرنامج أيضًا. تعيد تعليمة العودة قيمة عداد البرنامج لاستئناف التنفيذ بالتعليمة التالية للاستدعاء عن طريق التفرع إلى القيمة المحفوظة. يسمح النقل المشروط بتحقق شرط معين للحاسوب باتباع تسلسل مختلف في ظروف مختلفة.
التنفيذ على الأجهزة
في وحدة المعالجة المركزية البسيطة (CPU)، يُعدّ عداد البرنامج (PC) عدادًا رقميًا (وهو أصل مصطلح "عداد البرنامج")، وقد يكون أحد سجلات الأجهزة المتعددة . تبدأ دورة التعليمات [ 8 ] بعملية جلب ، حيث تضع وحدة المعالجة المركزية قيمة عداد البرنامج على ناقل العناوين لإرسالها إلى الذاكرة. تستجيب الذاكرة بإرسال محتويات ذلك الموقع على ناقل البيانات . (هذا هو نموذج الحاسوب ذي البرنامج المخزن ، حيث تحتوي مساحة ذاكرة واحدة على كلٍ من التعليمات القابلة للتنفيذ والبيانات العادية. [ 9 ] ) بعد عملية الجلب، تنتقل وحدة المعالجة المركزية إلى التنفيذ ، متخذةً إجراءً ما بناءً على محتويات الذاكرة التي حصلت عليها. في مرحلة ما من هذه الدورة، يتم تعديل عداد البرنامج بحيث تكون التعليمات التالية مختلفة (عادةً، يتم زيادته بحيث تبدأ التعليمات التالية من عنوان الذاكرة الذي يلي مباشرةً آخر موقع ذاكرة للتعليمات الحالية).
كما هو الحال مع سجلات المعالج الأخرى، قد يكون عداد البرنامج (PC) عبارة عن مجموعة من الأقفال الثنائية، يمثل كل منها بتًا واحدًا من قيمة عداد البرنامج. [ 10 ] يرتبط عدد البتات (عرض عداد البرنامج) ببنية المعالج. على سبيل المثال، قد يستخدم معالج "32 بت" 32 بتًا لمعالجة 2^ 32 وحدة ذاكرة. في بعض المعالجات، يعتمد عرض عداد البرنامج على الذاكرة القابلة للعنونة؛ على سبيل المثال، تحتوي بعض وحدات التحكم الدقيقة AVR على عداد برنامج يلتف بعد 12 بتًا. [ 11 ]
إذا كان عداد البرنامج عدادًا ثنائيًا، فقد يزيد قيمته عند تطبيق نبضة على مدخل العد التصاعدي الخاص به، أو قد يقوم المعالج المركزي بحساب قيمة أخرى وتحميلها في عداد البرنامج عن طريق نبضة على مدخل التحميل الخاص به. [ 12 ]
لتحديد التعليمات الحالية، يمكن دمج عداد البرنامج (PC) مع سجلات أخرى تحدد مقطعًا أو صفحة . يسمح هذا الأسلوب باستخدام عداد برنامج بعدد بتات أقل بافتراض أن معظم وحدات الذاكرة المهمة تقع ضمن النطاق الحالي.
التداعيات في بنية الآلة
يفترض استخدام عداد رقمي (PC) يعمل عادةً بشكل متزايد أن وظيفة الحاسوب هي تنفيذ سلسلة خطية من التعليمات. يُعد هذا العداد الرقمي أساسيًا في بنية فون نيومان . لذا، يكتب المبرمجون تدفق تحكم تسلسليًا حتى للخوارزميات التي لا تتطلب التسلسل. وقد أدى ما يُعرف بـ" عنق زجاجة فون نيومان " إلى أبحاث في الحوسبة المتوازية ، [ 13 ] بما في ذلك نماذج غير فون نيومان أو نماذج تدفق البيانات التي لا تستخدم عدادًا رقميًا؛ فعلى سبيل المثال، بدلًا من تحديد خطوات تسلسلية، قد يُحدد المبرمج عالي المستوى الوظيفة المطلوبة ، بينما يُحددها المبرمج منخفض المستوى باستخدام المنطق التوافقي .
وقد أدى هذا البحث أيضاً إلى إيجاد طرق لجعل وحدات المعالجة المركزية التقليدية القائمة على أجهزة الكمبيوتر الشخصية تعمل بشكل أسرع، بما في ذلك:
- تقنية التوازي ، حيث تقوم مكونات مختلفة في وحدة المعالجة المركزية بتنفيذ مراحل مختلفة من تعليمات متعددة في وقت واحد.
- بنية كلمة التعليمات الطويلة جدًا (VLIW)، حيث يمكن لتعليمات واحدة أن تحقق تأثيرات متعددة.
- تقنيات للتنبؤ بالتنفيذ خارج الترتيب وإعداد التعليمات اللاحقة للتنفيذ خارج التسلسل المعتاد.
العواقب في البرمجة عالية المستوى
لا تزال لغات البرمجة الحديثة عالية المستوى تتبع نموذج التنفيذ التسلسلي، بل إن إحدى الطرق الشائعة لتحديد أخطاء البرمجة هي "تنفيذ الإجراء" حيث يُحدد المبرمج نقطة التنفيذ بإصبعه كما يفعل الحاسوب الشخصي. وتُعدّ لغة البرمجة عالية المستوى في جوهرها لغة الآلة لآلة افتراضية، [ 14 ] وهي معقدة للغاية بحيث لا يمكن بناؤها كأجهزة مادية، بل تتم محاكاتها أو تفسيرها بواسطة البرمجيات.
ومع ذلك، فإن نماذج البرمجة الجديدة تتجاوز برمجة التنفيذ التسلسلي:
- عند كتابة برنامج متعدد الخيوط ، يمكن للمبرمج كتابة كل خيط كسلسلة من التعليمات دون تحديد توقيت أي تعليمة بالنسبة للتعليمات في الخيوط الأخرى.
- في البرمجة الموجهة بالأحداث ، قد يكتب المبرمج تسلسلات من التعليمات للاستجابة للأحداث دون تحديد تسلسل عام للبرنامج.
- في برمجة تدفق البيانات ، يمكن للمبرمج كتابة كل قسم من أقسام خط أنابيب الحوسبة دون تحديد التوقيت بالنسبة للأقسام الأخرى.
انظر أيضاً
- التنبؤ بالتفرع – صفحات الدوائر الرقمية التي تعرض أوصافًا مختصرة لأهداف إعادة التوجيه
- ذاكرة التخزين المؤقت للتعليمات – ذاكرة التخزين المؤقت للأجهزة في وحدة المعالجة المركزية. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- دورة التعليمات – دورة التعليمات الأساسية في الحاسوب
- وحدة التعليمات - مكون الحاسوب
- مسار التعليمات – طريقة لتحسين التوازي على مستوى التعليمات. صفحات تعرض أوصافًا مختصرة لأهداف إعادة التوجيه.
- سجل التعليمات - سجل في وحدة التحكم بوحدة المعالجة المركزية يحتوي على التعليمات قيد التنفيذ حاليًا
- جدولة التعليمات – تقنية تحسين أداء المترجم
- كلمة حالة البرنامج - عنصر معالج الكمبيوتر
مراجع
- 1 2 هايز، جون ب. (1978). هندسة الحاسوب وتنظيمه . ماكجرو هيل. ص 245. ISBN 0-07-027363-4.
- ↑ بيتس، مارتن (2011). "تشغيل المتحكمات الدقيقة". متحكمات PIC الدقيقة . إلسيفير. ص 27-44 . doi : 10.1016/b978-0-08-096911-4.10002-3 . ISBN 978-0-08-096911-4عداد البرنامج (PC) هو
سجلٌّ يُستخدم لتتبع تسلسل البرنامج، وذلك بتخزين عنوان التعليمة التي يتم تنفيذها حاليًا. ويتم تحميله تلقائيًا بالصفر عند تشغيل الشريحة أو إعادة ضبطها. ومع تنفيذ كل تعليمة، يتم زيادة قيمة عداد البرنامج (زيادة بمقدار واحد) للإشارة إلى التعليمة التالية.
- ↑ ميد، كارفر ؛ كونواي، لين (1980). مقدمة في أنظمة VLSI . ريدينغ، الولايات المتحدة الأمريكية: أديسون-ويسلي . ISBN 0-201-04358-0.
- ↑ مبادئ التشغيل، النوع 701 والمعدات المرتبطة به (ملف PDF) . شركة IBM . 1953.
- ↑ هاري كاتزان (1971)، تنظيم الحاسوب والنظام/370 ، شركة فان نوستراند رينهولد ، نيويورك، الولايات المتحدة الأمريكية، LCCCN 72-153191
- ↑ سيلبرشاتز، أبراهام ؛ غاني، غريغ؛ غالفين، بيتر ب. (أبريل 2018). مفاهيم أنظمة التشغيل . الولايات المتحدة: وايلي . ص 27، G-29. ISBN 978-1-119-32091-3.
- ↑ "دليل مرجعي لمعالج ARM7TDMI (الإصدار 3)" . شركة ARM المحدودة . 2001. تم الاطلاع عليه بتاريخ 5 يناير 2026 .
- ↑ جون ل. هينيسي وديفيد أ. باترسون (1990)، هندسة الحاسوب: منهج كمي ، دار مورغان كوفمان للنشر ، بالو ألتو، الولايات المتحدة الأمريكية، رقم ISBN 1-55860-069-8
- ↑ ب. راندال (1982)، أصول الحواسيب الرقمية ، سبرينغر-فيرلاغ ، برلين، ألمانيا
- ↑ سي. جوردون بيل وآلان نيويل (1971)، هياكل الحاسوب: قراءات وأمثلة ، شركة ماكجرو هيل للنشر ، نيويورك، الولايات المتحدة الأمريكية
- ↑ أرنولد، ألفريد (2020) [1996، 1989]. "هـ. الرموز المُعرَّفة مسبقًا" . مُجمِّع الماكرو AS - دليل المستخدم . الإصدار 1.42. ترجمة: أرنولد، ألفريد؛ هيلس، ستيفان؛ كانثاك، ستيفان؛ سيلكه، أوليفر؛ دي توماسي، فيتوريو. ص. الجدول هـ.3: الرموز المُعرَّفة مسبقًا - الجزء 3. مؤرشف من الأصل بتاريخ 28-02-2020 . تم الاسترجاع بتاريخ 28-02-2020 .
3.2.12. وضع الالتفاف [...] سيفترض AS أن عداد برنامج المعالج لا يمتلك الطول الكامل البالغ 16 بتًا المحدد بواسطة البنية، بل طولًا كافيًا تمامًا لعنونة ذاكرة القراءة فقط الداخلية (ROM). على سبيل المثال، في حالة
AT90S8515
، هذا يعني 12 بتًا، أي ما يعادل 4 كيلوبايت أو 8 كيلوبايت. يسمح هذا الافتراض بإنشاء فروع نسبية من بداية ذاكرة القراءة فقط (ROM) إلى نهايتها والعكس، وهو ما قد يؤدي إلى خطأ "خارج الفرع" عند استخدام العمليات الحسابية الصارمة. هنا، تعمل هذه الفروع لأن بتات الحمل الناتجة عن حساب عنوان الهدف تُهمل. [...] في حالة المعالج AT90S8515 المذكور أعلاه، يُعد هذا الخيار ضروريًا لأنه الطريقة الوحيدة لإجراء قفزة مباشرة عبر مساحة العناوين بأكملها [...]
- ↑ ووكر، بي إس (1967). مقدمة في هندسة الحاسوب . لندن، المملكة المتحدة: مطبعة جامعة لندن . رقم ISBN 0-340-06831-0.
- ↑ إف بي تشامبرز، دي إيه دوس، وجي بي جونز (1984)، الحوسبة الموزعة ، دار النشر الأكاديمية ، أورلاندو، الولايات المتحدة الأمريكية، رقم ISBN 0-12-167350-2
- ↑ دوغلاس هوفستاتر (1980)، غودل، إيشر، باخ: ضفيرة ذهبية أبدية ، دار بنجوين للنشر ، هارموندسوورث، المملكة المتحدة، رقم ISBN 0-14-005579-7
- تدفق التحكم
- وحدات المعالجة المركزية
- السجلات الرقمية
