علوم الحاسب

ما هو الفرق بين المعالجات والمتحكمات الصغرية؟

في مجال الأنظمة المضمنة Embedded Systems ومجال الأنظمة الحاسوبية، يختلط الأمر على الكثير من الأشخاص فيما يتعلق بالمعالجات الصغرية والمتحكمات الصغرية، وعلى الرغم من التشابه الكبير بينهما في العديد من النواحي، إلا أن الفوارق بينهما أيضاً كبيرة وهامة.

وعبر هذا المقال، سنقوم بتسليط الضوء على المعالجات الصغرية MPU: Microprocessors والمتحكمات الصغرية MCU: Microcontrollers، وعمل كل منهما ووظائفه الأساسية، ومن ثم سننتقل لتسليط الضوء على الفروق الأساسية بينهما، وأين نستخدم كل منهما. ويجب أن ننوه إلى أننا لن ندخل بتفاصيل البنية الداخلية ومميزاتها بالنسبة للمعالجات الصغرية أو المتحكمات الصغرية، لأنها ليست الهدف الأساسي من هذا المقال، فضلاً عن أن البنية الداخلية فعلياً هي نفسها، وهو ما سنراه لاحقاً.

المعالجات الصغرية MPU: Microprocessors

ببساطة شديدة، المعالج الصغري هو دماغ الحاسوب! وهو ما يمثل وحدة المعالجة المركزية CPU ضمن بنية أي نظام حاسوبي، سواء كان حاسوباً مكتبياً Desktop PC، أو حاسوباً محمولاً، أو جهاز لوحي، أو حتى هاتف ذكي. وعملياً، فإن المعالج الصغري هو عبارة عن دارة متكاملة IC، تقوم باستقبال المعطيات، ومعالجتها، وإخراجها على شكل معلومات وأوامر مفيدة. المعالجات الصغرية هي نواة أي نظام حاسوبي، وهي تتحكم بكل العمليات التي يقوم الحاسوب بتنفيذها، وهي تمثل أحد أكثر أشكال المنطق الرقمي التتابعي Sequential Digital Logic تقدماً وتكاملاً.

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

ماذا عن المعطيات التي يقوم المعالج الصغري بمعالجتها؟ هل يمكن إدخالها مباشرةً إلى المعالج الصغري؟ في الواقع، لا. بل يجب أن يتم تزويد المعالج بوحدات تخاطب لإدخال المعطيات إليه، واستخراج المعلومات منه، هذه الوحدات قد تدعى “بوابات دخل/خرج” أو “واجهات دخل/خرج”. بكل الأحوال، فإن وجود هذه البوابات أو الوحدات أساسي، وبدونها لن نستطيع التواصل مع المعالج الصغري والاستفادة من قدراته في عمليات معالجة البيانات والمعطيات.

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

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

إذاً، وكخلاصة، وعلى الرغم من أن المعالج الصغري هو الدارة المتكاملة التي تحوي الوحدات الحاسوبية الأساسية اللازمة لتنفيذ عمليات المعالجة (مثل وحدة الحساب والمنطق ALU، ووحدة التحكم CU) إلا أنه لن يستطيع وحده أداء المهام المطلوبة منه. 

المتحكمات الصغرية MCU: Microcontrollers

في الفقرة السابقة توصلنا للنتيجة التالية: أي نظام حاسوبي متكامل يجب أن يضم: نواة معالجة مركزية (معالج صغري) + بوابات إدخال/إخراج + ذواكر. حسناً، وببساطةٍ شديدة أيضاً، فإن المتحكم الصغري عبارة عن دارة متكاملة تتضمن كافة هذه الوحدات متصلةً مع بعضها البعض، وبهذه الحالة، فإن المستخدم لن يتعامل بشكلٍ منفصل مع المعالج الصغري والذواكر ووو…أبداً! بل سيقوم بالتعامل مع كافة هذه الوحدات وبرمجتها ضمن دارةٍ واحدة.

يجب الإشارة هنا لنقطةٍ هامة: المعالج الصغري هو نواة المتحكم الصغري، ولكن المعالجات التي تتواجد ضمن شرائح المتحكمات الصغرية المتكاملة ستكون أضعف وأقل قدرة من المعالجات التي تكون متوضعة على لوحات الدارات بشكلٍ منفصل، فمتطلبات التكامل على الشريحة الإلكترونية الواحدة، ستجعل من إمكانيات وقدرات المعالج الصغري المدمج ضمن بنية المتحكم أخفض من المعالجات المتواجدة بشكلٍ منفصل.

