وحدة التحكم
في هندسة الحاسوب ، تُعد وحدة التحكم ( CU ) مكونًا من مكونات وحدة المعالجة المركزية (CPU) في الحاسوب، وهي المسؤولة عن توجيه عمليات المعالج. وتستخدم وحدة التحكم عادةً مُفكِّكًا ثنائيًا لتحويل التعليمات المشفرة إلى إشارات توقيت وتحكم تُوجِّه عمليات الوحدات الأخرى (الذاكرة، ووحدة الحساب والمنطق، وأجهزة الإدخال والإخراج، وما إلى ذلك).
تُدار معظم موارد الحاسوب بواسطة وحدة التحكم (CU). وهي تُوجّه تدفق البيانات بين وحدة المعالجة المركزية (CPU) والأجهزة الأخرى. وقد أدرج جون فون نيومان وحدة التحكم كجزء من بنية فون نيومان . [ 1 ] في تصميمات الحواسيب الحديثة، تُعدّ وحدة التحكم عادةً جزءًا داخليًا من وحدة المعالجة المركزية، مع بقاء دورها وطريقة عملها دون تغيير منذ ظهورها. [ 2 ]
وحدات التحكم متعددة الدورات
تستخدم أبسط أجهزة الكمبيوتر بنية دقيقة متعددة الدورات . كانت هذه التصاميم الأولى، ولا تزال شائعة في أصغر أجهزة الكمبيوتر، مثل الأنظمة المدمجة التي تشغل الآلات.
في الحاسوب، غالبًا ما تنفذ وحدة التحكم دورة التعليمات بالتتابع. تتضمن هذه الدورة جلب التعليمات، وجلب المعاملات، وفك تشفير التعليمات، وتنفيذها، ثم كتابة النتائج إلى الذاكرة. عند إدخال التعليمات التالية إلى وحدة التحكم، يتغير سلوكها لإتمام التعليمات بشكل صحيح. لذا، تتحكم بتات التعليمات مباشرةً في وحدة التحكم، التي بدورها تتحكم في الحاسوب.
قد تتضمن وحدة التحكم عدادًا ثنائيًا لإخبار منطق وحدة التحكم بالخطوة التي يجب أن تقوم بها.
تستخدم وحدات التحكم متعددة الدورات عادةً الحافتين الصاعدة والهابطة لساعة التوقيت ذات الموجة المربعة. وتُنفذ خطوة من عملها على كل حافة من حواف ساعة التوقيت، بحيث تكتمل عملية من أربع خطوات في دورتين من دورات الساعة. وهذا يُضاعف سرعة الحاسوب، مع استخدام نفس عائلة المنطق.
تُعاني العديد من أجهزة الكمبيوتر من نوعين مختلفين من الأحداث غير المتوقعة. يحدث المقاطعة عندما يحتاج نوعٌ ما من المدخلات أو المخرجات إلى تدخل برمجي لكي يعمل بشكل صحيح. أما الاستثناء فيحدث نتيجةً لعملية تشغيل الكمبيوتر. ومن الفروق الجوهرية بينهما أن توقيت المقاطعة لا يمكن التنبؤ به. كما أن بعض الاستثناءات (مثل استثناء عدم توفر الذاكرة) قد تنتج عن تعليمة تحتاج إلى إعادة تشغيل.
يمكن تصميم وحدات التحكم للتعامل مع المقاطعات بإحدى طريقتين رئيسيتين. إذا كانت الاستجابة السريعة هي الأهم، تُصمم وحدة التحكم للتوقف مؤقتًا عن العمل لمعالجة المقاطعة. في هذه الحالة، يُعاد تشغيل العمل الجاري بعد تنفيذ آخر تعليمة. أما إذا كان الهدف هو جعل الحاسوب رخيصًا جدًا، وبسيطًا جدًا، وموثوقًا جدًا، أو لإنجاز المزيد من العمل، فإن وحدة التحكم تُنهي العمل الجاري قبل معالجة المقاطعة. إنهاء العمل غير مكلف، لأنه لا يحتاج إلى سجل لتسجيل آخر تعليمة مُنجزة. وهو بسيط وموثوق لأنه يحتوي على أقل عدد من الحالات. كما أنه يُهدر أقل قدر من العمل.
يمكن تطبيق الاستثناءات لتعمل كمقاطعات في أجهزة الكمبيوتر البسيطة جدًا. إذا كانت الذاكرة الافتراضية مطلوبة، فيجب على استثناء عدم توفر الذاكرة إعادة محاولة تنفيذ التعليمات الفاشلة.
من الشائع أن تستخدم الحواسيب متعددة الدورات عددًا أكبر من الدورات. أحيانًا يستغرق تنفيذ قفزة شرطية وقتًا أطول، نظرًا لضرورة إعادة تحميل عداد البرنامج. في بعض الأحيان، تُنفذ عمليات الضرب أو القسمة بواسطة عملية واحدة، كما هو الحال في الضرب والقسمة الثنائية الطويلة. قد تُجري الحواسيب الصغيرة جدًا عمليات حسابية، بت واحد أو بضعة بتات في كل مرة. بينما تحتوي بعض الحواسيب الأخرى على تعليمات معقدة للغاية تتطلب خطوات عديدة.
وحدات التحكم الموصولة بخطوط الأنابيب
تعتمد العديد من الحواسيب متوسطة التعقيد على تقنية خطوط الأنابيب في معالجة التعليمات . ويحظى هذا التصميم بشعبية كبيرة نظراً لكفاءته وسرعته.
في الحاسوب ذي البنية الأنبوبية، تتدفق التعليمات عبر الحاسوب. يتكون هذا التصميم من عدة مراحل. على سبيل المثال، قد يحتوي على مرحلة لكل خطوة من خطوات دورة فون نيومان. عادةً ما يحتوي الحاسوب ذو البنية الأنبوبية على "سجلات أنبوبية" بعد كل مرحلة. تخزن هذه السجلات البتات المحسوبة في المرحلة السابقة، بحيث تستخدمها البوابات المنطقية في المرحلة التالية لتنفيذ الخطوة التالية.
من الشائع أن تعمل المراحل ذات الأرقام الزوجية على أحد طرفي إشارة الساعة المربعة، بينما تعمل المراحل ذات الأرقام الفردية على الطرف الآخر. وهذا يُسرّع الحاسوب بمقدار الضعف مقارنةً بالتصاميم أحادية الطرف.
في الحاسوب ذي البنية الأنبوبية، تتولى وحدة التحكم تنظيم بدء واستمرار وإيقاف تدفق البيانات وفقًا لأوامر البرنامج. تُمرر بيانات التعليمات عادةً عبر سجلات الأنابيب من مرحلة إلى أخرى، مع وجود جزء منفصل نسبيًا من منطق التحكم لكل مرحلة. كما تضمن وحدة التحكم عدم تأثير التعليمات في كل مرحلة سلبًا على عمل التعليمات في المراحل الأخرى. على سبيل المثال، إذا كان على مرحلتين استخدام نفس البيانات، يضمن منطق التحكم استخدامها بالتسلسل الصحيح.
عند التشغيل بكفاءة، يحتوي الحاسوب ذو البنية الأنبوبية على تعليمة واحدة في كل مرحلة، ويعمل على جميع هذه التعليمات في آنٍ واحد. يستطيع الحاسوب إتمام تعليمة واحدة تقريبًا في كل دورة من دورات ساعته. عندما يتخذ البرنامج قرارًا وينتقل إلى تسلسل مختلف من التعليمات، قد تضطر البنية الأنبوبية أحيانًا إلى تجاهل البيانات قيد المعالجة وإعادة التشغيل. يُسمى هذا "توقفًا مؤقتًا". عندما يكون من المحتمل أن تتداخل تعليمتان، قد تضطر وحدة التحكم إلى إيقاف معالجة التعليمة اللاحقة حتى تكتمل التعليمة السابقة. يُسمى هذا "فقاعة أنبوبية" لأن جزءًا من البنية الأنبوبية لا يُعالج التعليمات. يمكن أن تحدث الفقاعات الأنبوبية عندما تعمل تعليمتان على نفس المسجل.
تؤدي المقاطعات والاستثناءات غير المتوقعة أيضًا إلى توقف خط الأنابيب. إذا تخلى حاسوب ذو خط أنابيب عن العمل بسبب مقاطعة، فسيتم فقدان كمية أكبر من العمل مقارنةً بحاسوب متعدد الدورات. لا تتطلب الاستثناءات المتوقعة توقفًا. على سبيل المثال، إذا تم استخدام تعليمة استثناء للدخول إلى نظام التشغيل، فلن يتسبب ذلك في توقف.
بالنسبة لنفس سرعة المنطق الإلكتروني، يستطيع الحاسوب ذو البنية الأنبوبية تنفيذ عدد أكبر من التعليمات في الثانية الواحدة مقارنةً بالحاسوب متعدد الدورات. كما أنه على الرغم من أن للمنطق الإلكتروني سرعة قصوى ثابتة، إلا أنه يمكن زيادة سرعة الحاسوب ذي البنية الأنبوبية أو خفضها بتغيير عدد المراحل في خط الأنابيب. فمع زيادة عدد المراحل، يقلّ العمل الذي تقوم به كل مرحلة، وبالتالي تقلّ التأخيرات الناتجة عن البوابات المنطقية .
غالبًا ما يحتوي نموذج الحاسوب ذو البنية الأنبوبية على عدد أقل من البوابات المنطقية لكل تعليمة في الثانية مقارنةً بالحواسيب متعددة الدورات والحواسيب غير المتسلسلة. ويعود ذلك إلى أن متوسط المرحلة فيه أقل تعقيدًا من متوسط المرحلة في الحواسيب متعددة الدورات. عادةً ما تحتوي الحواسيب غير المتسلسلة على كميات كبيرة من المنطق الخامل في أي لحظة معينة. وتُظهر حسابات مماثلة عادةً أن الحاسوب ذو البنية الأنبوبية يستهلك طاقة أقل لكل تعليمة.
مع ذلك، عادةً ما يكون الحاسوب ذو البنية الأنبوبية أكثر تعقيدًا وتكلفةً من الحاسوب متعدد الدورات المماثل. فهو يحتوي عادةً على عدد أكبر من البوابات المنطقية والمسجلات ووحدة تحكم أكثر تعقيدًا. وبالمثل، قد يستهلك طاقة إجمالية أكبر، مع استهلاك طاقة أقل لكل تعليمة. تستطيع وحدات المعالجة المركزية غير المتسلسلة عادةً تنفيذ عدد أكبر من التعليمات في الثانية لأنها قادرة على تنفيذ عدة تعليمات في آن واحد.
منع التوقفات
تستخدم وحدات التحكم العديد من الطرق للحفاظ على امتلاء خط الأنابيب وتجنب حالات التوقف. على سبيل المثال، حتى وحدات التحكم البسيطة يمكنها افتراض أن التفرع العكسي، إلى تعليمة سابقة ذات رقم أقل، هو حلقة تكرارية، وسيتم تكراره. [ 3 ] لذا، فإن وحدة التحكم المصممة بهذا الشكل ستملأ خط الأنابيب دائمًا بمسار التفرع العكسي. إذا استطاع المترجم اكتشاف الاتجاه الأكثر شيوعًا للتفرع، فبإمكانه ببساطة إنتاج تعليمات تجعل هذا التفرع هو الاتجاه المفضل. وبالمثل، قد تحصل وحدة التحكم على تلميحات من المترجم: تحتوي بعض الحواسيب على تعليمات يمكنها ترميز تلميحات من المترجم حول اتجاه التفرع. [ 4 ]
تقوم بعض وحدات التحكم بتوقع التفرعات : إذ تحتفظ وحدة التحكم بقائمة إلكترونية بالتفرعات الأخيرة، مُشفّرة بواسطة عنوان تعليمة التفرع. [ 3 ] تحتوي هذه القائمة على بضعة بتات لكل تفرع لتذكر الاتجاه الذي تم اتخاذه مؤخرًا.
يمكن لبعض وحدات التحكم القيام بالتنفيذ التخميني ، حيث قد يحتوي جهاز الكمبيوتر على خطين أو أكثر من خطوط الأنابيب، وحساب كلا اتجاهي الفرع، ثم تجاهل حسابات الاتجاه غير المستخدم.
قد تصبح نتائج الذاكرة متاحة في أوقات غير متوقعة لأن الحواسيب فائقة السرعة تستخدم ذاكرة التخزين المؤقت . أي أنها تنسخ كميات محدودة من بيانات الذاكرة إلى ذاكرة فائقة السرعة. يجب تصميم وحدة المعالجة المركزية (CPU) لمعالجة البيانات بسرعة ذاكرة التخزين المؤقت. لذلك، قد تتوقف وحدة المعالجة المركزية عند الحاجة إلى الوصول المباشر إلى الذاكرة الرئيسية. في أجهزة الكمبيوتر الشخصية الحديثة، تكون الذاكرة الرئيسية أبطأ من ذاكرة التخزين المؤقت بما يصل إلى ثلاثمائة مرة.
وللمساعدة في ذلك، تم تطوير وحدات معالجة مركزية ووحدات تحكم تعمل خارج الترتيب لمعالجة البيانات فور توفرها. (انظر القسم التالي)
لكن ماذا لو اكتملت جميع العمليات الحسابية، لكن وحدة المعالجة المركزية لا تزال متوقفة، تنتظر الذاكرة الرئيسية؟ في هذه الحالة، يمكن لوحدة التحكم التبديل إلى مسار تنفيذ بديل تم جلب بياناته أثناء خمول المسار الحالي. يمتلك كل مسار عداد برنامج خاص به، وسلسلة من التعليمات، ومجموعة منفصلة من السجلات. يختلف عدد المسارات حسب تقنيات الذاكرة الحالية ونوع الحاسوب. عادةً ما تحتوي الحواسيب الشخصية والهواتف الذكية على وحدات تحكم مزودة بعدد قليل من المسارات، يكفي لتشغيل أنظمة الذاكرة ذات التكلفة المعقولة. أما حواسيب قواعد البيانات، فغالبًا ما تحتوي على ضعف هذا العدد تقريبًا من المسارات، للحفاظ على ذاكرتها الأكبر حجمًا مشغولة. بينما تحتوي وحدات معالجة الرسومات (GPUs) عادةً على مئات أو آلاف المسارات، لأنها تحتوي على مئات أو آلاف من وحدات التنفيذ التي تُجري عمليات حسابية رسومية متكررة.
عندما تسمح وحدة التحكم بالعمليات المتعددة الخيوط ، يجب تصميم البرنامج أيضًا للتعامل معها. في وحدات المعالجة المركزية للأغراض العامة، مثل أجهزة الكمبيوتر الشخصية والهواتف الذكية، تُصمم الخيوط عادةً لتبدو شبيهة جدًا بالعمليات العادية المُجزأة زمنيًا. في أقصى الأحوال، قد يحتاج نظام التشغيل إلى بعض الوعي بها. أما في وحدات معالجة الرسومات، فلا يمكن عادةً إخفاء جدولة الخيوط عن برامج التطبيقات، وغالبًا ما يتم التحكم بها باستخدام مكتبة روتينات فرعية متخصصة.
وحدات التحكم المعطلة
يمكن تصميم وحدة التحكم لإنجاز ما تستطيع إنجازه . فإذا أمكن تنفيذ عدة تعليمات في الوقت نفسه، تقوم وحدة التحكم بترتيبها. لذا، تستطيع أسرع الحواسيب معالجة التعليمات بتسلسل قد يختلف قليلاً، تبعًا لوقت توفر المعاملات أو وجهات التعليمات. تستخدم معظم الحواسيب العملاقة والعديد من وحدات المعالجة المركزية للحواسيب الشخصية هذه الطريقة. ويعتمد التنظيم الدقيق لهذا النوع من وحدات التحكم على أبطأ جزء في الحاسوب.
عندما يكون تنفيذ العمليات الحسابية في أبطأ حالاته، تتدفق التعليمات من الذاكرة إلى وحدات إلكترونية تُسمى "وحدات الإصدار". تحتفظ وحدة الإصدار بالتعليمات حتى تتوفر كل من معاملاتها ووحدة التنفيذ. بعد ذلك، تُصدر التعليمات ومعاملاتها إلى وحدة التنفيذ، التي بدورها تُنفذ التعليمات. ثم تُنقل البيانات الناتجة إلى قائمة انتظار لكتابتها مرة أخرى إلى الذاكرة أو المسجلات. إذا كان الحاسوب يحتوي على وحدات تنفيذ متعددة، فإنه يستطيع عادةً تنفيذ عدة تعليمات في دورة ساعة واحدة.
من الشائع وجود وحدات تنفيذ متخصصة. على سبيل المثال، قد يحتوي جهاز كمبيوتر متوسط السعر على وحدة تنفيذ واحدة فقط للأعداد العشرية، لأن وحدات الأعداد العشرية باهظة الثمن. في المقابل، قد يحتوي نفس الجهاز على عدة وحدات للأعداد الصحيحة، لأنها رخيصة نسبيًا، ويمكنها تنفيذ معظم التعليمات.
تستخدم إحدى وحدات التحكم في إصدار التعليمات مصفوفة من الدوائر المنطقية الإلكترونية، تُعرف باسم "لوحة النتائج" [ 5 ] ، والتي تحدد متى يمكن إصدار تعليمة ما. يُمثل "ارتفاع" المصفوفة عدد وحدات التنفيذ، بينما يُمثل كل من "طولها" و"عرضها" عدد مصادر المعاملات. عندما تجتمع جميع العناصر، تتقاطع الإشارات من المعاملات ووحدة التنفيذ. يكتشف المنطق عند هذا التقاطع إمكانية تنفيذ التعليمة، فتُصدر إلى وحدة التنفيذ المتاحة. هناك أسلوب بديل لوحدة التحكم في إصدار التعليمات، وهو تطبيق خوارزمية توماسولو ، التي تُعيد ترتيب قائمة انتظار التعليمات في الأجهزة. يستخدم كلا الأسلوبين، من بعض النواحي، قائمة انتظار. تُعد لوحة النتائج طريقة بديلة لترميز قائمة انتظار التعليمات وإعادة ترتيبها، ويُطلق عليها بعض المصممين اسم "جدول قائمة الانتظار". [ 6 ] [ 7 ]
بإضافة بعض المنطق، يمكن للوحة النتائج أن تجمع بكفاءة بين إعادة ترتيب التنفيذ، وإعادة تسمية السجلات، والاستثناءات والمقاطعات الدقيقة. علاوة على ذلك، يمكنها القيام بذلك دون الحاجة إلى ذاكرة الوصول العشوائي المعقدة والمستهلكة للطاقة التي يستخدمها خوارزمية توماسولو. [ 6 ] [ 7 ]
إذا كان تنفيذ التعليمات أبطأ من كتابة النتائج، فإن قائمة انتظار الكتابة في الذاكرة تحتوي دائمًا على خانات فارغة. ولكن ماذا لو كانت عملية الكتابة في الذاكرة بطيئة؟ أو ماذا لو كان سجل الوجهة سيُستخدم بواسطة تعليمة "سابقة" لم تُنفذ بعد؟ في هذه الحالة، قد يلزم جدولة خطوة الكتابة في التعليمة. يُطلق على هذا أحيانًا اسم "إلغاء" التعليمة. في هذه الحالة، يجب أن يكون هناك منطق جدولة في الجزء الخلفي من وحدات التنفيذ. يقوم هذا المنطق بجدولة الوصول إلى السجلات أو الذاكرة التي ستتلقى النتائج. [ 6 ] [ 7 ]
يمكن أيضًا تصميم منطق الانسحاب في لوحة نتائج الإصدار أو قائمة انتظار توماسولو، وذلك عن طريق تضمين الوصول إلى الذاكرة أو السجلات في منطق الإصدار. [ 6 ] [ 7 ]
تتطلب وحدات التحكم خارج الترتيب ميزات تصميم خاصة للتعامل مع المقاطعات. عندما تكون هناك عدة تعليمات قيد التنفيذ، لا يكون من الواضح أين تحدث المقاطعة في مسار التعليمات. بالنسبة لمقاطعات الإدخال والإخراج، فإن أي حل تقريبًا يصلح. مع ذلك، عندما يحتوي الحاسوب على ذاكرة افتراضية، تحدث مقاطعة للإشارة إلى فشل الوصول إلى الذاكرة. يجب ربط هذا الوصول إلى الذاكرة بتعليمات محددة وحالة معالج محددة، حتى يمكن حفظ حالة المعالج واستعادتها بواسطة المقاطعة. الحل الشائع هو الاحتفاظ بنسخ من السجلات حتى يكتمل الوصول إلى الذاكرة. [ 6 ] [ 7 ]
كذلك، تواجه وحدات المعالجة المركزية غير المتسلسلة مشاكل أكبر فيما يتعلق بالتوقفات الناتجة عن التفرع، لأنها تستطيع إكمال عدة تعليمات في دورة الساعة الواحدة، وعادةً ما يكون لديها العديد من التعليمات في مراحل تقدم مختلفة. لذا، قد تستخدم وحدات التحكم هذه جميع الحلول التي تستخدمها المعالجات ذات البنية الأنبوبية. [ 8 ]
وحدات التحكم المترجمة
تقوم بعض الحواسيب بترجمة كل تعليمة منفردة إلى سلسلة من التعليمات الأبسط. وتكمن الميزة في أن الحاسوب الذي يعمل بترتيب غير متسلسل يمكن أن يكون أبسط في معظم منطقه، مع قدرته على معالجة التعليمات المعقدة متعددة الخطوات. تقوم معالجات Intel x86 منذ معالج Pentium Pro بترجمة تعليمات CISC x86 المعقدة إلى عمليات دقيقة داخلية أقرب إلى معالجات RISC.
في هذه الأنظمة، تتولى "الواجهة" الأمامية لوحدة التحكم ترجمة التعليمات، بينما لا تُترجم المعاملات. أما "الخلفية" لوحدة التحكم فهي وحدة معالجة مركزية خارج الترتيب، تُصدر العمليات الدقيقة والمعاملات إلى وحدات التنفيذ ومسارات البيانات.
وحدات تحكم لأجهزة الكمبيوتر منخفضة الطاقة
تتضمن العديد من أجهزة الكمبيوتر الحديثة أنظمة تحكم تقلل من استهلاك الطاقة. في أجهزة الكمبيوتر التي تعمل بالبطاريات، مثل تلك الموجودة في الهواتف المحمولة، تتمثل الميزة في إطالة عمر البطارية. أما في أجهزة الكمبيوتر التي تعمل بالكهرباء، فيكمن المبرر في تقليل تكلفة الطاقة والتبريد والضوضاء.
تستخدم معظم الحواسيب الحديثة منطق CMOS . يهدر CMOS الطاقة بطريقتين شائعتين: عن طريق تغيير الحالة، أي "الطاقة الفعالة"، وعن طريق التسريب غير المقصود. يمكن تقليل الطاقة الفعالة للحاسوب عن طريق إيقاف إشارات التحكم. ويمكن تقليل تيار التسريب عن طريق خفض الضغط الكهربائي، أو الجهد، أو استخدام ترانزستورات ذات مناطق استنزاف أكبر، أو إيقاف تشغيل المنطق تمامًا.
يسهل تقليل استهلاك الطاقة لأن البيانات المخزنة في وحدة المعالجة المركزية لا تتأثر. وتتمثل الطريقة المعتادة في خفض تردد ساعة المعالج. وتستخدم معظم أنظمة الحاسوب هذه الطريقة. ومن الشائع أن يبقى المعالج في وضع الخمول أثناء عملية الانتقال لتجنب الآثار الجانبية لتغير التردد.
تحتوي معظم أجهزة الكمبيوتر أيضًا على تعليمة "إيقاف". وقد صُممت هذه التعليمة لإيقاف التعليمات البرمجية غير المتعلقة بالمقاطعات، لضمان توقيت موثوق للتعليمات البرمجية المتعلقة بالمقاطعات. إلا أن المصممين سرعان ما لاحظوا أن تعليمة الإيقاف تُعدّ أيضًا فرصة مناسبة لإيقاف ساعة المعالج المركزي تمامًا، مما يُقلل استهلاك الطاقة إلى الصفر. قد يستمر مُتحكم المقاطعات في الحاجة إلى الساعة، ولكنه عادةً ما يستهلك طاقة أقل بكثير من المعالج المركزي.
تتميز هذه الأساليب بسهولة تصميمها نسبيًا، وقد شاعت لدرجة دفعت إلى ابتكار أساليب أخرى لتحقيق مكاسب تجارية. تقوم العديد من وحدات المعالجة المركزية الحديثة منخفضة الطاقة بتقنية CMOS بإيقاف وتشغيل وحدات تنفيذ متخصصة وواجهات ناقل بيانات حسب التعليمات المطلوبة. بل إن بعض الحواسيب [ 9 ] تُصمم بنية وحدة المعالجة المركزية الدقيقة بحيث تستخدم مُضاعِفات الإرسال المُفعَّلة بنقل البيانات، ما يضمن استخدام كل تعليمة للأجزاء المنطقية المطلوبة فقط.
إحدى الطرق الشائعة هي توزيع الحمل على عدة وحدات معالجة مركزية، وإيقاف تشغيل الوحدات غير المستخدمة مع انخفاض الحمل. يقوم نظام التشغيل بحفظ بيانات وحدات المعالجة المركزية في الذاكرة. في بعض الحالات، [ 10 ] يمكن أن تكون إحدى وحدات المعالجة المركزية أبسط وأصغر حجمًا، أي تحتوي على عدد أقل من البوابات المنطقية. وبالتالي، يكون تسريب الطاقة فيها منخفضًا، وتكون آخر وحدة يتم إيقاف تشغيلها وأول وحدة يتم تشغيلها. كما أنها تكون وحدة المعالجة المركزية الوحيدة التي تتطلب ميزات خاصة لتوفير الطاقة. تُستخدم طريقة مماثلة في معظم أجهزة الكمبيوتر الشخصية، والتي عادةً ما تحتوي على وحدة معالجة مركزية مدمجة مساعدة تُدير نظام الطاقة. مع ذلك، في أجهزة الكمبيوتر الشخصية، يكون البرنامج عادةً موجودًا في نظام الإدخال والإخراج الأساسي (BIOS)، وليس في نظام التشغيل.
نظرياً، يمكن لأجهزة الكمبيوتر ذات سرعات المعالجة المنخفضة تقليل التسريب عن طريق خفض جهد مصدر الطاقة. يؤثر هذا على موثوقية الكمبيوتر بطرق عديدة، لذا فإن هذه التقنية مكلفة، وهي غير شائعة إلا في أجهزة الكمبيوتر باهظة الثمن نسبياً مثل أجهزة الكمبيوتر الشخصية أو الهواتف المحمولة.
يمكن لبعض التصاميم استخدام ترانزستورات ذات تسريب منخفض للغاية، لكن هذا عادةً ما يزيد التكلفة. يمكن زيادة حواجز الاستنزاف في الترانزستورات لتقليل التسريب، لكن هذا يجعل الترانزستور أكبر حجمًا، وبالتالي أبطأ وأكثر تكلفة. يستخدم بعض الموردين هذه التقنية في أجزاء محددة من الدوائر المتكاملة عن طريق بناء منطق منخفض التسريب من ترانزستورات كبيرة الحجم، وهي تقنية تُستخدم في بعض عمليات التصنيع للدوائر التناظرية. تضع بعض عمليات التصنيع الترانزستورات فوق سطح السيليكون، في ترانزستورات ذات زعانف، لكن هذه العمليات تتطلب خطوات أكثر، لذا فهي أكثر تكلفة. يمكن أيضًا استخدام مواد تطعيم خاصة للترانزستور (مثل الهافنيوم) لتقليل التسريب، لكن هذا يضيف خطوات إلى عملية التصنيع، مما يزيد التكلفة. تتميز بعض أشباه الموصلات بفجوة نطاق طاقة أكبر من السيليكون. ومع ذلك، فإن هذه المواد وعمليات التصنيع حاليًا (2020) أغلى من السيليكون.
تُعد إدارة التسريب أكثر صعوبة، لأنه قبل إيقاف تشغيل المنطق، يجب نقل البيانات الموجودة فيه إلى نوع من أنواع التخزين منخفض التسريب.
تستخدم بعض وحدات المعالجة المركزية [ 11 ] نوعًا خاصًا من الدوائر المنطقية (لتخزين البتات) التي تربط خلية تخزين سريعة ذات تسريب عالٍ بخلية بطيئة وكبيرة (باهظة الثمن) ذات تسريب منخفض. تحتوي هاتان الخليتان على مصادر طاقة منفصلة. عندما تدخل وحدة المعالجة المركزية في وضع توفير الطاقة (على سبيل المثال، بسبب توقف مؤقت في انتظار مقاطعة)، تُنقل البيانات إلى الخلايا ذات التسريب المنخفض، وتُطفأ الخلايا الأخرى. وعندما تخرج وحدة المعالجة المركزية من وضع التسريب المنخفض (على سبيل المثال، بسبب مقاطعة)، تنعكس العملية.
كانت التصاميم القديمة تنسخ حالة وحدة المعالجة المركزية إلى الذاكرة، أو حتى القرص، أحيانًا باستخدام برامج متخصصة. أما الأنظمة المدمجة البسيطة جدًا، فكانت أحيانًا تعيد التشغيل ببساطة.
التكامل مع الحاسوب
تحتوي جميع وحدات المعالجة المركزية الحديثة على منطق تحكم لربطها ببقية مكونات الحاسوب. في الحواسيب الحديثة، يكون هذا عادةً وحدة تحكم ناقل البيانات. عندما تقرأ تعليمة ما أو تكتب في الذاكرة، تتحكم وحدة التحكم إما في ناقل البيانات مباشرةً، أو في وحدة تحكم ناقل البيانات. تستخدم العديد من الحواسيب الحديثة نفس واجهة ناقل البيانات للذاكرة والإدخال والإخراج. يُطلق على هذا اسم "الإدخال/الإخراج المُمَثَّل في الذاكرة". بالنسبة للمبرمج، تظهر سجلات أجهزة الإدخال/الإخراج كأرقام عند عناوين ذاكرة محددة. تستخدم حواسيب x86 طريقةً أقدم، وهي ناقل إدخال/إخراج منفصل يتم الوصول إليه بواسطة تعليمات الإدخال/الإخراج.
تتضمن وحدة المعالجة المركزية الحديثة عادةً وحدة تحكم بالمقاطعات ، حيث تعالج إشارات المقاطعة الواردة من ناقل النظام. وحدة التحكم هي الجزء من الحاسوب المسؤول عن الاستجابة للمقاطعات.
غالبًا ما يوجد متحكم ذاكرة تخزين مؤقت لتخزين البيانات مؤقتًا . يُعد متحكم ذاكرة التخزين المؤقت والذاكرة المرتبطة به عادةً أكبر جزء مادي في وحدة المعالجة المركزية الحديثة عالية الأداء. عندما تتم مشاركة الذاكرة أو ناقل البيانات أو ذاكرة التخزين المؤقت مع وحدات معالجة مركزية أخرى، يجب أن تتواصل منطق التحكم معها لضمان عدم حصول أي جهاز كمبيوتر على بيانات قديمة.
تضمنت العديد من الحواسيب القديمة نوعًا من الإدخال والإخراج مُدمجًا مباشرةً في وحدة التحكم. فعلى سبيل المثال، احتوت العديد منها على لوحة أمامية مزودة بمفاتيح وأضواء يتم التحكم بها مباشرةً من وحدة التحكم، مما مكّن المبرمج من إدخال البرنامج مباشرةً وتصحيح أخطائه. أما في الحواسيب الحديثة، فكان الاستخدام الأكثر شيوعًا للوحة الأمامية هو إدخال برنامج تمهيدي صغير لقراءة نظام التشغيل من القرص. وقد استُبدلت اللوحات الأمامية ببرامج تمهيدية في ذاكرة للقراءة فقط.
كانت معظم طرازات PDP-8 مزودة بناقل بيانات مصمم لتمكين أجهزة الإدخال/الإخراج من استخدام منطق قراءة وكتابة الذاكرة الخاص بوحدة التحكم. [ 12 ] وقد أدى ذلك إلى تقليل تعقيد وتكلفة وحدات التحكم في الإدخال/الإخراج عالية السرعة، على سبيل المثال، للأقراص.
كان جهاز زيروكس ألتو مزودًا بوحدة تحكم دقيقة قابلة للبرمجة متعددة المهام، تتولى تنفيذ جميع عمليات الإدخال والإخراج تقريبًا. [ 13 ] وقد وفر هذا التصميم معظم ميزات الحاسوب الشخصي الحديث باستخدام جزء صغير جدًا من الدوائر الإلكترونية. كان الحاسوب ثنائي الخيوط يُدار بواسطة خيطين دقيقين ذوي أولوية منخفضة، حيث كانا يُجريان العمليات الحسابية عندما لا تكون هناك حاجة إلى عمليات إدخال/إخراج. أما الخيوط الدقيقة ذات الأولوية العالية، فكانت تُوفر (بترتيب تنازلي للأولوية) وظائف الفيديو، والشبكة، والقرص، ومؤقت دوري، وفأرة، ولوحة مفاتيح. تولى البرنامج الدقيق تنفيذ المنطق المعقد لجهاز الإدخال/الإخراج، بالإضافة إلى منطق دمج الجهاز مع الحاسوب. بالنسبة لعمليات الإدخال/الإخراج الفعلية للأجهزة، كان البرنامج الدقيق يقرأ ويكتب سجلات الإزاحة لمعظم عمليات الإدخال/الإخراج، مستخدمًا أحيانًا شبكات مقاومة وترانزستورات لتغيير مستويات جهد الخرج (كما هو الحال في الفيديو). ولمعالجة الأحداث الخارجية، احتوى المتحكم الدقيق على مقاطعات دقيقة لتبديل الخيوط في نهاية دورة الخيط، مثلاً في نهاية تعليمة، أو بعد الوصول إلى سجل إزاحة. كان من الممكن إعادة كتابة البرنامج المصغر وإعادة تثبيته، وهو أمر مفيد للغاية بالنسبة لجهاز كمبيوتر بحثي.
وظائف وحدة التحكم
وبالتالي، فإن برنامج التعليمات المخزن في الذاكرة سيؤدي إلى قيام وحدة التحكم (CU) بتهيئة تدفقات بيانات وحدة المعالجة المركزية (CPU) لمعالجة البيانات بشكل صحيح بين التعليمات. وينتج عن ذلك جهاز كمبيوتر قادر على تشغيل برنامج كامل دون الحاجة إلى تدخل بشري لإجراء تغييرات على الأجهزة بين التعليمات (كما كان الحال عند استخدام البطاقات المثقبة فقط لإجراء العمليات الحسابية قبل اختراع أجهزة الكمبيوتر المبرمجة بوحدات تحكم).
وحدة تحكم سلكية

