الدرس الثامن – بناء معالج بسيط – 16 بت (1)

سلسلة من الدروس في لغة توصيف العتاد الصلبVHDL

الدرس الثامن – بناء معالج بسيط – 16 بت (1)

البنية العامة للمعالجات عامة الأغراض

يمكن تقسيم المعالجات عموماً إلى نوعين رئيسيين:

أ‌-       معالجات خاصة الغرض: تصمّم لأداء مهمّة محدّدة لا تقوم بإنجاز غيرها، و بنيتها الفيزيائية بنية خاصة وفق متطلبات المهمة المطلوبة. توجد هذه المعالجات في الأنظمة المطمورة Embedded Systems مثل الغسالات الآلية و أجهزة الفيديو.

  ب‌-  معالجات عامة الأغراض: تصمّم وفق بنية عامة لإنجاز عدد غير محدود من المهام (نظرياً)، بنيتها الفيزيائية عامة و تختلف وفقاً لإمكانياتها. توجد في الحواسيب الشخصية.

يوضح الشكل التالي البنية العامة للحاسوب و المعالج الذي يحتويه.

تختلف المعالجات وفقا ً لسلم البساطة و التعقيد اعتماداً على عدد العمليات الحسابية و المنطقية التي يمكن انجازها و آلية تعامله مع الوسط المحيط (الذاكرة و أجهزة الدخل و الخرج)، فهي تفرض تعقيد بنية وحدة التحكم و عدد المسجلات المطلوبة و عرض الممر.                                                                                                                                  تقسم المسجلات في المعالج إلى نوعين :

–   مسجلات أغراض عامة: تخزن فيها البيانات التي يعالجها المعالج و تعمل كوسيط تخزين مؤقت أثناء تعامل المعالج مع وحدات الدخل و الخرج و الذاكرة.

–    مسجلات خاصة: يختلف عدد و أنواعها اعتماداً على تعقيد المعالج، من أشهرها:

  • IR-Instruction Register : يحتفظ بالتعليمات الواردة من الذاكرة و المطلوب من المعالج تنفيذها.
  • PC-Program Counter: يشير إلى موقع التعليمة التالية في الذاكرة الرئيسية( في بنية هوفمان).

بناء معالج 16 بت بسيط

سنقوم في الجلسات المتبقية بتوصيف معالج 16 بت بسيط باستخدام لغة توصيف العتاد الصلب VHDL، و إجراء المحاكاة المطلوبة.

مما يتكون المعالج المطلوب

1-    ALU: تنجز أربعة عمليات حسابية و منطقية Add,Sub,AND,OR  حيث عمليات الجمع و الطرح بدون حمل.

2-    ثمانية مسجلات أغراض عامة R0..R7 و مسجل المراكم A و G مسجل النتيجة.

 3-    ممر عام  داخلي بعرض 16 بت.

4-    مدخل خاص بالبيانات و آخر بالتعليمات.

5-    وحدة تحكم تؤمن إشارات تحكم تضمن نجاح عمل المعالج.

6-    مدخل تصفيرReset و مدخل تشغيل Run بالإضافة إلى نبضات الساعة  Clock و هو يعمل عند الجبهة الصاعدة.

                                                                                                                                        7-    ناخب 10 -> 1 يربط مخارج المسجلات العشرة الموجودة مع ممر النظام الداخلي.

8-    مخرج  Doneليدلنا على انتهاء تنفيذ التعليمة و كذلك مخرج  BusWiresلنرى من خلاله محتويات ممر النظام ،و يضاف هذان المخرجان لأسباب مخبريّة.

9-    عتاد يفرضه درجة تعقيد إمكانيات المعالج.

يظهر الشكل التالي البنية الداخلية للمعالج.

ما هو المطلوب إنجازه باستخدام المعالج؟

بالإضافة إلى العمليات الحسابية و المنطقية الأربعة التي تنجزها وحدة الحساب و المنطق سيتمكن المعالج من إنجاز عمليات إدخال بيانات من ممر البيانات إلى أحد المسجلات العامة و كذلك عملية نقل البيانات من مسجل إلى آخر.

عناصر المعالج

Registers:                                                                                                                       تمتلك جميع المسجلات بنية عامة واحدة و هي بعرض 16 بت و تعمل مع الجبهة الصاعدة للقدح مع وجود إشارة تمكين.

ALU:                                                                                                                                تنجز أربعة عمليات حسابية و منطقية لبيانات بعرض 16 بت و ذلك اعتماداً على قيمة المدخل Op.

Operation

Op

Add

00

Sub

01

AND

10

OR

11

