تصميم وحدة المعالجة المركزية
أن أهم المكونات الرئيسية لأي حاسب هي وحدة المعالجة المركزية CPU والوظيفة الرئيسية لها تكمن في تنفيذ مجموعة التعليمات المخزنة في ذاكرة الحاسب.
أساسيات وحدة المعالجة المركزية CPU BASICS
تتألف وحدة المعالجة المركزية من ثلاث مكونات رئيسية هي:
1- تختلف مجموعة المسجلات من حاسب حاسب لاخر وذلك حسب بنيته. حيث تضم مجموعة مسجلات الأغراض العامة ومجموعة مسجلات الأغراض الخاصة.وتستخدم مجموعة مسجلات الأغراض العامة لأي غرض ما بينما مجموعة مسجلات الأغراض الخاصة يكون لها وظيفة محددة.على سبيل المثال عداد البرنامج PC هو مسجل أغراض خاصة يستخدم من أجل الأحتفاظ بعنوان التعليمة التي سيتم تنفيذها لاحقا بينما المسجل IR يحتفظ بالتعليمة الحالية التي يتم تنفيذها حالياً.
2- وحدة الحساب والمنطق ALU تزود الدارات اللازمة من أجل تنفيذ العمليات الحسابية والمنطقية وعمليات الإزاحة الموجودة في مجموعة التعليمات
3- وحدة التحكم CU مسؤولة عن جلب التعليمة من الذاكرة الرئيسية وفك شيفرتها وتنفيذها.
الشكل 5.1 يبين المكونات الرئيسية لوحدة المعالجة المركزية CPU والعلاقة بين نظام الذاكرة وأجهزة الدخل والخرج I/O.
تقوم وحدة المعالجة المركزية بجلب التعليمات من الذاكرة وقراءة التعليمات من الذاكرة وكتابتها فيها ونقل البيانات من وإلى أجهزة الدخل والخرج. يمكن تنفيذ دورة التعليمة بشكل مبسط ومثالي كما يلي :
تتكرر دورة تنفيذ التعليمة طالما توجد تعليمات يجب تنفيذها وإن عملية أختبار المقاطعة تكون عادة ضمن دورة تنفيذ التعليمة، ومثال على ذلك طلبات أجهزة الدخل والخرج والطفحان الرياضي وخطأ الصفحة.
عندما يتم مصادفة طلب المقاطعة فإنه يتم الانتقال إلى روتين خدمة المقاطعة وهو عبارة عن برنامج يستدعى لجمع الحالات حول البرنامج الجاري تنفيذه
إن الأعمال التي تقوم بها وحدة المعالجة المركزية عند تنفيذها لدورة الأمر تعرف باسم العمليات الميكروية وهذه العمليات مصدرها لوحة التحكم CU.
هذه العمليات الميكروية توزع إشارات التحكم على خطوط تحكم محددة. على سبيل المثال دعنا نفترض أننا نريد تنفيذ الأمر الذي يقوم بنقل محتويات السجل X إلى السجل Y ولنفرض أيضاً ان كلا المسحلين متصلين مع data path(ممر البيانات) عندها سترسل وحدة التحكم إشارات تحكم(control signals) لأخبار المسجل X بوضع محتوياته على ممر البيانات(Data path) وبعد فترة تأخير معينة فإن إشارة تحكم أخرى سوف ترسل لأخبار السجل Y بالقراءة من ممر البيانات data path.
تفعيل إشارات التحكم يحدد إما باستخدام البرمجة الميكروية microprogramming أو باستخدام hardwired control.وهذه الأفكار سوف نتطرق لشرحها لاحقاً إن شاء الله ،وسنشرح أيضاً مجموعة المسجلات ووظائفها المختلفة وما المقصود من ممر المعطيات وممر التحكم ودورة تنفيذ الأمر من خلال وحدة المعالجة المركزية CPU وأخيراً سوف نشرح
المسجلات عبارة عن مواقع ذاكرية سريعة جداً ضمن وحدة المعالجة المركزية تستعمل لتوليد وتخزين نتائج عمليات وحدة المعالجة المركزية والحسابات الأخرى.
تختلف الحواسيب عن بعضها بالمسجلات من حيث عدد المسجلات وأنواعها وطول كل مسجل وتختلف أيضاً في استعمال كل مسجل.
-مسجلات الأغراض العامة : تستخدم لأغراض خاصة متعددة ويتم تخصيصها لوظائف مختلفة من قبل المبرمج.
- مسجلات الأغراض الخاصة : وهذه المسجلات مخصصة لوظائف محددة، في بعض الحالات بعض المسجلات تستخدم فقط من أجل حفظ المعلومات، وكلما كان طول المسجل أكبر كلما كان ذلك أفضل 
- مسجلات العنونة : يمكن استخدامها لنمط عنونة معين أو يمنك استخدامها لعنونة عامة الأغراض.
والجدير بالذكر عدد المسجلات في بنية ما يؤثر على تصميم مجموعة التعليمات فعندما يكون عدد المسجلات قليل سيؤدي ذلك إلى زيادة الإشارات المرسلة إلى الذاكرة، حيث تستخدم بعض المسجلات لحفظ بتات حالة المعالجة أو الأعلام، هذه البتات ترسل من ال CPU كنتيجة لتنفيذ تعليمة ما. بتات الحالة يمكن اختبارها في فترة أطول بالمقارنة مع عمليات أخرى.
هناك مسجلين أساسيين من أحل عمليات القراءة من الذاكرة والكتابة فيها هما MDR (memory data register) و MAR (memory address register).المسجلات MDR، MAR تستعمل بشكل خاص من قبل وحدة المعالجة المركزية ولا يمكن الوصول إليهما من قبل المبرمج.
أولا: من أجل تمثيل عملية كتابة في موقع محدد في الذاكرة سوف تستخدم المسجلين MDR و MAR كما يلي : 
ثانيا: تخزين الكلمة في المسحل MDR ويتم ذلك بواسطة ال CPU 
ثالثا: تخزين الموقع الذي سبخزن فيه الكلمة في المسحل MAR ويتم ذلك بواسطة ال CPU أيضاً.
خامسا: تخزين الموقع الذاكري الذي سنقرأ منه المعطيات في المسجل MAR 
سادسا: طلب إشارة قراءة من الذاكرة 
سابعا: تخزين الكلمة المطلوبة من الذاكرة في المسجل MDR حيث تصبح جاهزة للاستخدام من قبل وحدة المعالجة المركزية CPU.
يوجد لدينا مسجلين أساسيين هما مسجل عداد البرنامج PC ومسجل الأمر IR 
بعد احضار الأمر بنجاج يتم تحديث محتويات المسجل PC ليشير إلى الأمر التالي الذي سيتم تنفيذها.
المسجلات الشرطية أو الأعلام تستخدم لتحديد حالة المعلومات، بعض البنى تحتوي على مسجلات خاصة لحالة كلمة البرنامج PSW (program status word register) حيث يحتوي ال PSW على بتات يتم وضعها من قبلالة المعالج
تستخدم مسجلات الأغراض العامة لأغراض خاصة متعددة ويتم تخصيصها لوظائف مختلفة من قبل المبرمج.
في العنونة المفهرسة العنوان لمتحول ما يتم الحصول عليه بإضافة ثابت ما لمحتويات مسجل المفهرسة، حيث يحتفظ مسجل الفهرسة بعنوان الإزاحة.
العنونة المفهرسة يشار إليها في التعليمة من خلال وضع مسجل الفهرسة ما بين اقواس هلالية واستخدام الرمز x للإشارة إلى الثابت الذي ستم اضافته.
عندما يتم طلب عنوان من المعالج ينبغي أن يتألف من رقم المقطع (القاعدة (ومن الإزاحة. مسجل المقطع يحتفظ بعنوان القاعدة (الأساس (لهذا المقطع
المكدس هومنطقة تخزين للمعطيات بحيث أن المعطيات التي توضع أخيراً فيها يتم إخراجها أولا، وهناك عمليتين يمكن تمثيلهما في المكدس PUSH، POP ويوجد مسجل خاص يسمى SP يستخدم لتحديد موقع المكدس الذي يمكن عنونته.
في عملية PUSH قيمة SP تستخدم للإشارة إلى الموقع (قمة المكدس) حيث أنه بعد دفع قيمة إلى المكدس فإن قيمة SP سوف تزداد. وتتناقص قيمة SP أثناء نمو المكدس
يمكن تقسيم وحدة المعالجة المركزية إلى قسمين:قسم المعطيات وقسم التحكم
نقل البيانات الداخلي يتم تمثيله بالممر المحلي والذي يحمل المعلومات والتعليمات والعناوين.
خارجياً يتم نقل المعطيات من المسجلات إلى الذاكرة وأجهزة الدخل والخرج I/O بواسطة ممر النظام 
نقل البيانات الداخلي بين المسجلات وبين ال ALU والمسجلات يمكن أن يستخدم عدة بنى مختلفة تتضمن :
بنية بممر واحد – ممرين - ثلاث ممرات 
و إن تخصيص ممر المعطيات يستخدم أيضاً بين المكونات التي يتم نقل البيانات من خلالها فعلى سبيل المثال يتم نقل محتويات المسجل PC إلى المسجل MAR من أجل جلب تعليمة جديدة في بداية كل دورة تعليمة.لذلك يكون تخصيص ممر المعطيات من المسجل PC إلى المسجل MAR مفيدا في سرعة تنفيذ هذه التعليمة.
عند استخدام ممر واحد فإن مسجلات وحدة المعالجة المركزية CPU ووحدة الحساب والمنطق ALU سوف تستخدم ممر وحيد لنقل البيانات الداخلة والناتجة. في هذه الحالة الممر يقوم بعملية واحدة لنقل البيانات في دورة ساعة واحدة ونتيجة لذلك العمليات بمتحولين سوف تحتاج إلى دورتي ساعة لجلب المتحولات إلى ال ALU كما أن المسجلات تكون بحاجة إلى BUFFER من أجل وحدة الحساب والمنطق ALU.
بنية ها الممر تكون أبسط واقل تكلفة لكنها محدودة في كمية البيانات المنقولة في نفس دورة الساعة وبالتالي فهي تبطئ من سرعة الأداء.
الشكل 5.3 يبين ممر معطيات واحد يتألف من مجموعة مسجلات الأغراض العامة ومن المسجل MDR والمسجل MAR والمسجل IR والمسجل PC ومن وحدة الحساب والمنطق ALU
إن استخدام بنية بممرين هو حل أسرع من استخدام بنية بممر واحد وفي هذه الحالة تكون من مسجلات الأغراض العامة متصلة مع كلا الممرين والبيانات يمكن أن تنتقل في نفس الوقت بين مسجلين مختلفين إلى دخل وحدة الحساب 
والمنطق لذلك يمكن جلب متحولي العملية في نفس نبضة الساعة..بالإضافة إلى ذلك فإن المسجلات تحتاج إلى
BUFFER لحفظ خرج ال ALU عندما تكون وحدة المعالجة المركزية مشغولة في تحميل المتحولين 
الشكل 5.4a يبين بنية بممرين.
في بعض الحالات يكون أحد الممرات مخصص لنقل البيانات إلى المسجلات (ممر دخل)، بينما الممر الآخر مخصص من أجل نقل البيانات الناتجة من المسجلات (ممر خرج).في هذه الحالة نحن نحتاج أيضاً على BUFFER للمسجل لكل مداخل وحدة الحساب والمنطق من أجل حفظ أحد المتحولات.
خرج ال ALU يمكن أن يتصل بشكل مباشر إلى ممر الدخل والذي سوف ينقل النتائج إلى أحد المسجلات والشكل 5.4b يبين بنية بممرين (ممر دخل وممر خرج)
في البنية ذات الثلاث ممرات فإن يتم استخدام ممرين كمصدر بينما الممر الثالث يستخدم كمستقر، ممرات المصدر تنقل البيانات من خرج المسجلات (ممر خرج)، وممر المستقر ينقل البيانات إلى دخل المسجلات (ممر دخل)، كل من ممري الخرج متصل مع وحدة الحساب والمنطق بينما خرج وحدة الحساب والمنطق متصل مباشرة مع ممر الدخل 
كما هو متوقع فإن زيادة عدد الممرات سيؤدي إلى زيادة كمية البيانات التي ستم نقلها في نفس دورة الساعة الواحدة 
على كل حال عند زيادة عدد الممرات سيؤدي أيضاً إلى زيادة تعقيد البنية.
الشكل 5.5 يبين مثال على نظام بثلاث ممرات للمعطيات.
إن سلسلة التعليمات المنجزة بواسطة وحدة المعالجة المركزية خلال تنفيذها لتعليمة ما مبينة في الشكل 5.6 وطبعاً يتم جلب التعليمات من الذاكرة الرئيسية طالما توجد هناك تعليمات يجب تنفيذها.
و إن تنفيذ التعليمة يعتمد على متغيرات محددة في حقل شيفرة التعليمة وبعد إتمام تنفيذ التعليمة يتم إجراء اختبار لمعرفة حدوث طلب للمقاطعة أم لا، لأن روتين خدمة المقاطعة يتطلب استدعاءه في حالة المقاطعة.
العملية الأساسية خلال جلب التعليمة – تنفيذ التعليمة - خدمة المقاطعة معرفة كسلسلة من العمليات الميكروية ولا بد من تفعيل مجموعة من إشارات التحكم لبدء تنفيذ العمليات الميكروية 
سنتعرف فيما بعد على عمليات ميكروية لتنفيذ جلب التعليمة - تنفيذ تعليمة حسابية بسيطة – خدمة المقاطعة.
يمكن تلخيص سلسلة الأحداث في عملية جلب التعليمة في الخطوات التالية :عند استخدامنا لنظام بممر معطيات واحد كما هو مبين في الشكل 5.3 فإن عملية جلب التعليمة يمكن إنجازها بثلاث خطوات كما هو مبين في الجدول التالي علماً أن t0 < t1 < t2
أما عند استخدامنا لثلاث ممرات معطيات المبين في الشكل 5.5 فإن خطوات إنجاز جلب التعليمة يمكن إنجازها كما في الجدول التالي :
هذه العملية تقوم بجمع محتويات مسجلي المصدر R1، R2 وتخزن النتيجة في مسجل المستقر، يمكن تنفيذ عملية الجمع هذه كما يلي :
-عند استخدام ممر معطيات واحد كما هو مبين في الشكل 5.3 فإن عملية الجمع هذه سوف تحتاج 
إلى ثلاث خطوات كما هو مبين في الجدول التالي: حيث t0 < t1 < t2
-عند استخدام ممرين للمعطيات كما هو مبين في الشكل 5.4a فإن هذه العملية تحتاج إلى خطوتين كما هو مبين في الجدول التالي : حيث t0 < t1
-عند استخدام ممرين للمعطيات كما هو مبين في الشكل 5.4b فإن هذه العملية تحتاج إلى خطوتين كما هو مبين في الجدول التالي : حيث t0 < t1
-عند استخدام ثلاث ممرات معطيات كما هو مبين في الشكل 5.5 فإن عملية الجمع سوف تحتاج إلى خطوة واحدة كما يلي :
ADD X,R0
هذه العملية تجمع محتويات موقع الذاكرة X مع محتويات المسجل R0 وتخزن النتيجة في المسجل R0 يمكن تنفيذ هذه العملية وفق الخطوات التالية :
-عنداستخدام ممر معطيات كماهو مبين في الشكل 5.3 فإن عملية الجمع سوف تحتاج
إلى خمس خطوات كما هو مبين في الجدول التالي: حيث t0< t1< t2 < t3 < t4
-عند استخدام ممرين للمعطيات كما هو مبين في الشكل 5.4 a فإن عملية الجمع تتم في أربع خطوات كما هو مبين في الجدول التالي : : حيث t0< t1< t2 < t3
-عند استخدام ممرين للمعطيات كما هو مبين في الشكل 5.4b فإن عملية الجمع تتم في أربع خطوات كما هو مبين في الجدول التالي : : حيث t0< t1< t2 < t3
-عند استخدام ثلاث ممرات للمعطيات كما هو مبين في الشكل 5.5 فإن عملية الجمع تحتاج إلى ثلاث خطوات كما هو مبين في الجدول التالي : حيث t0< t1< t2
بعد تنفيذ التعليمة فإنه يتم إجراء اختبار لطلب المقاطعة، فإذا وجد طلب للمقاطعة فإنه يتم إجراء الخطوات التالية:
1- تخزين محتويات المسجل PC في المسجل MDR (من أجل حفظها).
2- تحميل المسجل MAR بالعنوان الموجود في محتويات المسجل PC.(يتم حفظها).
3- تحميل المسجل PC بعنوان أول تعليمة من روتين خدمة المقاطعة.
4-تخزين محتويات المسجل MDR (قيم المسجل PC القديمة) في الذاكرة.
يبين الجدول التالي تسلسل العمليات السابقة. حيث t1< t2 < t3
تعتبر وحدة التحكم المكون الذي ينظم عمليات النظام من خلال إرسال إشارات التحكم إلى ممر المعطيات ،هذه الإشارات تتحكم بتدفق البيانات خلال ال CPU وبين ال CPU والوحدات الخارجية مثل I/O.
ممرات التحكم بشكل عام تنقل الإشارات بين وحدة التحكم ومكونات الحاسب الأخرى في فترات ساعة منظمة.إن نظام الساعة يولد سلسلة مستمرة من النبضات خلال زمن محدد وتردد معين.
تستعمل سلسلة الخطوات t0,t1,t2,…. لتنفيذ تعليمة محددة حيث أن ……… t0التفرعي، وانه من الضروري تصغير طول التعليمة الميكروية لتقليل الزمن المستغرق للوصول إلى ذاكرة التحكم، ومن المفضل تمثيل العمليات الميكروية بشكل تفرعي وبخطوط تحكم أكثر والتي يتم تفعيلها بنفس الوقت.
HORIZONTAL VERSUS VERTICAL MICROINSTRUCTION
يمكن تصنيف التعليمات الميكروية بشكل أفقي أو عمودي، حيث يتم توافق بتات منفصلة في التعليمات الميكروية الأفقية مع خطوط تحكم منفصلة. التعليمات الميكروية الأفقية تكون طويلة وتسمح بتنفيذ تفرعي أكبر لأن كل بت يتحكم بخط تحكم مفرد.
في التعليمات الميكروية العمودية يتم تشفير خطوط التحكم في حقول محددة ضمن كل تعليمة ميكروية ونحتاج فاكات الشيفرة لجدولة حقل مؤلف من K بت إلى 2^K من خطوط التحكم المنفصلة. على سبيل المثال من أجل حقل تعليمة ميكروية مكونة من 3 بت سوف يتم استخدام واحد من ثمانية خطوط ممكنة.
لأن تشفير التعليمات الميكروية العمودية يكون أقصر من التعليمات الميكروية الأفقية فإن تشفير خطوط التحكم في نفس الحقل لا يمكن تفعيله بنفس الوقت، ونتيجة لذلك فإن التعليمات الميكروية العمودية تسمح فقط بتنفذ متوازي محدد. ويجب ملاحظة اننا لسنا بحاجة لفك التشفير في التعليمات الميكروية الأفقية بينما هذا الأمر ضروري في التعليمات الميكروية العمودية.
EXAMPLE 3
إذا اخذنا بعين الاعتبار ثلاث ممرات معطيات المبين في الشكل 5.5 بالإضافة إلى المسجلات PC، MAR، MDR، IR ولافتراض أن هناك 16 مسجل أغراض عامة مرقمة من R0 إلى R15 ولنفرض أيضاً أن ال ALU تدعم ثمانية عمليات (add ،subtract,multiply,divide,and or ،shift left, shift right).وباعتبار أن عملية الجمع add R1، R2 ،R0 تجمع محتويات مسجلي المصدرR1، R2 وتخزن النتيجة في مسجل المستقر R0، في هذا المثال سوف نتعرف على شكل التعليمة الميكروية على أساس التنظيم الأفقي، وسوف نستخدم التعليمات الميكروية الأفقية والتي لديها بت تحكم واحد من أجل كل خط تحكم، وإن شكل التعليمة الميكروية يتضمن بتات تحكم كما يلي:
الجدول التالي يوضح عدد البتات المطلوبة من أجل ال ALU وال source1 و source 2 ال destination
في هذا المثال سوف نستخدم التعليمات الميكروي العمودية والتي تحتاج إلى فاكات شيفرة، وسوف نستخدم ثلاث ممرات معطيات المبينة في الشكل 5.5.
لنفرض أن لدينا 16 مسجل أغراض عامة و ALU تدعم ثمانية عمليات، يبين الجدول التالي تشفير وظائف ALU - المسجلات المتصلة مع out-bus 1 (source 1) والمسجلات المتصلة مع out-bus 2 (source 2) والمسجلات المتصلة مع in-bus (destination).
باستخدام نفس التشفير في المثال 4 سنقوم بإيجاد التعليمات الميكروية العمودية المستخدمة في جلب تعليمة ما.
PC وحدة حساب ومنطق ووحدة التحكم.
يتضمن حقل المسجلات –مسجلات أغراض عامة –خاصة. مسجلات الأغراض العامة تستخدم لحفظ المتحولات والنتائج المرحلية اما مسجلات الأغراض الخاصة قد تستخدم للوصول إلى الذاكر – التنسيق - حالة المعلومات أو لحفظ التعليمة المجلوبة خلال فك التشفير والتنفيذ. 
العمليات الحسابية والمنطقية يمكن تمثيلها في وحدة الحساب والمنطق ALU. دلخل ال CPU يمكن أن تنتقل البيانات من أحد المسجلات إلى مسجلات أخرى أو بين المسجلات وال ALU، كما يمكن للبيانات أن تنتقل بين ال CPU والمكونات الخارجية مثل الذاكرة ووحدات الدخل والخرج I/O.
وحدة التحكم هي المكون الذي ينحكم بحالة دورة التعليمة. حيث أنه يتم جلب التعليمات من الذاكرة طالما توجد تعليمات تطلب التنفيذ، ويتم تنفيذ التعليمة بالاعتماد على عملية محددة في حقل شيفرة التعليمة.
تولد وحدة التحكم إشارات للتحكم بتدفق المعلومات خلال ال CPU وبين ال CPU والوحدات الخارجية مثل الذاكرة ووحدات الدخل والخرج I/O. ويمكن تمثيل وحدة التحكم باستخدام تقنيات البنية الصلبة أو البرمجة الميكروية