أجهزة الكمبيوتر الحديثة هي آلات معقدة للغاية. ومع ذلك، لا يوجد جزء أكثر تعقيدًا من وحدة المعالجة المركزية. غالبًا ما يكون في طليعة ما يمكن تصنيعه بكميات كبيرة. تقوم وحدة المعالجة المركزية الحديثة بإعادة ترتيب التعليمات التي تتلقاها بشكل نشط، ولديها معالجات متعددة، وخطوط أنابيب عميقة، وخطوط أنابيب متعددة لكل مركز، ومعدل نجاح عالٍ للتنبؤ بأي مسار متفرع يتم تنفيذه بشكل تخميني، والقدرة على استخدام سجلات أكثر مما هو مسموح به بمجرد إعادة تسميتها. كل هذا يجعل وحدات المعالجة المركزية معقدة للغاية. لقد ولت الأيام المتسلسلة حيث تتم معالجة التعليمات حتى اكتمالها قبل بدء اليوم التالي.

هذا التعقيد يعني أن هناك حاجة إلى الكثير من الإدارة المعقدة لإبقاء كل شيء يعمل على النحو المنشود. تقوم وحدة التحكم بهذه الإدارة. وحدة التحكم مسؤولة عن ضمان تنفيذ جميع التعليمات.

الذاكرة والمقاطعات

تتمثل إحدى الوظائف الأساسية لوحدة التحكم في التأكد من توفر البيانات التي تحتاجها للعمل في كل تعليمات. بفضل ذاكرة التخزين المؤقت عالية السرعة، لا يستغرق هذا غالبًا وقتًا طويلاً. تتوفر ذاكرة التخزين المؤقت لوحدة المعالجة المركزية عادةً خلال بضع دورات من وحدة المعالجة المركزية، على الرغم من أنها تعتمد على طبقة ذاكرة التخزين المؤقت. إذا لم تكن البيانات في ذاكرة التخزين المؤقت، فيجب استرجاعها من الذاكرة الرئيسية، الأمر الذي يستغرق وقتًا أطول بكثير. خلال هذا الوقت، يمكن أن توقف وحدة التحكم خط الأنابيب، في انتظار توفر البيانات. ومع ذلك، يمكن أن يتضمن ذلك المئات من دورات وحدة المعالجة المركزية المفقودة والتي كان من الممكن أن يتم فيها إكمال العديد من الإرشادات الأخرى.

للتغلب على هذا الأمر، ستكون المهمة التي تنتظر الذاكرة أو الإدخال / الإخراج بشكل عام محاطة بشكل جانبي من خلال تبديل السياق. يسمح هذا بإكمال التعليمات الأخرى الجاهزة للتشغيل أثناء انتظار هذه التعليمات للبيانات التي تحتاجها. عندما تكون البيانات متاحة، يجب استئناف هذه التعليمات. يحدث هذا من خلال استخدام المقاطعة. تقوم المقاطعة بإيقاف خط الأنابيب مؤقتًا وإدراج تعليمات الانتظار وبياناتها لتكون جاهزة للتنفيذ.

التنفيذ خارج الطلب

معظم وحدات المعالجة المركزية الحديثة هي الآن معالجات خارج الترتيب. بدلاً من تنفيذ التعليمات بالترتيب، حتى مع السماح بخط الأنابيب، لديهم مخزن مؤقت لإعادة الترتيب. يسمح المخزن المؤقت لإعادة الترتيب لجدول وحدة المعالجة المركزية، وهو جزء من وحدة التحكم، برؤية التعليمات القادمة وإعادة ترتيبها لتحسين الكفاءة. على سبيل المثال، قد يتم دفع التعليمات التي تحتاج إلى المطالبة ببيانات من الذاكرة لأعلى في قائمة الانتظار لبدء عملية الاستعلام عن الذاكرة الرئيسية في وقت أقرب.

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

تنبؤات الفروع والتنفيذ التأملي

تأتي إحدى المشكلات المهمة مع أجهزة الكمبيوتر الموصلة بالأنابيب من الفروع الشرطية. الفرع هو جزء من الكود، مثل جملة “IF”. في فرع واحد، إذا كانت العبارة صحيحة؛ في الآخر، إنه كاذب. تكمن المشكلة في أنك تحدد فقط الفرع الذي يجب أن تأخذه في مرحلة التنفيذ. على الرغم من ذلك، في وحدة المعالجة المركزية الموصلة بالأنابيب، من المفترض بالفعل أن تكون قد قمت بتحميل التعليمات التالية وربما العديد من التعليمات الأخرى من خلال الكثير من خط الأنابيب في تلك المرحلة.

اذن ماذا تفعل؟ هل يمكن أن توقف خط الأنابيب كلما واجهت فرع. هذا من شأنه أن يؤدي دائمًا إلى فقدان الأداء. قد يكون الخيار الآخر هو البدء في أداء كلا النتيجتين ثم إسقاط النتيجة الخطأ. هذا النهج سيكون له نصف خسارة الأداء ولكن سيظل يعاني من فقدان الأداء هذا. الخيار الأخير هو إجراء التنبؤ بالفرع والتنفيذ التخيلي لفرعك المتوقع. إذا كنت تخمن بشكل صحيح، فلن تفقد أي أداء، ولكن إذا كنت تخمين خطأ، فيجب عليك مسح خط الأنابيب، وفقدان أداء أكثر قليلاً مما كنت ستفعله إذا لم تفعل أي شيء.

يعتمد الأداء المتعلق بالتنبؤ بالفرع وتنفيذ المضاربة على معدل نجاح خوارزمية التنبؤ. يمكن أن تحقق الخوارزميات الحديثة، التي تديرها وحدة التحكم، معدلات إصابة في نطاق 90٪ المرتفع، لذا فهي دقيقة جدًا. إحدى الطرق التي يمكن بها إدارة هذا جزئيًا هي التنفيذ خارج الطلب. من خلال إجراء أي عملية تفريع في أسرع وقت ممكن، يمكنك تقليل الحاجة حتى للتنبؤ بالفرع.

الخلاصة

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