تُنفذ وحدات التحكم السلكية باستخدام وحدات المنطق التوافقي ، التي تتميز بعدد محدود من البوابات التي يمكنها توليد نتائج محددة بناءً على التعليمات المستخدمة لاستدعاء تلك الاستجابات. وتتميز وحدات التحكم السلكية عمومًا بسرعتها مقارنةً بالتصاميم المبرمجة دقيقًا. [ 14 ]
يعتمد هذا التصميم على بنية ثابتة ، مما يستلزم تغييرات في التوصيلات إذا تم تعديل أو تغيير مجموعة التعليمات . وقد يكون مناسبًا لأجهزة الكمبيوتر البسيطة والسريعة.
يمكن لوحدة التحكم التي تستخدم هذا النهج أن تعمل بسرعة عالية، إلا أنها تفتقر إلى المرونة. وقد تُربك مجموعة التعليمات المعقدة المصمم الذي يستخدم تصميمًا منطقيًا مخصصًا .
أصبح النهج السلكي أقل شيوعًا مع تطور أجهزة الكمبيوتر. في السابق، كانت وحدات التحكم في وحدات المعالجة المركزية تستخدم منطقًا مخصصًا، وكان تصميمها صعبًا. [ 15 ]
وحدة تحكم بالبرامج الدقيقة
طُرحت فكرة البرمجة المصغرة من قِبل موريس ويلكس عام ١٩٥١ كمستوى وسيط لتنفيذ تعليمات برامج الحاسوب . تُنظَّم البرامج المصغرة على شكل سلسلة من التعليمات المصغرة وتُخزَّن في ذاكرة تحكم خاصة. عادةً ما تُحدَّد خوارزمية وحدة التحكم في البرنامج المصغر، على عكس وحدة التحكم السلكية، من خلال وصف مخطط انسيابي . [ ١٦ ] تتمثل الميزة الرئيسية لوحدة التحكم المبرمجة مصغرًا في بساطة بنيتها. تُخرَج البيانات من وحدة التحكم عبر تعليمات مصغرة. يمكن تصحيح البرنامج المصغر واستبداله على غرار البرامج. [ ١٧ ]
أساليب التصميم المركبة
يُعدّ تصحيح الأخطاء باستخدام برنامج محاكاة أحد الأساليب الشائعة في البرمجة الدقيقة. في هذه الحالة، تُصبح البرمجة الدقيقة عبارة عن جدول بتات، وهو جدول حقيقة منطقي يُترجم عنوان البرمجة الدقيقة إلى مخرجات وحدة التحكم. يُمكن تغذية برنامج حاسوبي بهذا الجدول لإنتاج منطق إلكتروني مُحسّن. تتميز وحدة التحكم الناتجة بسهولة تصميمها، تمامًا كسهولة البرمجة الدقيقة، ولكنها تتمتع بسرعة عالية وعدد قليل من العناصر المنطقية، تمامًا كوحدة التحكم السلكية. يُشبه الناتج العملي آلة ميلي أو وحدة تحكم ريتشاردز .
انظر أيضاً
مراجع
- ↑ فون نيومان، جون (1945)، المسودة الأولى لتقرير عن جهاز EDVAC (ملف PDF) ، كلية مور للهندسة الكهربائية، جامعة بنسلفانيا، مؤرشفة من الأصل (ملف PDF) في 14 مارس 2013
- ↑ أستا سينغ (24 سبتمبر 2018). "تنظيم الحاسوب - وحدة التحكم والتصميم" . جيكس فور جيكس . تم الاطلاع عليه بتاريخ 25 مايو 2019 .
- 1 2 أسانوفيتش، كرست (2017). دليل مجموعة تعليمات RISC V (PDF) (الطبعة 2.2 ). بيركلي: مؤسسة RISC-V.
- ↑ Power ISA (الإصدار 3.0B ). أوستن: IBM. 2017. تم الاطلاع عليه بتاريخ 26 ديسمبر 2019 .
- ↑ ثورنتون، جيه إي (1970). تصميم حاسوب: سي دي سي 6600. أتلانتا: سكوت، فورمان وشركاه. ص 125. رقم ISBN 9780673059536.
- 1 2 3 4 5 لايتون، لوك. "Libre RISC-V M-Class" . كراود سبلاي . تم الاسترجاع في 16 يناير 2020 .
- 1 2 3 4 5 ألسوب، ميتش؛ لايتون، لوك. زاروبا، فلوريان؛ ثورنتون، جيمس. كيميت، جوناثان. بيتريسكو، دان؛ تاكانو، س.؛ فالفو، صموئيل. "RISC-V HW Dev، لوحة نتائج غير مرتبة على طراز 6600" . مجموعات جوجل . مؤسسة RISC-V . تم الاسترجاع في 16 يناير 2020 .
- ↑ سيليو، كريس. "BOOM Docs، مولد Rocketship SOC" . تم الاسترجاع في 16 يناير 2020 .
- ↑ مقدمة في بنية MAXQ . دالاس: شركة ماكسيم المتكاملة . تم الاطلاع عليه بتاريخ 26 ديسمبر 2019 .
- ↑ المرجع التقني لشركة ARM، كورتكس ( الإصدار 8). شركة ARM المحدودة.
- ↑ دليل المراجع التقنية لشركة ARM (الإصدار 6، r0 ). كامبريدج: شركة ARM المحدودة.
- ↑ دليل صيانة جهاز PDP-8L (ملف PDF) . ماينارد، ماساتشوستس: شركة المعدات الرقمية، 1970. مؤرشف (ملف PDF) من الأصل في 22 أبريل 2015. تم الاطلاع عليه في 26 ديسمبر 2019 .
- ↑ دليل أجهزة ألتو (ملف PDF) . زيروكس. 1976. مؤرشف (ملف PDF) من الأصل في 7 ديسمبر 2010.
- ↑ "وحدات التحكم المبرمجة دقيقًا مقابل وحدات التحكم السلكية"؛. www.cs.binghamton.edu . مؤرشف من الأصل بتاريخ 30 أبريل 2017. تم الاطلاع عليه بتاريخ 17 فبراير 2017 .
- ↑ ويليامز، آر دي؛ كلينك، آر إتش؛ أيلور، جيه إتش (مايو 2003). "تدريس تصميم الحاسوب باستخدام النماذج الأولية الافتراضية". معاملات IEEE في التعليم . 46 (2): 296-301 . Bibcode : 2003ITEdu..46..296W . doi : 10.1109/te.2002.808278 . ISSN 0018-9359 .
- ^ باركالوف، ألكسندر (2009). التوليف المنطقي لوحدات التحكم المعتمدة على FSM / ألكسندر باركالوف ولاريسا تيتارينكو . برلين: سبرينغر. رقم ISBN 978-3-642-04308-6.
- ^ ويزنيوسكي، ريميغيوش (2009). توليف وحدات التحكم في البرامج الدقيقة التركيبية للأجهزة القابلة للبرمجة . زيلونا جورا: جامعة زيلونا جورا. ص. 153. ردمك 978-83-7481-293-1.
روابط خارجية
- ألكسندر باركالوف، لاريسا تيتارينكو، التفسير الثابت لخوارزميات التحكم
- وحدات التحكم المبرمجة دقيقاً
- وحدات التحكم متعددة الدورات
- وحدات المعالجة المركزية
- الإلكترونيات الرقمية
