الأداء، دورة جلب التنفيذ والمقاطعات
| English | العربية |
|---|---|
| interrupt/ˈɪntərʌpt/ | انقطاع |
| clock speed/klɒk spiːd/ | سرعة الساعة |
| fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ | دورة جلب-تنفيذ |
| cores/kɔːz/ | أنوية |
| cache/kæʃ/ | cache |
| word size/wɜːd saɪz/ | حجم الكلمة |
| port/pɔːt/ | منفذ |
| peripheral/pəˈrɪfərəl/ | peripheral ( peripheral ) |
| register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ | رمز انتقال المسجلات |
| stack/stæk/ | مكدس |
| interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ | روتين خدمة الانقطاع |
| interrupt register/ˈɪntərʌpt ˈredʒɪstə/ | مسجل الانقطاع |
لماذا يفقد جهاز اللابتوب تركيزه عند الضغط على مفتاح
- يعمل المعالج بملايين الدورات في الثانية. لو اضطر لإيقاف العمل وسؤال لوحة المفاتيح "هل هناك شيء؟" بين كل تعليمة، لفقد معظمها في الأسئلة.
- بدلاً من ذلك، ترسل لوحة المفاتيح مقاطعة. ينهي المعالج تعليمتة الحالية، يحفظ مكانه، يتعامل مع المفتاح، ويعود وكأن شيئًا لم يحدث.
- هذه الآلية الوحيدة هي كيف يبدو لمعالف واحد أنه يشغل موسيقتك ومتصفحك وكتابتك في آن واحد.
- يغطي هذا الدرس ما يجعل المعالج سريعًا، وكيف يتصل بالأجهزة، وكيفية تشغيل تعليمة واحدة بالضبط، وكيفية قطعه بالمقاطعة.
ما يؤثر على الأداء
- سرعة الساعة: عدد أكبر من دورات جلب-تنفيذ في الثانية، وبالتالي تعليمات أكثر في الثانية، حتى يحدد الحرارة الحد الأقصى.
- عدد الأنوية: كل نواة تجلب وتنفذ تعليماتها الخاصة في نفس الوقت، لذا يمكن لعدة برامج أو مسارات أن تعمل بالتوازي. يجب كتابة البرنامج لاستخدامها، لذا فإن مضاعفة الأنوية لا تضاعف السرعة.
- عرض الناقل: ناقل بيانات أوسع ينقل عددًا أكبر من البتات في كل نقل، مما يعني fewer transfers; a wider address bus reaches more memory.
- الذاكرة المؤقتة (Cache): ذاكرة صغيرة وسريعة بجانب المعالج تحتوي على الأوامر والبيانات المستخدمة مؤخرًا، مما يقلل trips to RAM. حجم الكلمة، وكمية RAM ونوع التخزين يساعدان أيضًا.
حدد كل العوامل التي تؤثر على أداء وحدة المعالجة المركزية.
سرعة الساعة، النوى والذاكرة المؤقتة (بالإضافة إلى حجم الكلمة، RAM، التخزين وعرض الحاجز) كلها تؤثر على الأداء. لون الغلاف لا يفعل ذلك.
وحدة المعالجة المركزية متعددة النوى مفيدة بشكل خاص لـ:
النوى الإضافية تشغل المهام بالتوازي. المهمة أحادية الخيط بحتة تستفيد أكثر من السرعة الأعلى لكل نواة.
____ الذاكرة هي مساحة تخزين صغيرة وسريعة بجانب المعالج تحتوي على الأوامر والبيانات المستخدمة مؤخراً، لتقليل الرحلات البطيئة إلى RAM.
زيادة الكاش تعني أن جزءاً أكبر من مجموعة العمل تجاور المعالج، وهو السبب في ظهورها في كل مقارنة للأداء.
مثال محلول: "اشرح لماذا الحاسوب الجديد أسرع"
- قارن المواصفات الاثنين سطراً بسطر، مع ذكر السبب لكل منهما.
- 3.8 جيجاهرتز مقابل 2.4 جيجاهرتز: دورات أكثر في الثانية، لذا تنفيذ أوامر أكثر في الثانية.
- 8 أنوية مقابل 4: يمكن جلب وتنفيذ ضعف عدد الأوامر في نفس الوقت، للبرامج التي تستخدمها.
- 16 ميجابايت من الذاكرة المؤقتة مقابل 4 ميجابايت: جزء أكبر من مجموعة العمل محفوظ بجانب المعالج، مما يقلل الانتظار لـ RAM. كل سطر يمثل علامتين: العامل وعاقبته.
المنافذ
- المنفذ هو مقبس فيزيائي يربط بين جهاز peripheral.
- USB (Universal Serial Bus) متعدد الأغراض: مفاتيح، وحدات تخزين، هواتف. وهو plug-and-play: يكشف الحاسوب الجهاز، يتعرف عليه، يحمل driver الخاص به ويمكنه تزويده بالطاقة، بدون إعادة تشغيل.
- HDMI (High Definition Multimedia Interface) ينقل فيديو رقمي و صوت عبر كابل واحد، فلا يتم تحويل شيء إلى تماثلي ولا تتدهور الصورة. VGA (Video Graphics Array) هو منفذ الفيديو التماثلي الأقدم.
صنّف كل منفذ مع ما ينقله.
إشارات مختلفة، مقابس مختلفة: كابل HDMI لن يتناسب مع منفذ USB.
مرحلة الجلب
- مرة واحدة لكل أمر، يقوم المعالج بـ دورة الجلب والتنفيذ. الجلب يأتي أولاً، ويطلب الامتحان كتابتها بـ رمز نقل المسجلات.
MAR ← [PC] the address of the next instruction goes to the MAR
PC ← [PC] + 1 the PC now points to the following instruction
MDR ← [[MAR]] the instruction at that address is read into the MDR
CIR ← [MDR] the instruction is copied into the CIR for decoding
- إشارات قراءة تسير على ناقل التحكم، والعنوان على ناقل العنوان، ويعود الأمر على ناقل البيانات. يتم زيادة PC مباشرة بعد نسخ عنوانه، حتى يمكن لتوجيه تنفيذه لاحقاً أن يستبدله.

