وحدة التحكم عبارة عن جزء من وحدة المعالجة المركزية cpu أو أي جهاز آخر ، و هي تقوم بتوجيه عمليات هذا الجهاز .
في البدايت كانت وحدات التحكم تعتمد على منطق ad-hoc (المنطق غير المحدد) . و كان من الصعب تصميمها . أما الآن فإنها أصبحت تحقق بواسطة البرامج الصغرية حيث يخزن البرنامج في مخزن التحكم . كلمات البرنامج المصغر ينم اختيارها من قبل موجه ميكروي و بتات هذه الكلمات تتحكم بالأجزاء المختلفة للجهاز و التي تتضمن : المسجلات و وحدة الحساب والمنطق و مسجلات التعليمات و الممرات و رقاقات الدخل/الخرج . و سوف نلاحظ هذه الأجزاء في شكل توضيحي يبينها مع وحدة التحكم . في أنظمة الحاسب الحديثة ربما يكون كل نظام جزئي* redbube له وحدة التحكم الخاصة به بالإضافة إلى وحدة التحكم الأساسية كمراقب عام . تتمثل وحدة التحكم بتلك الأسلاك التي تتحكم بتدفق المعلومات عبر المعالج و تنظم عمل الوحدات الأخرى الموجودة داخله . و بطريقة أخرى هي دماغ داخل دماغ . إن وظيفة وحدة التحكم تتغير بتغير البني الداخلية للمعالج حيث أن وحدة التحكم هي التي تحقق البني الداخلي للمعالج بشكل عملي . في المعالجات التي تنفذ تعليمات ×86 فإن وحدة التحكم تنجز المهام التالية : جلب التعليمة و فك شيفرتها و إدارة تنفيذها و تخزين النتيجة . في المعالجات ذات النوع RISC فإن وحدة التحكم تقوم بمهام كثيرة حتى تنفذ هذه التعليمات . فهي تقوم بإدارة تحويل تعليمات ×86 إلى تعليمات RISC و جدولة التعليمات الصغرية بين وحدات التنفيذ المختلفة و قذف الخرج من هذه الوحدات للتأكد من أنها انتهت في المكان الذي يفترض بها أن تذهب إليه . في أحد هذه المعالجات قد تقسم وحدة التحكم إلى وحدات أخرى (مثل وحدة الجدولة لمعالجة الجدولة و وحدات التقاعد للتعامل مع النتائج القادمة من خطوط المعالجة ) و ذلك حسب تعقيد العمل الذي سوف تقوم به. سوف نقوم الآن بتصميم وحدة تحكم بسيطة و نبين بعض الأجزاء الأخرى التي تشرف عليها وحدة التحكم هذه.
1. Memory address register (MAR): و هو الجزء الذي يقوم بمسك المولدة من قبل العداد PC و تقله إلى ممر المعطيات لإرساله إلى الذاكرة .
2. Program counter (PC): وهو يقوم بتوليد عنوان الحجرة الذاكرية التي تحتوي على التعليمة التالية التي سوف يتم تنفيذها
3. Memory buffer register (MBR): وهو عبارة عن مسجل يقوم بتخزين شيفرة التعليمة التي تم احضارها من الذاكرة
4. Instruction register (IR): وهو مسجل يحتوي على التعليمة الحالية التي سوف تنفذ في وحدة الحساب و المنطق ALU. 5. Timer: وهو دارة تقوم بتوليد الفترات الزمنية لتنفيذ التعليمات . مرحلة جلب التعليمة : هذه المرحلة تكون مقسمة إلى فترات زمنية كما يلي : • الفترة t0 : و فيها يتم تفعيل كل من الطرفين c1 و c5 حيث أن c1 تعني قراءة العنوان الذاكري إلى ممر المعطيات و c5 تعني كتابة محتوى ممر المعطيات إلى MAR و بذلك يكون قد أصبح عنوان التعليمة موجود على ممر العناوين للذاكرة • الفترة t1 : و فيها يتم تفعيل كل من c3 و c7 حيث أن c7 تجعل الذاكرة تضع محتويات الحجرة الذاكرية المحددة على ممر المعطيات لتصل إلى MBR الذي أيضاً يتم تفعيله بواسطة c3 ليضع محتوياته في IR . • الفترة t2 : يتم في هذه الفترة إرسال نبضة إلى عداد البرنامج من الطرف cin للـ cu لزيادة محتوى العداد ليشير إلى الحجرة الذاكرية التالية كما يتم تفعيل الطرف wr للـIR و بذلك تكون شيفرة التعليمة قد أصبحت على مدخل وحدة التحكم في هذه المرحلة يأتي دور وحدة التحكم في فك تشفير التعليمة و إرسال الإشارات اللازمة لتنفيذ هذه التعليمة مرحلة تنفيذ التعليمة : في الشكل الذي لدينا سوف نقوم بتتبع تنفيذ التعليمة and acc,r3 حيث أن شيفرة هذه التعليمة في وحدة الحساب و المنطق التي لدينا تعطى بالشكل
Rsrc Rsrc X X 0 0 0 0
Op code don't care register code و عندما تدخل هذه الشيفرة إلى cu تفك شيفرتها و تصدر الإشارات التالية و ذلك حسب الفترات الزمنية • الفترة T3: في هذه الفترة يتم نقل محتويات R3 إلى المسجل temp ( جميع العمليات في هذا المعالج تتم بين Acc و temp ) وذلك بتفعيل قطب القراءة (RD) للمسجل R3 الذي يقابل الطرف c15 في cu و تفعيل قطب الكتابة WR للمسجل temp الذي يمثل الطرف c20 للـ cu .
• الفترة t4 : يتم وضع شيفرة العملية opcode على المداخل s0 ، s1 ، s2 لوحدة الحساب و المنطق ALU .
• الفترة t5 : يتم وضع محتويات كل من Acc و ذلك بتفعيل الطرف c18 للـ cu و الـ temp و ذلك بتفعيل الطرف c19 للـ cu على دخل وحدة الحساب و المنطق لإجراء العملية المطلوبة كما يتم تفعيل طرف القراءة لمسجل الأعلام عن طريق تفعيل الطرف c22 للـ cu .
• الفترة t6 : في هذه الفترة يتم تصفير مولد الأزمنة time generator للبدء بعملية جلب تعليمة جديدة .
ملاحظة : إن هذه العملية احتاجت أكثر من نبضة ساعة حتى انتهى تنفيذها ( 4 نبضات ساعة ) و بعض التعليمات تحتاج لزمن أطول ملاحظة : يتم تصميم الدارة التركيبية لوحدة التحكم عن طريق تشكيل جدول الحقيقة الذي يتم فيه مراعاة شيفرة التعليمات و معرفة اطراف وحدة التحكم المطلوب تفعيلها من أجل كل تعليمة بدءاً من جلب التعليمة و حتى انتهاء تنفيذها .