يرتبط أحد المدخلين مع ممر النظام مباشرة في حين يأتي المدخل الآخر من المراكم الأمر الذي يفرض نقل أحدى البيانات إلى المراكم قبل تنفيذ العملية الحسابية أو المنطقية عليها ووضع الأخرى على ممر النظام.

Multiplexer:                                                                                                                    يرتبط إلى دخله مخارج المسجلات العامة و المراكم و مسجل النتيجة و اعتماداً على إشارات تحكم تأتيه من وحدة التحكم يضع الناخب خرج أحد المسجلات على ممر النظام.

CU:                                                                                                                                  تقوم بتوليد إشارات التحكم المطلوبة لتنفيذ المهمات المختلفة التي يستطيع المعالج انجازها، على سبيل المثال لنقل محتويات المسجل R0 إلى المسجل R5  فإن إشارات التحكم المطلوبة:

R0out لتضع محتويات المسجل R0على ممر النظام.

R5in لتمكين وضع القيمة الموجودة على ممر النظام داخل المسجل R5.

مفهوم التعليمة

بفرض أننا نريد نقل محتويات المسجل R0 إلى المسجل R5  فكيف يمكن التعبير عن ذلك للمعالج حتى ينجز المطلوب منه؟

1-    علينا تحديد المطلوب إنجازه (عملية نقل بين المسجلات).

2-    تحديد أطراف العملية المطلوبة (المسجل المصدر و المسجل الهدف).

سؤال آخر يجب طرحه، أي عنصر من عناصر المعالج علينا أن نخبره بما نريد؟

الجواب منطقي و بسيط وحدة التحكم فهي المسؤولة عن توليد إشارات التحكم التي ستضمن نجاح تنفيذ العملية المطلوبة.

كيف سنعبّر لوحدة التحكم عمّا نريد؟

نعطي على دخل لوحة التحكم مجموعة من الأصفار و الواحدات لها دلالة محددة، نحن من نقوم بتحديدها و كيفية تفسيرها من خلال تصميمنا لوحدة التحكم.

كيف سيكون شكل هذه الأصفار و الواحدات؟

لدينا 6 عمليات يمكن للمعالج أن ينجزها ولو أردنا التعبير عنها رقمياً فنحن نحتاج إلى 3 خانات. لدينا 8 مسجلات أغراض عامة و بالتالي نحتاج إلى 3 خانات للتعبير عنها رقمياً. إذاً نحن بحاجة لتسع خانات للتعبير عن العمليات المطلوبة و المسجلات المرتبطة بها.

سنشير اختصاراً لعملية نقل البيانات من مسجل إلى مسجل بـ mv  و عملية نقل البيانات من ممر البيانات إلى أحد المسجلات(النقل المباشر) بـ mvi

الوصف

التشفير

الرمز

العملية

نقل محتوى المسجل Rxإلى المسجل Ry

000

mv Ry,Rx

نقل من مسجل لآخر

وضع القيمة Data  في المسجلR

001

mvi R,Data

نقل قيمة إلى مسجل

جمع محتوى المسجلين و وضع النتيجة في Ry

010

add Ry,Rx

جمع محتوى مسجلين

طرح محتوى المسجلين و وضع النتيجة في Ry

011

sub Ry,Rx

طرح محتوى مسجلين

And بين المسجلين و وضع النتيجة فيRy

100

and Ry,Rx

And  بين مسجلين

Or بين المسجلين و وضع النتيجة فيRy

101

or Ry,Rx

 Orبين مسجلين

 أمثلة

mvi R0,FFh    -> 001 000 XXX(لا يوجد مسجل مصدر و البيانات موجودة على ممر البيانات)

mv R5,R0       -> 000 101 000

add R4,R3      -> 010 100 011

ندعو كل مثال من الأمثلة السابقة بتعليمة حيث نقرأها نحن بلغة بشرية و نعطيها للمعالج باللغة التي يفهمها أي مشفرة ثنائياً.

نلاحظ أن طول التعليمة هو 9 بت، فلماذا عرض مدخل البيانات 16 بت؟

بهدف الحفاظ على عرض ثابت لجميع الممرات و إعطاء الفرصة لتطويرات لاحقة و إضافة المزيد من التعليمات.

About زين العابدين

مهندس حواسيب - معهد IDA - جامعة Braunshweig التقنية.
هذا المنشور نشر في دروس تعليمية وكلماته الدلالية , , , . حفظ الرابط الثابت.

رد واحد على الدرس الثامن – بناء معالج بسيط – 16 بت (1)

  1. يقول Yousef Lilish:

    مش عاااااادي يا بروووو

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s