وحدة المعالجة المركزية
المعالج المكروي انتل 80486DX2 ضمن غطاء كيراميكي من نوع بي جي أي (PGA)
وحدة المعالجة المركزية إختصارا (و م م - CPU)(بالإنجليزية: Central Processing Unit) أو يطلق عليها اختصارا المعالج (Processor) هي أحد مكونات الحاسوب الرقمي التي تقوم بتفسير التعليمات و معالجة البيانات التي تتضمنها البرمجيات. يعتبر المعالج بالإضافة للذاكرة الرئيسية و وحدات الإدخال و الإخراج من أهم مكونات الحواسب الدقيقة (microcomputers) الحديثة. تعرف المعالجات التي تم تصنيعها بواسطة الدارات المتكاملة (integrated circuits) بالمعالجات الدقيقة (microprocessor) و التي بدأ تصنيعها منذ منتصف سبعينات القرن العشرين على شكل رقاقات مدمجة حلت محل معظم أنواع المعالجات الأخرى.
يدل مصطلح وحدة معالجة مركزية على فئة من الآلات المنطقية التي تقوم بتنفيذ برامج حاسوبية معقدة والتي تشمل أيضا العديد من الحواسب القديمة التي كانت موجودة قبل ظهور هذا المصطلح في بداية الستينات من القرن العشرين.
صممت المعالجات بداية كمعالجات خاصة بتطبيقات معينة و كأحد مكونات الحواسيب الكبيرة والتخصصية لكن ارتفاع تكاليف هذا الأسلوب من التصميم أدى إلى إفساح المجال أمام ظهور معالجات رخيصة و قياسية متعددة الأغراض.
هذه النزعة نحو التوحيد القياسي بدأت بالظهور في عصر الحواسب المركزية (mainframe) ذات الترانزستورات المنفصلة (discrete transistor) و الحواسب الصغيرة (minicomputers) و تسارع مع انتشار الدارات المتكاملة حيث سمحت هذه الدارات بزيادة تعقيد المعالجات و تصغير حجمها. أدى التوحيد القياسي و التصغير المستمر للمعالجات إلى انتشارها الواسع و تجاوزها للتطبيقات التي انحصرت بالحواسب المتخصصة حيث دخلت المعالجات المكروية في شتى مجالات الحياة المعاصرة من السيارات إلى أجهزة الهاتف الخليوية و ألعاب الأطفال.
وحدات التحكم
وحدة التحكم عبارة عن جزء من وحدة المعالجة المركزية 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 نبضات ساعة ) و بعض التعليمات تحتاج لزمن أطول ملاحظة : يتم تصميم الدارة التركيبية لوحدة التحكم عن طريق تشكيل جدول الحقيقة الذي يتم فيه مراعاة شيفرة التعليمات و معرفة اطراف وحدة التحكم المطلوب تفعيلها من أجل كل تعليمة بدءاً من جلب التعليمة و حتى انتهاء تنفيذها .
المعالج المكروي انتل 80486DX2 ضمن غطاء كيراميكي من نوع بي جي أي (PGA)
وحدة المعالجة المركزية إختصارا (و م م - CPU)(بالإنجليزية: Central Processing Unit) أو يطلق عليها اختصارا المعالج (Processor) هي أحد مكونات الحاسوب الرقمي التي تقوم بتفسير التعليمات و معالجة البيانات التي تتضمنها البرمجيات. يعتبر المعالج بالإضافة للذاكرة الرئيسية و وحدات الإدخال و الإخراج من أهم مكونات الحواسب الدقيقة (microcomputers) الحديثة. تعرف المعالجات التي تم تصنيعها بواسطة الدارات المتكاملة (integrated circuits) بالمعالجات الدقيقة (microprocessor) و التي بدأ تصنيعها منذ منتصف سبعينات القرن العشرين على شكل رقاقات مدمجة حلت محل معظم أنواع المعالجات الأخرى.
يدل مصطلح وحدة معالجة مركزية على فئة من الآلات المنطقية التي تقوم بتنفيذ برامج حاسوبية معقدة والتي تشمل أيضا العديد من الحواسب القديمة التي كانت موجودة قبل ظهور هذا المصطلح في بداية الستينات من القرن العشرين.
صممت المعالجات بداية كمعالجات خاصة بتطبيقات معينة و كأحد مكونات الحواسيب الكبيرة والتخصصية لكن ارتفاع تكاليف هذا الأسلوب من التصميم أدى إلى إفساح المجال أمام ظهور معالجات رخيصة و قياسية متعددة الأغراض.
هذه النزعة نحو التوحيد القياسي بدأت بالظهور في عصر الحواسب المركزية (mainframe) ذات الترانزستورات المنفصلة (discrete transistor) و الحواسب الصغيرة (minicomputers) و تسارع مع انتشار الدارات المتكاملة حيث سمحت هذه الدارات بزيادة تعقيد المعالجات و تصغير حجمها. أدى التوحيد القياسي و التصغير المستمر للمعالجات إلى انتشارها الواسع و تجاوزها للتطبيقات التي انحصرت بالحواسب المتخصصة حيث دخلت المعالجات المكروية في شتى مجالات الحياة المعاصرة من السيارات إلى أجهزة الهاتف الخليوية و ألعاب الأطفال.
وحدات التحكم
وحدة التحكم عبارة عن جزء من وحدة المعالجة المركزية 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 نبضات ساعة ) و بعض التعليمات تحتاج لزمن أطول ملاحظة : يتم تصميم الدارة التركيبية لوحدة التحكم عن طريق تشكيل جدول الحقيقة الذي يتم فيه مراعاة شيفرة التعليمات و معرفة اطراف وحدة التحكم المطلوب تفعيلها من أجل كل تعليمة بدءاً من جلب التعليمة و حتى انتهاء تنفيذها .