تصميم وحدة المعالجة المركزية
MICROPROGRAMMED CONROL UNIT

لقد تم طرح فكرة البرمجة الميكروية لوحدات التحكم من قبل العالم M.V.Wikes في بداية عام 1950 s.
وقد كانت البرمجة مثيرة من أجل الرغبة لتقليل التقييد الموجود في وحدات التحكم القائمة على البنية الصلبة،
وكما أشرنا سابقاً فإنه يتم تنفيذ التعليمة باستخدام مجموعة من العمليات الميكروية، حيث يتم ربط كل عملية ميكروية بواسطة مجموعة من خطوط التحكم والتي يجب تفعيلها لإيجاد لبعملية الميكروية المطلوبة.
الغاية من البرمجة الميكروية هي تخزين إشارات التحكم المرتبطة مع تعليمة محددة كبرنامج ميكروي في ذاكرة مخصصة تسمى ذاكرة التحكم CM. يتألف البرنامج الميكروي من سلسلة من التعليمات الميكروية.و التعليمة الميكروية هي شعاع من البتات بحيث أن كل بت يمثل إشارة تحكم، الشيفرة الشرطية، أو عنوان التعليمة الميكروية التالية.
يتم جلب التعليمات الميكروية من ال CM وبنفس الطريقة يتم جلب البرنامج من الذاكرة الرئيسية كما
في الشكل 5.12. عندما يتم جلب تعليمة من الذاكرة سيقوم حقل الشيفرة لهذه التعليمة بتحديد البرنامج الميكروي الذي سيتم تنفيذه، وبكلمات أخرى يقوم معالج التعليمات الميكروية باستخدام هذا العنوان لجلب التعليمة الميكروية الأولى من البرنامج الميكروي، وبعد جلب كل تعليمة ميكروية يتم تفعيل خطوط التحكم المناسبة. وكل خط تحكم يوافق "1" bit ينبغي ان يتم تفعيله بينما كل خط تحكم يوافق "0" bit ينبغي عدم تفعيله. وبعد اتمام تنفيذ تعليمة ميكروية واحدة سيتم جلب تعليمة ميكروية جديدة لتنفيذها، وعندما تشير بتالت الشيفرة الشرطية إلى ضرورة تنفيذ برنامج فرعي عندها يتم تحديد التعليمة الميكروية التالية من بتات العنوان للتعليمة الحالية وإلا يتم جلب التعليمة الميكروية التالية وتنفيذها.يتم تحديد طول اللتعليمة الميكروية بالاعتماد على عدد العمليات الميكروية المحددة في التعليمات الميكروية، وعلى طريق تفسير بتات التحكم وكيفية الحصول على التعليمة الميكروية التالية.
التعليمة الميكروية تحدد بعملية ميكروية واحدة أو أكثر من أجل تنفيذها بنفس الوقت ويزداد طول التعليمة الميكروية بزيادة عدد العمليات الميكروية التي تعمل على التوازي في نفس التعليمة الميكروية. علاوة على ذلك عندما يتم توافق بت التحكم في التعليمة الميكروية بالضبط مع خط تحكم واحد فإن طول التعليمة الميكروية سوف يصبح أكبر.
وينبغي تصغير طول التعليمة الميكروية عندما يتم تشفير خطوط التحكم في التعليمة الميكروية في حقول محددة.
و نحتاج لفاك الشيفرة من أجل تنظيم كل حقل في خطوطتحكم منفصلة. والواضح ان استخدام فاكات الشيفرة سوف يقلل عدد خطوط التحكم التي يتم تفعيلها بنفس الوقت.
كما أن هناك علاقة تبادلية بين طول التعليمة الميكروية والتنفيذ التفرعي، وانه من الضروري تصغير طول التعليمة الميكروية لتقليل الزمن المستغرق للوصول إلى ذاكرة التحكم، ومن المفضل تمثيل العمليات الميكروية بشكل تفرعي وبخطوط تحكم أكثر والتي يتم تفعيلها بنفس الوقت.
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
EXAMPLE 4
في هذا المثال سوف نستخدم التعليمات الميكروي العمودية والتي تحتاج إلى فاكات شيفرة، وسوف نستخدم ثلاث ممرات معطيات المبينة في الشكل 5.5.
لنفرض أن لدينا 16 مسجل أغراض عامة و ALU تدعم ثمانية عمليات، يبين الجدول التالي تشفير وظائف ALU - المسجلات المتصلة مع out-bus 1 (source 1) والمسجلات المتصلة مع out-bus 2 (source 2) والمسجلات المتصلة مع in-bus (destination).
EXAMPLE 5
باستخدام نفس التشفير في المثال 4 سنقوم بإيجاد التعليمات الميكروية العمودية المستخدمة في جلب تعليمة ما.
PC <---MAR
أولاً سوف نختار PC كمصدر وذلك باستخدام "10000” من حقل source 1 وسوف نختار MAR كمستقر ياستخدام "10010” من حقل destination، وسوف نستخدم "0000” من أجل ال ALU والتي سيتم فك تشفيرها إلى "NONE " وكما هو مبين في جدول تشفير ALU في example 4 فإن “NONE” تعني اتصال out-bus 1 مع in-bus.
الحقل source 2 سوف يوضع إلى "10000” للإشارة بعدم اختيار أي من المسجلات.
التعليمة الميكروية موضحة في الشكل 5.15
Memory Read and Write
عمليات الذاكرة يمكن ملائمتها بسهولة بإضافة بت واحد من أجل القراءة وبت آخر من أجل الكتابة. التعليمتين الميكرويتين المتتاليتين في الشكل 5.16 تمثلان القراءة والكتابة.
Fetch
يمكن إجراء عملية جلب تعليمة ما باستخدام ثلاث تعليمات ميكروية كما هو مبين في الشكل 5.17
التعليمتان الميكرويتان الأولى والثانية تم توضيحهما سابقاً أما التعليمة الميكروية الثالثة فهي تنقل محتويات MDR إلى IR (MDR IR).
MDR تم اختياره كــ source 1 وذلك باستخدام "10011" من الحقل source 1 وبشكل مشابه تم اختيار IR كـ destination باستخدام الحقل "10001"، وسوف نستخدم أيضاً "0000" (NONE) في حقل ال ALU والذي يعني اتصال out-bus 1 مع in-bus.
الحقل source 2 سيتم توضيعه على "10000" والذي يعني عدم اختيار أي من المسجلات.
الخلاصة:
تعتبر وحدة المعالجة المركزية CPU جزء الحاسب الرئيسي الذي يقوم بتفسير وتنفيذ التعليمات الموجودة في البرامج التي نكتبها. المكونات الرئيسية ل CPU هي حقل المسجلات -وحدة حساب ومنطق ووحدة التحكم.
يتضمن حقل المسجلات –مسجلات أغراض عامة –خاصة. مسجلات الأغراض العامة تستخدم لحفظ المتحولات والنتائج المرحلية اما مسجلات الأغراض الخاصة قد تستخدم للوصول إلى الذاكر – التنسيق - حالة المعلومات أو لحفظ التعليمة المجلوبة خلال فك التشفير والتنفيذ.
العمليات الحسابية والمنطقية يمكن تمثيلها في وحدة الحساب والمنطق ALU. دلخل ال CPU يمكن أن تنتقل البيانات من أحد المسجلات إلى مسجلات أخرى أو بين المسجلات وال ALU، كما يمكن للبيانات أن تنتقل بين ال CPU والمكونات الخارجية مثل الذاكرة ووحدات الدخل والخرج I/O.
وحدة التحكم هي المكون الذي ينحكم بحالة دورة التعليمة. حيث أنه يتم جلب التعليمات من الذاكرة طالما توجد تعليمات تطلب التنفيذ، ويتم تنفيذ التعليمة بالاعتماد على عملية محددة في حقل شيفرة التعليمة.
تولد وحدة التحكم إشارات للتحكم بتدفق المعلومات خلال ال CPU وبين ال CPU والوحدات الخارجية مثل الذاكرة ووحدات الدخل والخرج I/O. ويمكن تمثيل وحدة التحكم باستخدام تقنيات البنية الصلبة أو البرمجة الميكروية