PC → MAR → memory → MDR → CIR, with the PC incremented on the way
ضع خطوات جلب التعليمات في الترتيب الصحيح.
PC → MAR، زِد PC، إرسال إشارة القراءة، ثم تنتقل التعليمات من MDR → CIR استعداداً للتحليل.
تزداد قيمة PC خلال مرحلة الجلب بحيث يجلب الدورة التالية التعليمة التالية.
زيادة PC مبكراً تعني أنه يشير بالفعل إلى التعليمة التالية بحلول وقت تنفيذ هذه التعليمة (إلا إذا قام قفز بتغييره).
فك الشيفرة، التنفيذ، تكرار
- فك الشيفرة: وحدة التحكم تحدد من الأمر الموجود في CIR أي عملية هي وأين operands الخاصة بها.
- التنفيذ: العمليات الحسابية والمنطقية تذهب إلى ALU مع النتيجة في ACC؛ التحميل أو التخزين ينقل بيانات بين الذاكرة والمسجل؛ التوجيه يكتب عنواناً جديداً في PC.
- ثم تتكرر الدورة من
MAR ← [PC]. في نهاية كل دورة، يفحص المعالج أيضاً ما إذا كان هناك interrupt في انتظاره.
دورة واحدة LOAD وإحدى ADD تمرر عبر المسجلات: استرجاع، فك تشفير، تنفيذ، تكرار
دورة جلب التنفيذ
اضغط حول الحلقة التي تكررها وحدة المعالجة المركزية مليارات المرات في الثانية. شاهد كيف يستخدم الجلب مسجلات PC/MAR/MDR/CIR، ثم فك التشفير والتنفيذ يؤثران على ما تم جلبه.
مثال محلول: تنفيذ أمرين بالرمز
- نفذ
LDD 200(حمل محتويات العنوان 200 إلى ACC):MAR ← 200، ثمMDR ← [[MAR]]، ثمACC ← [MDR]. - نفذ
ADD 201:MAR ← 201،MDR ← [[MAR]]،ACC ← [ACC] + [MDR]. - نفذ
STO 202:MAR ← 202،MDR ← [ACC]،[[MAR]] ← [MDR]. - كل سطر ينقل قيمة واحدة بين مكانين. الأقواس المزدوجة تعني دائماً "موقع الذاكرة الذي يقع عنوانه في MAR".
ضع نقل المسجلات الذي ينفذ LDD 200 بالترتيب.
العنوان إلى MAR، محتويات هذا العنوان إلى MDR، ثم إلى المجمع.
المقاطعات
- المقطع هو إشارة توقف الدورة العادية حتى يتمكن المعالج من التعامل مع حدث طارئ.
- الأسباب: جهاز عتادي (زر مضغوط، buffer printer فارغ، وصول حزمة شبكة)، خطأ برمجي (قسمة على صفر، أمر غير قانوني، overflow حسابي)، مؤقت نظام التشغيل لتحديد نهاية slice زمني، تحذير من فشل الطاقة.
- المقاطعات تسمح للنظام بالاستجابة بسرعة دون فحص المعالج المستمر للأجهزة، وهي كيفية عمل نظام التشغيل في multitasking.

