Quantcast
Channel: منتدى المهندس - أحدث الموضوعات
Viewing all articles
Browse latest Browse all 6628

الدرس ٢ : مقدمة عن معالجات أرم ARM Cortex وبنية المعالج Cortex-M4

$
0
0

كتب @ahmedeldeep:

بسم الله الرحمن الرحيم
الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين، بفضل الله وتوفيقه نقدم لكم الدرس الثاني بسلسلة دروس

تعلم برمجة الأنظمة المدمجة والميكروكنترولر STM32 المعتمد على نواة ARM Cortex-M4

بعنوان

مقدمة عن معالجات أرم ARM Cortex وبنية المعالج Cortex-M4

تعتمد جميع المعالجات اليوم على بنية Instruction Set Architecture حيث يقوم المعالج بنتفيذ التعليمة الواحدة من تعليمات البرنامج خلال عدة دورات متعددة ويتم تنفيذ تعليمات البرنامج واحدة تلو الأخرى، فمثلا ١ذا كان المعالج يعمل بسرعة ١٨٠ ميجا هيرتز فسيكون زمن الدورة الواحدة هو ٥,٥ نانو ثانية وهو الزمن الذى يستغرقه المعالج لأداء وظيفة محددة من وظائف التعليمة على حسب بنية التعليمات المستخدمة.

ولحساب الزمن الكلي لتنفيذ البرنامج نقوم باستخدام المعادلة الأتية

زمن تنفيذ البرنامج = عدد تعليمات البرنامج * عدد الدورات اللازمة لتنفيذ تعليمة واحدة * الزمن اللازم لتنفيذ تعليمة واحدة

والتعليمة هي أبسط وظيفة يمكن أن يقوم بها المعالج وتتكون من Opcode ويمثل الوظيفة المطلوبة و Operand وهو المسجل الذى يتم تطبيق الوظيفة المطلوبة عليه فمثلا التعليمة الأتية

ADD r1, r2, r3 ;

تقوم بجمع قيمة r3 مع r2 ووضع الناتج في r1 وهي تعادل r1=r2+r3 وسنقوم لاحقا بالتعرف على تعليمات أرم في الدروس القادمة.

يوجد هناك نوعين من بنية مجموعة التعليمات Instruction Set وهما;

  • CISC - Complex instruction set architecture
  • RISC - Reduced instruction set architecture

في النوع الأول CISC تكون التعليمة الواحدة معقدة وتقوم بعمليات متعددة فمثلا يمكن لتعليمة واحدة التخزين في الذاكرة وتنفيذ عملية حسابية وأيضا القراءة من الذاكرة، مما يؤدي إلي تقليل عدد التعليمات في البرنامج وزيادة عدد الدورات اللازمة لتنفيذ تعليمة واحدة لانها معقدة. مما يؤدي إلي تقليل حجم البرنامج وبالتالي تقليل حجم الذاكرة حيث لا تحتاج معالجات بنية CISC لذاكرة كبيرة مثل ما هو الحال في بنية RISC.

أما في بنية RISC فالتعليمة بسيطة جدا وتقوم بوظيفة واحدة مما يتيح فعالية أكثر في الأداء ولكن يكون حجم البرنامج أكبر لانه سيحتاج عدد تعليمات أكثر. ولكن تبسيط التعليمة يؤدي لتقليل استهلاك الطاقة ولذلك هذه البنية مناسبة للاستخدام في الهواتف المحمولة.

وللعلم فشركة أنتل تعتمد على بنية CISC في تصميم معالجاتها أما شركة أرم فتعتمد على بنية RISC والتي أظهرت تفوقا واضحا في عالم الهواتف المحمولة.

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

ويرجى ملاحظة أيضا أن لدى شركة أرم بنية أساسية واحدة للمعالج ويتم مراجعتها من فترة لاخرى وهذه المراجعات تكون مثل ARMv6 ومثل ARMv7-A أو ARMv7-M أما المعالج Cortex-M4 فيعتمد على بنية ARMv7-M وهو المعالج الموجود داخل المتحكم الدقيق STM32F4 كما سنعرف لاحقا.

عائلات Cortex

تنقسم Cortex إلي ثلاث عائلات رئيسية وهي:

Cortex-A

وتستخدم عادة في التطبيقات المعقدة ولها القدرة على تشغيل نظام تشغيل كامل مثل اللينوكس وهذه المجموعة شائع أستخدامها في الهواتف المحمولة والأجهزة اللوحية والساعات الذكية بالأضافة للروبوتات

Cortex-M

هذه المجموعة مناسبة لتطبيقات الأنظمة المدمجة حيث تمتاز بسهولة استخدامها وقلة تكلفتها وقلة استهلاكها للطاقة وتستخدم عادة في تطبيقات انترنت الاشياء والتحكم بالمحركات وأجهزة التحكم بالسيارات والأجهزة المنزلية.

Cortex-R

هذه العائلة مناسبة أكثر لتطبيقات الزمن الحقيقي والسرعة العالية والأداء الخارق.

والأن سنتعرف على بمزيد من التفصيل على المعالج Cortex-M4

مكونات المعالج Cortex-M4

وفي الصورة التالية نرى محتويات المعالج Cortex-M4

حيث بحتوي على الأتي

  • نواة معتمدة على بنية هارفارد مع pipeline من ٣ مراحل بالاضافة لوحدة اختيارية لحسابات العلامة العشرية floating-point computation.
  • وحدة للمقاطعات تسمى Nested Vectored Interrupt Controller - NVIC.
  • وحدة اختيارية لحماية الذاكرة Memory Protection Unit - MPU حيث تسمح بالتحكم في أماكن محددة فقط بالذاكرة وتمنع الوصول للأماكن الاخرى بناء على صلاحيات محددة للوصول.
  • وحدة لتصحيح واكتشاف الأخطاء debug معتمدة على JTAG أو Serial Wire Debug - SWD.
  • وحدة لتتبع اداء البرنامج Instrumentation Trace Macrocell - ITM حيث يمكن استخدام تقنية Serial Wire Viewer - SWV اثناء تنقيح البرنامج واكتشاف الاخطاء.
  • وحدة اختيارية لتتبع تنفيذ التعليمات Embedded Trace MacrocellTM - ETM.
  • وحدة Flash Patch and Breakpoint Unit - FPB توفر ٨ نقاط توقف breakpoint يمكن استخدامها اثناء تنقيح البرنامج واكتشاف الاخطاء.

وإلى اللقاء في الدرس القادم

المنشورات: 1

المشاركون: 1

اقرأ كامل الموضوع


Viewing all articles
Browse latest Browse all 6628

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>