علوم الحاسب

معماريات المعالجات الصغرية: ما هو الفرق بين معمارية فون نيومان ومعمارية هارفرد

باختلاف المتطلبات والمهام التي تواجهنا في حياتنا اليومية، فإننا نحتاج لاستخدام حواسيب ذات قدرات مختلفة على تنفيذ المهام المتعددة والمتنوعة. على سبيل المثال، فإن الحواسيب المستخدمة في مجال البحث العلمي تختلف عن الحواسيب الشخصية التي تستخدم في المنازل وفي مكاتب الأعمال، نظراً لأن متطلبات البحث العلمي تستوجب قدراتٍ عالية وفائقة من الحاسوب، بخلاف المتطلبات اليومية التي نحتاجها من الحاسوب، مثل إظهار الصور ومشاهدة الأفلام وتصفح الإنترنت وغيرها. بكل الأحوال، وعلى اختلاف المهام المختلفة للحواسيب، فإن تحقيق ذلك يتطلب أنواعاً مُختلفة من المُعالجات الصغرية Microprocessors. ونحن نعلم أن أداء المعالجات الصغرية يختلف وفقاً للعديد من المعايير، مثل سرعة عمل المعالج، وسعة خطوط البيانات، وحتى بنية المعالج من حيث كونه أحادي النواة أو متعدد النوى كما في المعالجات الحديثة. إلا أن هنالك اختلافاً هاماً لا ينظر إليه المستخدم في الحياة اليومية وربما لا يشعر به، وهو “معمارية Architecture” المعالج، وهي الطريقة التي يتم بناء المعالج وعناصره وفقاً لها، والطريقة التي تحدد كيفية عمل المعالج وجلبه للبيانات ومعالجتها. وفيما يتعلق بالمعمارية، فإننا سنميز بين نمطين أساسيين: معمارية فون نيومان ومعمارية هارفرد. فالاختلاف يأتي في طريقة حفظ وتطبيق المعالج للتعليمات وتعامله مع البيانات. سيكون هذا المقال عبارة عن مقدمة تعريفية بسيطة عن هاتين المعماريتين والفوارق بينهما، لكن في البدء سنبحث في فكرة التعليمة وكيف يراها الحاسوب ولاحقاً سنرى كيف يتعامل معها بحسب تصميمه ومعماريته.

في الحقيقة، إذا كنت من الذين يُفضلون البرمجة بلغة C++/C أو  Java أو لغة برمجة أخرى، فهذا الأمر لا يهم المُعالج الصغري، ففي كلتا الحالتين لن يستطيع قراءة أي برنامج دون تحويله إلى اللغة الوحيدة التي يتقنها وتدعى “لغة الآلة Machine Language”. تُعتبر تلك اللغات عالية المستوى High Level Languages ولن يستطيع المُعالج الذي  يتعامل مع نوعين فقط من البيانات – الصفر والواحد المنطقي –  أن يفهم هذه اللغات على الإطلاق. بدلاً من ذلك، يقوم أولاً بتحويلها بواسطة المُترجم إلى لغة مُنخفضة المستوى تُدعى “لغة التجميع Assembly Language” وهي أقرب لغة برمجة إلى لغة الآلة والتي يستطيع المُعالج بسهولة بواسطة “المُجَمع Assembler” بتحوليها إلى لغة الآلة التي هي عبارة عن شفرات ثنائية Binary Code يستطيع المعالج الصغري التفاعل معها وتطبيقها فوراً.

تتألف كلّ تعليمة –  في لغة التجميع – من جزأين:

  • “شيفرة التّشغيل (Operation Code (Opcode”، وهي مجموعة من البتات التي يتم تفسيرها في وحدة التحكم (CU) في المعالج. هدفها تحديد نوع العملية التي ترمز لها التعليمة (جمع، طرح، ضرب …).
  • “المعامل Operand”، الذي يحدد السجلات Registers أو البيانات (المُتغيرات) التي سيتم تطبيق العملية عليها. غالباً يحتوي على عنوان السجل أو قيمة المُتغير.

معمارية فون نيومان Von Nueman Architecture

تعتمد الفلسفة التصميمية في هذا النوع من المعماريات على حفظ التعليمات Instructions والبيانات Data يتم في نفس الذاكرة. سيحتاج المعالج في هذه الحالة لتطبيق التعليمة التي تتألف من شفرة تشغيل واحدة ومعامل واحد إلى ثلاث دورات – دورة لجلب وقراءة شفرة التشغيل (بواسطة ناقل العناوين Address Bus) ودورة لقراءة المُعامل ودورة أخيرة لتطبيق محتوى التعليمة – وهذا ما يُعتبر مَضيعة للوقت والمصادر من وجهات النظر المُحدِثة.

معمارية-فون-نيومان

من المعلوم أنه في المعالجات الصغرية تُخزن التعليمات في ذواكر القراءة فقط (أو الذواكر الثابتة) أي ROM، وتُخزن المُتغيرات في الذواكر العشوائية (أو القابلة للتغيير) أي ذاكرة RAM، فإذاً تكون الذاكرة في معمارية فون نيومان عبارة عن دمج بين ROM، الذي يحفظ التعليمات وشفرات تشغيلها، و RAM، لحفظ المُتغيرات.

معمارية هارفرد Harvard Architecture

يتواجد في هذه المعمارية ذاكرتين مُنفصلتين، ذاكرة لحفظ التعليمات وتدعى “ذاكرة البرنامج (Program Memory (PM” وذاكرة أخرى تُدعى “ذاكرة البيانات (Data Memory (DM” لحفظ البيانات. هذا ما يحتاج إلى ناقل عناوين وناقل بيانات Data Bus خاص إلى كلّ ذاكرة من وحدة المعالجة المركزية CPU. هذا ما يسمح للمعالج بجلب معلومات من ذاكرة البرنامج والوصول إلى المُتغيرات في ذاكرة البيانات في نفس الوقت.

معمارية-هارفرد

وبما أنه تمّ فصل ذاكرة التعليمات عن البيانات أصبح بإمكاننا كتابة شفرة التشغيل والمعامل في عبارة واحدة حيث يمكننا قراءة التعليمة كاملةً في دورة واحدة فقط في أغلب الأوقات. وهذا هو الهدف وراء معمارية هارفرد، وهذا ما يجعل الأجهزة التي تعتمد على هذه المعمارية تُعطي إنتاجيةً أعلى بكثير من التي تعتمد على معمارية فون نيومان.

ناقشنا في هذا المقال معمارية فون نيومان ومعمارية هارفارد فقط ليس لأنها الوحيدة بل لأن باقي المعماريات تُعتبر نتاج من هاتين الأساسيتين. مثل مُعالج الإشارة الرقمية (DSP)  ومعمارية هارفارد المُعدّلة ومعمارية ARM وغيرها.

تعرف على طريق عمل المعالجات الصغرية بشكل كامل هنا.

المصادر: هنا هنا هنا

Michel Aractingi

طالب هندسة كهرباء في جامعة البلمند

مقالات ذات صلة

‫8 تعليقات

  1. طيب ممكن نعرف باقي المعماريات الناتجة من المعماريات السابقة و لمن تتبع ل نيومان أو هارفرد .. أو أذا ممكن لينك منشان ما نعذبكن 🙂

  2. نحن نعمل على توفير كل هذه التفاصيل تباعاً 🙂 قريباً سيكون هنالك سلسلة كاملة تتعلق بكل المعلومات الخاصة بالمعالجات الصغرية ومعمارياتها وأدائها 😀

زر الذهاب إلى الأعلى