الدورة، مع التحقق من المقاطعة في نهاية كل دورة
المقاطعة هي:
توقف المقاطعة مؤقتاً دورة جلب-تنفيذ حتى يتمكن CPU من معالجة حدث طارئ، ثم يستأنف.
أي مما يلي يمكن أن يسبب مقاطعة؟ حدّد كل الخيارات الصحيحة.
الأحداث المادية والأخطاء البرمجية وعداد نظام التشغيل يرفعون مقاطعات. انتهاء الحلقة هو تدفق برنامج عادي يُدار بقفزة، وليس مقاطعة.
معالجة المقطع
- أكمل الأمر الحالي. حفظ الحالة: محتويات PC والمسابجل الأخرى توضع على الكومة (stack).
- حمل عنوان روتين خدمة المقطع (ISR) في PC ونفّذه. ISR يعالج الحدث.
- استعادة الحالة المحفوظة من الكومة والاستمرار في البرنامج المقطوع تماماً حيث توقف.

Save, service, restore, resume
عند حدوث مقاطعة، ينهي CPU أولاً التعليمة الحالية، ثم:
يحفظ PC والمسجلات، يشغل روتين خدمة المقاطعة، ثم يعيد استعادة الحالة ويكمل حيث توقف.
مثال محلول: إجابة المقطع ذات الأربع علامات
- اشرح كيف يتم اكتشاف ومعالجة مقطع من جهاز إدخال في دورة الجلب والتنفيذ.
- يرسل الجهاز إشارة مقطع تضع علامة في مسجل المقاطع. يفحص المعالج ذلك المسجل في نهاية كل دورة، بعد انتهاء تنفيذ الأمر الحالي.
- إذا كانت علامة مرفوعة وكان للمقطع أولوية أعلى من المهمة الحالية، تُحفظ PC والمسابجل الأخرى على الكومة. يُحمل عنوان ISR في PC ويُنفذ الروتين.
- عند انتهائه، تُستعاد المسابجل من الكومة ويستأنف البرنامج المقطوع. أربع نقاط، بنفس الترتيب.
يفحص المعالج وجود مقاطعات في نهاية كل دورة جلب-تنفيذ، بعد انتهاء التعليمة الحالية.
هذا التوقيت هو ما يسمح بحفظ الحالة بشكل نظيف: لا تُترك أي تعليمة نصف مكتملة.
علامات ضائعة
- يتم زيادة PC أثناء الجلب، وليس بعد التنفيذ. ضع
PC ← [PC] + 1ثانياً، مباشرة بعدMAR ← [PC]. - يتم التحقق من المقاطعات في نهاية الدورة، أبداً في وسط الأمر.
- الحالة تذهب إلى الكومة وتعود منها. "يتوقف CPU" أو "يضيع البرنامج" خطأ: يستأنف تماماً كما كان.
- لا تؤدي زيادة عدد النوى إلى مضاعفة السرعة؛ يجب أن يستخدم البرنامج هذه النوى. ذكّر بذلك عند مقارنة المواصفات.
لقد فهمت الأمر
- الأداء: سرعة الساعة، النوى، عرض الناقل، ذاكرة التخزين المؤقت (بالإضافة إلى حجم الكلمة، والذاكرة العشوائية RAM، والتخزين)، لكل منها عاقبته الخاصة
- الموانئ: USB متعددة الأغراض وقابلة للتوصيل والتشغيل، HDMI للفيديو الرقمي والصوت، VGA للفيديو التناظري
- الاستخراج:
MAR ← [PC]،PC ← [PC] + 1،MDR ← [[MAR]]،CIR ← [MDR]؛ ثم فك التشفير، التنفيذ، التكرار - يتم فحص الانقطاع في نهاية كل دورة: حفظ الحالة على المكدس، تشغيل برنامج معالجة الانقطاعات ISR، استعادة الحالة، مواصلة العمل