مكونات وحدة المعالجة المركزية (CPU) والتعليمات
مكونات وحدة المعالجة المركزية (CPU)
المقدمة
تعتبر وحدة المعالجة المركزية (CPU) القلب النابض لأي جهاز حاسوب، فهي المسؤولة عن تنفيذ جميع العمليات الحسابية والمنطقية، وتوجيه سير العمل داخل الجهاز. تشبه وحدة المعالجة المركزية دماغ الإنسان، حيث تقوم بمعالجة المعلومات واتخاذ القرارات بناءً على تلك المعلومات.
1. تعريف وحدة المعالجة المركزية (CPU)
وحدة المعالجة المركزية (Central Processing Unit) هي عبارة عن رقاقة إلكترونية معقدة تحتوي على ملايين الترانزستورات. تقوم هذه الرقاقة بتنفيذ التعليمات المخزنة في الذاكرة، وتحويل البيانات الخام إلى معلومات مفيدة. بمعنى آخر، هي المسؤولة عن جميع العمليات الحسابية والمنطقية التي يقوم بها الحاسوب.
2. مكونات وحدة المعالجة المركزية
تتكون وحدة المعالجة المركزية من عدة مكونات رئيسية تعمل معًا لتنفيذ المهام الموكلة إليها:
1. وحدة الحساب والمنطق (Arithmetic Logic Unit - ALU)
هي الجزء المسؤول عن تنفيذ العمليات الحسابية والمنطقية الأساسية مثل الجمع والطرح والضرب والقسمة والمقارنات المنطقية. تتكون بدورها من وحدتين فرعيتين:
- وحدة الفاصلة العائمة: تعالج الأعداد الحقيقية (الأعداد التي تحتوي على فاصلة عشرية)
- وحدة الأعداد الصحيحة: تختص وحدة الأعداد الصحيحة في معالجة الأعداد الصحيحة، وهي الأعداد التي لا تحتوي على أجزاء عشرية.
2. محلل رموز التعليمات (Instruction Decoder)
يقوم بتحليل التعليمات التي تأتي من الذاكرة وترجمتها إلى سلسلة من الإشارات الكهربائية التي تفهمها أجزاء المعالج الأخرى. بمعنى آخر، هو المسؤول عن فهم لغة البرمجة وتحويلها إلى لغة الآلة التي يفهمها المعالج.
3. المسجلات (Registers)
هي عبارة عن ذاكرات صغيرة وسريعة جدًا داخل المعالج تستخدم لتخزين البيانات المؤقتة والتعليمات التي يتم تنفيذها حاليًا. من أهم أنواع المسجلات:
- المركم (Accumulator): يستخدم لتخزين النتائج المؤقتة للعمليات الحسابية.
- مسجل التعليمات (Instruction Register): يحفظ التعليمات التي يجري تنفيذها حاليًا.
- مسجل العنوان (Address Register): يحفظ عنوان الذاكرة الذي سيتم قراءة البيانات منه أو كتابة البيانات فيه.
- مسجل البيانات (Data Register): يحفظ البيانات التي يتم قراءتها من الذاكرة أو كتابة البيانات فيها.
4. مكونات أخرى:
- وحدة إدارة الذاكرة (Memory Management Unit): مسؤولة عن إدارة الذاكرة الرئيسية وتقسيمها إلى أجزاء صغيرة.
- دارات التوقيت والتحكم: تتحكم في توقيت تنفيذ العمليات وتنسق عمل الأجزاء المختلفة للمعالج.
خلاصة الجزء الأول من الدرس
وحدة المعالجة المركزية هي قلب الحاسوب، وهي المسؤولة عن تنفيذ جميع العمليات الحسابية والمنطقية. تتكون من عدة مكونات تعمل معًا لتحقيق هذا الهدف. بفهم مكونات وحدة المعالجة المركزية، يمكننا فهم كيفية عمل الحاسوب بشكل أفضل وتقدير التطور الهائل الذي شهده هذا المجال.
الجزء الثاني : وحدة المعالجة المركزية / التعليمات
1. تعريف التعليمة
التعليمة (Instruction) هي أمر برمجي يُعطى للمعالج للقيام بعملية محددة على بيانات معينة.
تتكون التعليمات عادةً من عدة أجزاء منها:
- الرمز التشغيلي (Opcode): هذا هو الجزء الأكثر أهمية في التعليمة. فهو يحدد نوع العملية التي يجب على المعالج القيام بها. هل هي عملية جمع؟ طرح؟ مقارنة؟ أم عملية أخرى؟
- العناوين: هذه تشير إلى مواقع البيانات التي ستستخدم في تنفيذ العملية. تخيل أنك تريد جمع رقمين، فالعناوين ستشير إلى أماكن هذين الرقمين في الذاكرة.
مثال: التعليمة قد تطلب من المعالج جمع رقمين، أو تخزين قيمة معينة في موقع ذاكرة محدد.
مثال توضيحي:
"اجمع الرقمين 5 و 3 واحفظ النتيجة في المربع رقم 10"
يمكن ترجمة هذه الجملة إلى تعليمة حاسوبية تتكون من:
- الرمز التشغيلي: "جمع"
- العنوان الأول: يشير إلى مكان الرقم 5 في الذاكرة.
- العنوان الثاني: يشير إلى مكان الرقم 3 في الذاكرة.
- العنوان الثالث: يشير إلى المكان الذي سيتم حفظ النتيجة فيه (المربع رقم 10)
2. تصنيف التعليمات
أ - تصنيف التعليمات بناءً على نوع العملية
تُقسم التعليمات التي يفهمها المعالج إلى أنواع مختلفة بناءً على الوظيفة التي تؤديها. هذا التصنيف يساعد في فهم كيفية عمل المعالج وكيفية بناء البرامج بشكل أكثر فعالية.
1. تعليمات حسابية (Arithmetic Instructions)
هذه التعليمات هي المسؤولة عن تنفيذ العمليات الحسابية الأساسية التي نتعامل معها يوميًا، مثل:
- الجمع: إضافة قيمتين رقميتين. (ADD A, B)
- الطرح: طرح قيمة رقمية من أخرى. (SUB X, Y)
- الضرب: ضرب قيمتين رقميتين.
- القسمة: قسمة قيمة رقمية على أخرى.
- الزيادة: زيادة قيمة في سجل أو في الذاكرة بمقدار معين.
- النقصان: نقصان قيمة في سجل أو في الذاكرة بمقدار معين.
2. تعليمات منطقية (Logical Instructions)
تستخدم هذه التعليمات لمقارنة القيم وتنفيذ عمليات منطقية عليها، مثل:
- AND: يعطي النتيجة 1 (صحيح) إذا كانت كلا القيمتين 1، وإلا يعطي 0 (خطأ).
- OR: يعطي النتيجة 1 إذا كانت إحدى القيمتين على الأقل 1.
- NOT: يعكس قيمة البت، أي يحول 1 إلى 0 والعكس.
3. تعليمات نقل البيانات (Data Transfer Instructions)
تنقل هذه التعليمات البيانات بين الذاكرة والسجلات، أو بين سجل وآخر.
- الأمثلة:
- MOV A, B: انقل قيمة السجل B إلى السجل A.
- LOAD A, [1000]: حمّل قيمة الخلية رقم 1000 في الذاكرة إلى السجل A.
- STORE A, [2000]: احفظ قيمة السجل A في الخلية رقم 2000 في الذاكرة.
- 4 تعليمات التحكم (Control Instructions): مثل تعليمات القفز (Jump)، والاستدعاء (Call)، والعودة (Return)، والتي تستخدم للتحكم في تسلسل تنفيذ التعليمات.
- تعليمات الإدخال/الإخراج: تستخدم للتفاعل مع الأجهزة الخارجية مثل لوحة المفاتيح والشاشة.
- تعليمات الفاصلة العائمة: تستخدم لمعالجة الأعداد الحقيقية (الأعداد التي تحتوي على فاصلة عشرية)
ب - تصنيف التعليمات حسب عدد العناوين المستخدمة في حقل المعاملات
يمكن تصنيف التعليمات حسب عدد العناوين المستخدمة للإشارة إلى مواقع البيانات كالتالي:
1. تعليمات ذات عنوان واحد
تشير هذه التعليمات إلى موقع ذاكرة واحد فقط، وغالباً ما يكون هناك تسجيل مؤقت يستخدم للتخزين أو للنتائج، كتعليمة "LOAD" التي تقوم بجلب قيمة من الذاكرة إلى السجل المؤقت.
مثال:
- LOAD A: هذه التعليمة تجلب قيمة من موقع الذاكرة المحدد بـ "A" وتضعها في سجل خاص.
- STORE B: هذه التعليمة تحفظ القيمة الموجودة في السجل الخاص في موقع الذاكرة المحدد بـ "B".
2. تعليمات ذات عنوانين
تحتوي هذه التعليمات على عنوانين، أحدهما للقراءة والآخر للكتابة. مثل تعليمة "ADD" التي تجمع بين قيمتين وتخزن النتيجة في أحد العناوين.
مثال: ADD A, B: هذه التعليمة تجمع قيمتي A و B وتخزن النتيجة في A أو في أحد سجلات المعالج (accum).
3. تعليمات ذات ثلاثة عناوين
تتطلب هذه التعليمات ثلاثة عناوين: اثنان للقراءة وواحد للكتابة، مما يُتيح أداء العمليات على عنوانين وتخزين النتيجة في عنوان ثالث.
مثال: ADD C, A, B ; اجمع A و B واحفظ النتيجة في C
دورة تنفيذ التعليمة
دورة تنفيذ التعليمة هي مجموعة من الخطوات التي يقوم بها المعالج لتنفيذ تعليمة واحدة من الذاكرة، وتشمل هذه الدورة عدة مراحل أساسية:
- جلب التعليمة (Fetch): يقوم المعالج بجلب التعليمة من موقعها في الذاكرة الرئيسية باستخدام عداد البرنامج (Program Counter)، الذي يشير إلى عنوان التعليمة الحالية.
- فك ترميز التعليمة (Decode): بعد جلب التعليمة، يقوم المعالج بفك ترميزها لفهم نوع العملية المطلوبة والبيانات التي يجب معالجتها. يتم تفسير الرمز التشغيلي وتحديد مواقع البيانات إذا كانت مطلوبة.
- جلب البيانات (Fetch Operands): إذا كانت التعليمة تتطلب بيانات خارجية، يقوم المعالج بجلب هذه البيانات من الذاكرة أو من السجلات الداخلية الخاصة بالمعالج.
- تنفيذ التعليمة (Execute): يقوم المعالج بتنفيذ العملية المطلوبة، مثل الجمع أو الطرح أو نقل البيانات.
- كتابة النتائج (Write Back): بعد تنفيذ التعليمة، تُكتب النتائج في موقع معين، إما في ذاكرة المعالج (سجل معين) أو في الذاكرة الرئيسية إذا كان ذلك ضروريًا.
- تحديث عداد البرنامج (PC Update): يتم تحديث عداد البرنامج للإشارة إلى التعليمة التالية التي سيتم تنفيذها، مما يُمكّن المعالج من تكرار العملية لتنفيذ التعليمات المتتابعة.
رابعاً: تصنيف التعليمات حسب نوعها
تُصنف التعليمات حسب نوع العملية التي تنفذها إلى عدة أنواع رئيسية، منها:
- تعليمات المعالجة الحسابية والمنطقية (ALU Instructions): تشمل هذه التعليمات العمليات الحسابية مثل الجمع والطرح والضرب، وكذلك العمليات المنطقية مثل AND، OR، NOT.
- تعليمات التحكم (Control Instructions): تتحكم هذه التعليمات في تدفق البرنامج مثل تعليمات القفز (JMP) واستدعاء الدوال (CALL) وتعليمات التكرار (LOOP).
- تعليمات النقل (Data Transfer Instructions): تقوم بنقل البيانات بين الذاكرة والسجلات أو بين السجلات فقط، مثل تعليمات التحميل (LOAD) والتخزين (STORE).