# وحدة معالجة مركزية

وحدة المعالجة المركزية (بالإنجليزية: Central Processing Unit، اختصارًا: CPU)‏ أو المعالج (بالإنجليزية: Processor)‏، هي أحد مكونات الحاسوب التي تقوم بتفسير التعليمات ومعالجة البيانات التي تتضمنها البرمجيات. يعتبر المعالج بالإضافة للذاكرة الرئيسية ووحدات الإدخال والإخراج من أهم مكونات الحواسيب الدقيقة (microcomputers) الحديثة. تعرف المعالجات التي تم تصنيعها بواسطة الدائرات المتكاملة (integrated circuits) بالمعالجات الدقيقة والتي بدأ تصنيعها منذ منتصف سبعينات القرن العشرين على شكل رقاقات مدمجة حلّت محلّ معظم أنواع المعالجات الأخرى.
يدلّ مصطلح وحدة معالجة مركزية على فئة من الآلات المنطقية التي تقوم بتنفيذ برامج حاسوبية معقدة والتي تشمل أيضاً العديد من الحواسب القديمة التي كانت موجودة قبل ظهور هذا المصطلح في بداية الستينات من القرن العشرين.
صُممت المعالجات بداية كمعالجات خاصة بتطبيقات معينة وكأحد مكونات الحواسيب الكبيرة والتخصصية لكن ارتفاع تكاليف هذا الأسلوب من التصميم أدى إلى إفساح المجال أمام ظهور معالجات رخيصة وقياسية متعددة الأغراض.
هذه النزعة نحو التوحيد القياسي بدأت بالظهور في عصر الحواسيب المركزية (mainframe) ذات الترانزستورات المنفصلة (discrete transistors) والحواسب الصغيرة وتسارع مع انتشار الدارات المتكاملة حيث سمحت هذه الدارات بزيادة تعقيد المعالجات وتصغير حجمها. أدى التوحيد القياسي والتصغير المستمر للمعالجات إلى انتشارها الواسع وتجاوزها للتطبيقات التي انحصرت بالحواسب المتخصصة حيث دخلت المعالجات الميكروية في شتى مجالات الحياة المعاصرة من السيارات إلى أجهزة الهواتف الذكية وألعاب الأطفال

## وحدات التحكم

وحدة التحكم عبارة عن جزء من وحدة المعالجة المركزية CPU أو أي جهاز آخر، وهي تقوم بتوجيه عمليات هذا الجهاز حيث هي أهم جزء في المعالج
في البداية كانت وحدات التحكم تعتمد على منطق ad-hoc (المنطق غير المحدد). وكان من الصعب تطبيقها. أما الآن فإنها أصبحت تحقق اهداف البرامج حيث يخزن البرنامج في مخزن التحكم. كلمات البرنامج المصغر يتم اختيارها من قبل موجه ميكروي وبتات هذه الكلمات تتحكم بالأجزاء المختلفة للجهاز والتي تتضمن : المسجلات ووحدة التفاهة الهندسية ومسجلات التعليمات والممرات ورقاقات الدخل/الخرج. وسوف نلاحظ هذه الأجزاء في شكل توضيحي يبينها مع وحدة التحكم. في أنظمة الحاسب الحديثة ربما يكون كل نظام جزئي له وحدة التحكم الخاصة به بالإضافة إلى وحدة التحكم الأساسية كمراقب عام. تتمثل وحدة التحكم بتلك الأسلاك التي تتحكم بتدفق المعلومات عبر المعالج وتنظم عمل الوحدات الأخرى الموجودة داخله. وبطريقة أخرى هي دماغ داخل دماغ. إن وظيفة وحدة التحكم تتغير بتغير البني الداخلية للمعالج حيث أن وحدة التحكم هي التي تحقق البني الداخلي للمعالج بشكل عملي. في المعالجات التي تنفذ تعليمات ×86 فإن وحدة التحكم تنجز المهام التالية : جلب التعليمة وفك شيفرتها وإدارة تنفيذها وتخزين النتيجة. في المعالجات ذات النوع RISC فإن وحدة التحكم تقوم بمهام كثيرة حتى تنفذ هذه التعليمات. فهي تقوم بإدارة تحويل تعليمات ×86 إلى تعليمات RISC وجدولة التعليمات الصغرية بين وحدات التنفيذ المختلفة وقذف الخرج من هذه الوحدات للتأكد من أنها انتهت في المكان الذي يفترض بها أن تذهب إليه. في أحد هذه المعالجات قد تقسم وحدة التحكم إلى وحدات أخرى (مثل وحدة الجدولة لمعالجة الجدولة ووحدات التقاعد للتعامل مع النتائج القادمة من خطوط المعالجة) وذلك حسب تعقيد العمل الذي سوف تقوم به. سوف نقوم الآن بتصميم وحدة تحكم بسيطة ونبين بعض الأجزاء الأخرى التي تشرف عليها وحدة التحكم هذه.
* (Memory Address Register) (MAR): وهو الجزء الذي يقوم بمسك المولدة من قبل العداد PC ونقله إلى ممر المعطيات لإرساله إلى الذاكرة
* (Program Counter)(PC): وهو يقوم بتوليد عنوان الحجرة الذاكرية التي تحتوي على التعليمة التالية التي سوف يتم تنفيذها
* (Memory Buffer Register) (MBR): وهو عبارة عن مسجل يقوم بتخزين شيفرة التعليمة التي تم إحضارها من الذاكرة
* (Instruction Register) (IR): وهو مسجل يحتوي على التعليمة الحالية التي سوف تنفذ في وحدة الحسابيات والمنطق وحدة حساب ومنطق
* Timer وهو دارة تقوم بتوليد الفترات الزمنية لتنفيذ التعليمات
مرحلة جلب التعليمة : هذه المرحلة تكون مقسمة إلى فترات زمنية (t0,t1,t2~tn)كما يلي : • الفترة 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 نبضات ساعة) وبعض التعليمات تحتاج لزمن أطول ملاحظة : يتم تصميم الدارة التركيبية لوحدة التحكم عن طريق تشكيل جدول الحقيقة الذي يتم فيه مراعاة شيفرة التعليمات ومعرفة اطراف وحدة التحكم المطلوب تفعيلها من أجل كل تعليمة بدءاً من جلب التعليمة وحتى انتهاء تنفيذها.
** أشهر المعالجات المتوفرة بالأسواق
من أشهر المعالجات توفرا في السوق هي معالجات Intel ومعالجات AMD كما توجد في الأسواق أنواع أخرى لكنها أقل جودة، وتحظى باهتمام قليل من قبل مقتني أجهزة الحاسب، ومن هذه الأنواع Cyrix وVIA
** تقاس سرعات المعالج بالميجا Megahertz أو القيقا هيرتز Gigahertz وتكتب اختصارا MHz أو GHz