عداد البرامج

عداد البرنامج ( PC ) ، [1] يُطلق عليه عادةً مؤشر التعليمات ( IP ) في معالجات Intel x86 و Itanium الدقيقة ، ويُطلق عليه أحيانًا سجل عنوان التعليمات ( IAR )، [2] [1] عداد التعليمات ، [3] أو مجرد جزء من مُسلسل التعليمات، [4] هو سجل معالج يشير إلى مكان وجود الكمبيوتر في تسلسل برنامجه . [ 5] [nb 1]
عادةً، يتم زيادة حجم الكمبيوتر الشخصي بعد جلب تعليمة ، ويحمل عنوان الذاكرة (" يشير إلى") التعليمة التالية التي سيتم تنفيذها. [6] [nb 2]
عادةً ما تقوم المعالجات بجلب التعليمات بشكل متسلسل من الذاكرة، ولكن تعليمات نقل التحكم تغير التسلسل عن طريق وضع قيمة جديدة في الكمبيوتر الشخصي. وتشمل هذه الفروع (والتي تسمى أحيانًا القفزات)، ومكالمات البرامج الفرعية ، والإرجاعات . يسمح النقل المشروط بصحة بعض التأكيدات للكمبيوتر باتباع تسلسل مختلف في ظل ظروف مختلفة.
يوفر الفرع إمكانية جلب التعليمات التالية من مكان آخر في الذاكرة. ولا يقوم استدعاء البرنامج الفرعي بالتفريع فحسب، بل يحفظ أيضًا المحتويات السابقة للكمبيوتر الشخصي في مكان ما. ويقوم الإرجاع باسترداد المحتويات المحفوظة للكمبيوتر الشخصي ووضعها مرة أخرى في الكمبيوتر الشخصي، واستئناف التنفيذ المتسلسل بالتعليمات التي تلي استدعاء البرنامج الفرعي.
تنفيذ الأجهزة
في وحدة المعالجة المركزية البسيطة (CPU)، يكون الكمبيوتر الشخصي عبارة عن عداد رقمي (وهو أصل مصطلح "عداد البرنامج") قد يكون واحدًا من عدة سجلات أجهزة . تبدأ دورة التعليمات [8] بعملية جلب ، حيث تضع وحدة المعالجة المركزية قيمة الكمبيوتر الشخصي على ناقل العناوين لإرسالها إلى الذاكرة. تستجيب الذاكرة بإرسال محتويات موقع الذاكرة هذا على ناقل البيانات . (هذا هو نموذج الكمبيوتر المخزن للبرنامج ، حيث تحتوي مساحة ذاكرة واحدة على تعليمات قابلة للتنفيذ وبيانات عادية. [9] ) بعد عملية الجلب، تنتقل وحدة المعالجة المركزية إلى التنفيذ ، وتتخذ بعض الإجراءات بناءً على محتويات الذاكرة التي حصلت عليها. في مرحلة ما من هذه الدورة، سيتم تعديل الكمبيوتر الشخصي بحيث تكون التعليمات التالية التي يتم تنفيذها مختلفة (عادةً، يتم زيادتها بحيث تكون التعليمات التالية هي التي تبدأ من عنوان الذاكرة الذي يلي مباشرة موقع الذاكرة الأخير للتعليمات الحالية).
مثل سجلات المعالج الأخرى، قد يكون الكمبيوتر الشخصي عبارة عن مجموعة من المزالج الثنائية، حيث يمثل كل منها بتًا واحدًا من قيمة الكمبيوتر الشخصي. [10] يرتبط عدد البتات (عرض الكمبيوتر الشخصي) بهندسة المعالج. على سبيل المثال، قد تستخدم وحدة المعالجة المركزية "32 بت" 32 بتًا لتكون قادرة على معالجة 2 32 وحدة من الذاكرة. في بعض المعالجات، يعتمد عرض عداد البرنامج بدلاً من ذلك على الذاكرة القابلة للعنونة؛ على سبيل المثال، تحتوي بعض متحكمات AVR على كمبيوتر شخصي يلتف حول 12 بتًا. [11]
إذا كان الكمبيوتر الشخصي عبارة عن عداد ثنائي، فقد يتزايد عند تطبيق نبضة على مدخل COUNT UP الخاص به، أو قد تحسب وحدة المعالجة المركزية بعض القيم الأخرى وتحملها في الكمبيوتر الشخصي عن طريق نبضة إلى مدخل LOAD الخاص بها. [12]
لتحديد التعليمات الحالية، يمكن دمج الكمبيوتر الشخصي مع سجلات أخرى تحدد مقطعًا أو صفحة . يسمح هذا النهج للكمبيوتر الشخصي باستخدام عدد أقل من البتات من خلال افتراض أن معظم وحدات الذاكرة ذات الأهمية موجودة ضمن المنطقة المجاورة الحالية.
العواقب في هندسة الآلات
إن استخدام جهاز كمبيوتر يتزايد عادةً يفترض أن ما يفعله الكمبيوتر هو تنفيذ تسلسل خطي عادةً من التعليمات. يعد مثل هذا الكمبيوتر الشخصي محوريًا لهندسة فون نيومان . وبالتالي، يكتب المبرمجون تدفق تحكم متسلسل حتى بالنسبة للخوارزميات التي لا يتعين أن تكون متسلسلة. أدى " عنق زجاجة فون نيومان " الناتج إلى إجراء أبحاث في الحوسبة المتوازية ، [13] بما في ذلك نماذج غير فون نيومان أو نماذج تدفق البيانات التي لا تستخدم جهاز كمبيوتر شخصي؛ على سبيل المثال، بدلاً من تحديد الخطوات المتسلسلة، قد يحدد المبرمج عالي المستوى الوظيفة المطلوبة وقد يحدد المبرمج منخفض المستوى ذلك باستخدام المنطق التوليفي .
وقد أدى هذا البحث أيضًا إلى طرق لجعل وحدات المعالجة المركزية التقليدية المعتمدة على أجهزة الكمبيوتر تعمل بشكل أسرع، بما في ذلك:
- التخطيط الأنبوبي ، حيث تقوم الأجهزة المختلفة في وحدة المعالجة المركزية بتنفيذ مراحل مختلفة من التعليمات المتعددة في وقت واحد.
- هندسة الكلمات الإرشادية الطويلة جدًا (VLIW)، حيث يمكن لتعليمة واحدة تحقيق تأثيرات متعددة.
- تقنيات للتنبؤ بالتنفيذ خارج الترتيب وإعداد التعليمات اللاحقة للتنفيذ خارج التسلسل المنتظم.
العواقب في البرمجة عالية المستوى
لا تزال لغات البرمجة الحديثة عالية المستوى تتبع نموذج التنفيذ المتسلسل، والواقع أن إحدى الطرق الشائعة لتحديد أخطاء البرمجة هي "تنفيذ الإجراء" حيث يحدد إصبع المبرمج نقطة التنفيذ كما يفعل جهاز الكمبيوتر. واللغة عالية المستوى هي في الأساس لغة الآلة للآلة الافتراضية، [14] وهي معقدة للغاية بحيث لا يمكن بناؤها كأجهزة ولكن بدلاً من ذلك يتم محاكاتها أو تفسيرها بواسطة البرامج.
ومع ذلك، فإن نماذج البرمجة الجديدة تتجاوز برمجة التنفيذ المتسلسل:
- عند كتابة برنامج متعدد الخيوط ، قد يكتب المبرمج كل خيط كتسلسل من التعليمات دون تحديد توقيت أي تعليمة بالنسبة للتعليمات في الخيوط الأخرى.
- في البرمجة الموجهة بالأحداث ، قد يكتب المبرمج تسلسلات من التعليمات للاستجابة للأحداث دون تحديد تسلسل إجمالي للبرنامج.
- في برمجة تدفق البيانات ، قد يكتب المبرمج كل قسم من خط أنابيب الحوسبة دون تحديد التوقيت بالنسبة للأقسام الأخرى.
انظر أيضا
- التنبؤ بالفرع
- ذاكرة التخزين المؤقت للتعليمات
- دورة تعليمية
- وحدة تعليمية
- خط أنابيب التعليمات
- سجل التعليمات
- جدولة التعليم
- كلمة حالة البرنامج
ملحوظات
- ^ بالنسبة للمعالجات الحديثة، فإن مفهوم "أين هو في تسلسله" مبسط للغاية، حيث قد يحدث التوازي على مستوى التعليمات والتنفيذ خارج الترتيب .
- ^ في المعالج حيث تسبق الزيادة عملية الجلب، يشير الكمبيوتر الشخصي إلى التعليمات الحالية التي يتم تنفيذها. في بعض المعالجات، يشير الكمبيوتر الشخصي إلى مسافة ما بعد التعليمات الحالية؛ على سبيل المثال، في ARM7 ، تشير قيمة الكمبيوتر الشخصي المرئية للمبرمج إلى ما بعد التعليمات الحالية وما بعد فتحة التأخير . [7]
مراجع
- ^ ab Hayes, John P. (1978). Computer Architecture and Organization . McGraw-Hill. ص. 245. ISBN 0-07-027363-4.
- ^ Mead, Carver ; Conway, Lynn (1980). Introduction to VLSI Systems . Reading, USA: Addison-Wesley . ISBN 0-201-04358-0.
- ^ مبادئ التشغيل، النوع 701 والمعدات المرتبطة به (PDF) . IBM . 1953.
- ^ هاري كاتزان (1971)، تنظيم الكمبيوتر والنظام/370 ، شركة فان نوستراند راينولد ، نيويورك، الولايات المتحدة الأمريكية، LCCCN 72-153191
- ^ Bates, Martin (2011). "Microcontroller Operation". PIC Microcontrollers . Elsevier. p. 27–44. doi :10.1016/b978-0-08-096911-4.10002-3. ISBN 978-0-08-096911-4.
عداد البرامج (PC) هو سجل يتتبع تسلسل البرنامج، من خلال تخزين عنوان التعليمات التي يتم تنفيذها حاليًا. يتم تحميله تلقائيًا بالصفر عند تشغيل الشريحة أو إعادة تعيينها. مع تنفيذ كل تعليمة، يتم زيادة PC (بمقدار واحد) للإشارة إلى التعليمة التالية.
- ^ Silberschatz, Abraham ; Gagne, Greg; Galvin, Peter B. (April 2018). Operating System Concepts. United States: Wiley . ص 27، ج-29. ISBN 978-1-119-32091-3.
- ^ "ARM Developer Suite, Assembler Guide. Version 1.2". ARM Limited . 2001 . تم الاسترجاع في 2019-10-18 .
- ^ جون إل. هينيسي وديفيد أ. باترسون (1990)، هندسة الكمبيوتر: نهج كمي ، دار نشر مورجان كوفمان ، بالو ألتو، الولايات المتحدة الأمريكية، رقم ISBN 1-55860-069-8
- ^ ب. راندال (1982)، أصول أجهزة الكمبيوتر الرقمية ، دار نشر سبرينغر ، برلين، د.
- ^ سي جوردون بيل وألين نيويل (1971)، هياكل الكمبيوتر: قراءات وأمثلة ، شركة ماكجرو هيل للكتب ، نيويورك، الولايات المتحدة الأمريكية
- ^ Arnold, Alfred (2020) [1996, 1989]. "E. Predefined Symbols". Macro Assembler AS – User's Manual. V1.42. ترجمة Arnold, Alfred; Hilse, Stefan; Kanthak, Stephan; Sellke, Oliver; De Tomasi, Vittorio. ص. الجدول E.3: الرموز المحددة مسبقًا – الجزء 3. مؤرشف من الأصل في 2020-02-28 . تم الاسترجاع في 2020-02-28 .
3.2.12. WRAPMODE […] سيفترض AS أن عداد برنامج المعالج لا يحتوي على الطول الكامل البالغ 16 بتًا المعطى بواسطة الهندسة المعمارية، ولكن بدلاً من ذلك طول كافٍ تمامًا لمعالجة ذاكرة القراءة فقط الداخلية. على سبيل المثال، في حالة
AT90S8515
، فهذا يعني 12 بتًا، وهو ما يعادل 4 كيلو بايت أو 8 كيلوبايت. يسمح هذا الافتراض بوجود فروع نسبية من بداية ذاكرة القراءة فقط إلى نهايتها والعكس صحيح، وهو ما يؤدي إلى حدوث خطأ خارج الفرع عند استخدام الحسابات الصارمة. وهنا، تعمل هذه الطريقة لأن بتات الحمل الناتجة عن حساب عنوان الهدف يتم تجاهلها. […] وفي حالة AT90S8515 المذكورة أعلاه، فإن هذا الخيار ضروري لأنه الطريقة الوحيدة لإجراء قفزة مباشرة عبر مساحة العنوان الكاملة […]
- ^ Walker, BS (1967). Introduction to Computer Engineering . لندن، المملكة المتحدة: مطبعة جامعة لندن . ISBN 0-340-06831-0.
- ^ FB Chambers، DA Duce وGP Jones (1984)، الحوسبة الموزعة ، أكاديميك بريس ، أورلاندو، الولايات المتحدة الأمريكية، ISBN 0-12-167350-2
- ^ دوغلاس هوفستاتر (1980)، جودل، إيشر، باخ: جديلة ذهبية أبدية ، كتب بنغوين ، هارموندسوورث، المملكة المتحدة، رقم ISBN 0-14-005579-7