فعلياً، فإن المتحكمات الصغرية هي جزءٌ هام مما يعرف بـ ” الأنظمة المضمنة Embedded Systems”، لا بل هي العمود الفقري للأنظمة المضمنة. ومن بنية المتحكمات الصغرية نستطيع أن نفهم ما هي الأنظمة المضمنة: فهي تلك الأنظمة الحاسوبية القابلة للبرمجة، والقادرة على تنفيذ عمليات معالجة البيانات، وتنفيذ مهامٍ متنوعة ومتعددة، مثل التبديل التشابهي الرقمي A/D Conversion، أو قيادة وحدات الإظهار، أو قيادة المحركات والأنظمة الميكانيكية، أو حتى قيادة الأذرع والأنظمة الروبوتية، وذلك كله اعتماداً على شريحةٍ أو لوحةٍ الكترونية واحدة.

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

ومن ناحية الشكل، فإن النظر بالعين المجردة للمتحكمات والمعالجات الصغرية لن يكشف عن أي فرق: كلاهما دارات متكاملة ذات عدد أرجل يتراوح ما بين 8 أرجل وحتى 100 رجل أو أكثر. وحتى أن نمط التغليف قد يكون نفسه أيضاً. وبالتالي يتوجب على المستخدم والمصمم أن يعرف بالضبط ما هي الشريحة التي يتعامل معها.

المتحكمات والمعالجات الصغرية: أين يتم استخدامها؟

بناءً على العرض السابق، فإن المجالات والتطبيقات التي تتطلب التعامل مع المعالجات الصغرية، هي المعالجات التي يرغب فيها المستخدم بالحصول على أفضل أداء ممكن، بغض النظر عن متطلبات الحجم والتصميم واستهلاك الطاقة. بمعنى آخر، عندما يكون هنالك تطبيق يتطلب قوةً حاسوبية متقدمة، فإن الخيار الأمثل هو المعالجات الصغرية، لأنه بمثل هكذا تطبيقات، فإن الحجم واستهلاك الطاقة لن تؤخذ بعين الاعتبار أمام قوة المعالجة. مثلاً، الحواسيب المكتبية والحواسيب المحمولة التي تتطلب قوة كبيرة في المعالجة من أجل قيادة معظم التطبيقات المختلفة، فإنها تتطلب وجود معالج منفصل يستطيع التعامل مع الكميات الكبيرة من البيانات والمعلومات المطلوبة لإنجاز رغبات المستخدم. هذا يعني أن وحدات المعالجة الموجودة في حاسبك مثل: Intel Core 2 Duo, Intel Core i3, Core i5, Core i7 أو وحدات شركة AMD، هي عبارة عن معالجات صغرية، وليست متحكمات صغرية.

أما في حال التطبيق والمجال يتطلب سرعة، وحجماً صغير، واستهلاكاً منخفضاً للطاقة، فإن المتحكمات الصغرية هي الخيار الأمثل بكل تأكيد. فمن غير المنطقي مثلاً أن يتم استخدام معالج صغري مع كافة دارات الدعم الخاصة به من أجل تنفيذ مشروع بسيط كالتحكم بإضاءة غرفة، أو قيادة عمل محرك، أو حتى قيادة جهاز طبي بسيط. بهذه الحالات، ولأغراض الإنتاج السريع وسهولة ومرونة التعامل، فإن المتحكمات الصغرية ستكون الخيار الأمثل بالنسبة للمستخدم، وربما استخدام نظام مضمن متقدم (مثل أنظمة FPGA أو أنظمة SoC) سيكون خياراً أفضل وأكثر اقتصاديةً ومرونةً من تصميم وحدة معالج صغري متكاملة.

يمكنكم أيضاً العودة للمصادر التالية من أجل الحصول على معلوماتٍ تفصيلية أكثر حول المتحكمات والمعالجات الصغرية:

1- كيف تعمل الأشياء: المعالجات الصغرية
2- كتاب الإلكترونيات العملية للمبتكرين
3- موسوعة ويكيبيديا الانجليزية
4- موقع EngineersGarage
5- موقع AVR Tutorials

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

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