وبلاگ

پردازندهARM

پردازنده

 

پردازنده ARM چیست؟

پردازنده ARM  Advanced RISC Machine یک نوع از معماری و ساختار پردازنده‌های رایانه‌ای می باشد که RISC به معنی ماشین‌های پیشرفته است که مخفف  Reduced Instruction Set Computer به معنی رایانه کم‌دستور و نوع معماری ساخت کامپیوتر یا ریزپردازنده است که در آن به جای استفاده از چند دستورالعمل‌خاص معماری‌ها، از یک مجموعه دستورالعمل حداقلی و بسیار بهینه‌سازی شده‌ استفاده می کند. ریسک (RISC) اصلی‌ترین استراتژی طراحی CPU است که در پردازنده‌های آن اجرا می‌شود.

که توسط شرکت آرم هولدینگز طراحی شده‌است و برای تلفن‌های هوشمند، تبلت‌ها و دستگاه‌های قابل‌حمل بیش تر استفاده می شود اما در بسیاری از لوازم برقی، تجهیزات الکترونیکی و پروژه‌های صنعتی رباتیک، اتوماسیون نیز کاربرد دارد. این پردازنده دستورالعمل‌های ۳۲ بیتی و ۶۴ بیتی را پردازش می‌کند و تا به امروز در حال توسعه می باشد. ازآنجا که این پردازنده به‌گونه‌ای طراحی‌شده که برای هسته اصلی پردازشگر حدود ۳۵ هزار ترانزیستور نیاز است و این باعث می‌شود که پردازنده بسیار کم‌مصرف شود، کم‌تر داغ کند و نیازی به خنک‌کننده یا فن نداشته باشد.

ARM ارائه دهنده پیشرو ریزپردازنده‌های مبتنی بر RISC و سایر IP‌های نیمه‌هادی با بیش از 85 میلیارد تراشه مبتنی بر ARM است. این کمپانی مانند سایر کمپانی های تولید ریزپردازنده مانند اینتل، هیتاچی، فری‌اسکیل و غیره، پردازنده یا سایر ادوات نیمه‌هادی را تولید نمی‌کند بلکه، گواهی مجوز ساخت هسته‌های نیمه‌هادی را به سایر شرکت‌های نیمه‌هادی مانند اتمل (ATMEL)، فیلیپس (اکنون NXP)، سامسونگ (Samsung) و غیره می‌دهد.

ARM ابزارهای توسعه نرم‌افزاری کاملی مانند Keil و DS-5 را برای توسعه سیستم‌های کامل مبتنی بر میکروکنترلر ARM و سیستم‌ برون‌تراشه‌ای ارائه می‌دهد.

با معماری ARM، ویژگی‌های آن و خانواده پردازنده‌های ARM آشنا می‌شویم.

ویژگی های پردازنده ARM

پردازنده‌های ARM معماری نوع انتقال داده (Load-Store) را دنبال می‌کنند در این معماری پردازش داده‌ها فقط بر روی محتویات ثبات‌ها یا رجیسترها انجام می‌شود و نه مستقیم روی حافظه و دستورالعمل پردازش داده‌ها در رجیسترها با دسترسی به حافظه متفاوت است.مجموعه دستورالعمل ARM پردازنده یکنواخت و طول آن ثابت است.

  1. مجموعه دستورالعمل آرم ۳۲ بیتی و مجموعه دستورالعمل Thumb با ۱۶ بیت است (Thumb روشی است برای فشرده‌سازی دستورات پرکاربرد 32 بیتی به صورت 16 بیتی جهت کاهش حجم برنامه، در ازای کاهش سرعت اجرای آن است).

نحوهی کار پردازنده بدین صورت است که ARM از چندین مرحله خط لوله (Pipeline) برای سرعت بخشیدن به جریان دستورالعمل‌ها پشتیبانی می‌کند. در خط لوله سه‌مرحله‌ای ساده، دستورالعمل‌ها از سه مرحله پیروی می‌کنند: واکشی (fetch)، رمزگشایی (decode) و اجرا (execute).

تعدادی از ویژگی‌های عمومی ARM به شرح زیر هستند:

  • پردازنده‌های به دلیل استفاده از معماری ریسک ARM از سرعت مناسب نسبت به توان مصرفی برخوردار هستند.
  • طیف فرکانس ساعت (کلاک) میکروپروسسورهای ARM گسترده و از ۱ مگاهرتز تا چند گیگاهرتز است.
  • پردازنده‌های ARM به صورت سخت‌افزاری برای اشکال‌زدایی (Debugging) ساخته شده‌اند.
  • از دستورالعمل‌های پیشرفته برای عملیات پردازش سیگنال دیجیتال یا DSP بهره می‌برند.

خانواده های پردازنده ARM

خانواده آرم بر اساس هسته پردازشی که با آن‌ پیاده‌سازی شده‌اند، تقسیم می‌شود. با توسعه معماری پردازنده‌های ARM درهر خانواده تنوع این پردازنده ادامه دارد. برخی از خانواده‌های این پردازنده، عبارتند از: ARM10 ،ARM9 ،ARM7 و ARM11. در جدول زیر تعدادی از خانواده‌های رایج ARM در کنار معماری آن‌ها ارائه شده است.

اختصار هایی که در پردازنده ARM نشان داده می شود به شرح ذیل است.

  • x – خانواده یا سری
  • y – واحد مدیریت/حفاظت از حافظه
  • z – حافظه نهان
  • T – دیکدر Thumb شانزده بیتی: پردازنده‌های ARM از هر دو مجموعه دستورالعمل 32 بیتی ARM و مجموعه دستورالعمل Thumb شانزده بیتی پشتیبانی می‌کنند.دستورالعمل‌های Thumb شانزده بیتی شامل کدهای 16 بیتی یا الگوی باینری 2 بایتی برای بهبود تراکم کد است.
  • D – اشکال‌زدایی JTAG :JTAG یک پروتکل سریال است که توسط ARM برای انتقال اطلاعات اشکال‌زدایی یا دیباگ بین پردازنده و تجهیز تست استفاده می‌شود.
  • M – ضرب‌کننده سریع: پردازنده‌های قدیمی ARM از یک واحد ضرب‌‌کننده ساده استفاده می‌کردند.با وجود واحد ضرب‌کننده سریع (Fast Multiplier)، سیکل‌های ساعت مورد نیاز برای ضرب به طور قابل توجهی کاهش می‌یابد.
  • I – شبیه‌ساز درون‌مدار (ICE) تعبیه شده ماکروسل (Macrocell): پردازنده‌های ARM دارای سخت‌افزار اشکال‌زدایی بر روی تراشه هستند که به پردازنده اجازه می‌دهد breakpoints و watchpoints را تنظیم یا Set کند.
  • E – دستورالعمل‌های پیشرفته برای DSP (فرض TDMI): پردازنده‌های ARM در این مُد از مجموعه دستورالعمل تعمیم یافته DSP برای برنامه‌های DSP با کارایی بالا پشتیبانی می‌کنند.
  • Jazelle – J (برای اجرای سریع JAVA): از پردازنده‌های ARM با فناوری Jazelle می‌توان در اجرای سریع کدهای جاوا استفاده کرد.
  • F – واحد ممیز شناور (FPU) برداری: معماری ممیز شناور (Floating Point) در پردازنده‌های ARM اجرای عملیات حسابی شناور را ارائه می‌دهد.
  • S – نسخه Synthesizable: هسته پردازنده ARM به عنوان کد منبع (سورس کد) در دسترس است.

انواع پردازنده های ARM

پردازنده‌های ARM را به سه دسته پردازنده‌های کلاسیک آرم (ARM Classic Processors)، پردازنده‌های توکار آرم (ARM Embedded Processors) و پردازنده‌های کاربردی آرم (ARM Application Processors) تقسیم‌بندی کرد.

در ذیل خانواده ارم کلاسیک آماده است که ARM7TMDI هنوز پراستفاده‌ترین پردازنده 32 بیتی است.و هنوز هم در بسیاری از دستگاه‌های کوچک و ساده 32 بیتی استفاده می‌شوند.

که در بخش قبل معماری این پردازنده نشان داده شده است از این بین پردازنده‌های Cortex-M دارای انرژی کارآمد بوده و برای اجرا ساده هستند و عمدتاً برای برنامه‌های پیشرفته تعبیه شده توسعه یافته‌اند.

پردازنده‌های Cortex-M ARM به چندین هسته پردازنده مانند Cortex-M0 ،Cortex-M0+ ،Cortex-M3 ،Cortex-M4  و Cortex-M7 تقسیم می‌شوند.سری Cortex-A بالاترین عملکرد را در بین پردازنده‌‌های  موجود دارد.

این پردازنده‌ها در دستگاه‌های تلفن همراه، تجهیزات شبکه، لوازم برقی، سیستم‌های اتوماسیون، خودروها و سایر سیستم‌ها توکار به کار می‌روند.

که این پردازنده به انواع پردازنده‌های عملکرد بالا (High Performance)، بازده بالا (High Efficiency) و بازده بسیار بالا (Ultra-high Efficiency) تقسیم می‌شوند. هرکدام از این زیر مجموعه خود شامل دسته بندی ها دیگر می شوند.

شروع کار از کجا؟

بسیاری از توسعه‌دهندگان سیستم‌های توکار، سری LPC214X را به عنوان بهترین پردازنده برای شروع کاربردی ARM پیشنهاد می‌دهند.

سری LPC214X یک پردازنده مبتنی بر ARM7 با هسته پردازنده ARM7TDMI-S است. این پردازنده مبتنی بر معماری ARMv4 بوده و تنها تغییر آن ، افزودن دستورالعمل‌های Thumb شانزده بیتی است. نرم‌افزارهای توسعه LPC2148  که می توان به  کیل (Keil) یک محیط توسعه نرم‌افزاری برای پردازنده‌های ARM اشاره کرد. Keil شامل ابزارهای کاملی از جمله محیط یکپارچه توسعه نرم‌افزار (IDE)، کامپایلر، دیباگر و سیمولاتور است.

اما میکروکنترلر ARMپس چی هست ؟

میکروکنترلر ARM خانواده STM32 مبتنی بر Cortex-M است. خانواده STM32 به طور کلی به چهار دسته کلی طبقه‌بندی می‌شوند. این چهار دسته عبارتند از: کارایی بالا، اصلی، توان بسیار کم و بی‌سیم. خانواده STM32 از ساخت اس‌تی‌مایکروالکترونیکس (STMicroelectronics) است.

میکروکنترلرهای STM32 امکانات جانبی ارتباطی سریال و موازی را ارائه می‌دهند که می‌توانند با انواع قطعات الکترونیکی از جمله سنسورها، نمایشگرها، دوربین‌ها، موتورها و سایر تجهیزات ارتباط برقرار کنند. هر نوع میکروکنترلر ARM از خانواده STM32 دارای حافظه داخلی فلش و رم هستند.

دامنه عملکرد این میکرو کنترلربسیار گسترده است. برخی از ابتدایی‌ترین انواع این خانواده، سری STM32F0 و STM32F1 است که از فرکانس ساعت تنها 24 مگاهرتز شروع می‌شوند و در بسته‌هایی با حداقل 16 پین در دسترس هستند.

از طرف دیگر، میکروکنترلر ARM سری STM32H7 با کارایی بسیار عالی، در بسته‌هایی با حداکثر 240 پین موجود است. این میکروکنترلر، یک میکروکنترلر ARM تک یا دو هسته‌ای است که از یک هسته Cortex-M7 با فرکانس 480 مگاهرتز و یک هسته Cortex-M7 با فرکانس ۲۴0 مگاهرتز اضافه برای نسخه‌های دو هسته‌ای تشکیل شده است.

ابزارهای توسعه میکروکنترلر ARM

ابزارهای توسعه برای تهیه کد، برنامه‌نویسی میکروکنترلر و آزمایش‌ و اشکال‌زدایی کد مورد نیاز هستند. ابزارهای توسعه شامل موارد زیر است:

  • کامپایلر (Compiler)
  • اشکال‌زدا (Debugger)
  • برنامه‌نویس سریالی درون‌مداری (ICSP)

برای کار میحط یکپارچه توسه نرم افزار IDE استفاده کرد.

دو بسته توسعه رایج به شرح زیر هستند:

  •  :Keil MDK ARM  با این برنامه می‌توان یک برنامه کد را تا اندازه 32 کیلوبایت توسعه داد و برای بیشتر از آن نیاز به نسخه های پولی می باشد.
  • CoIDE: یک زنجیره ابزار رایگان مبتنی بر نسخه مختصر شده‌ای از Eclipse IDE است که به همراه یک نسخه ARM تعبیه شده از کامپایلر GCC ساخته شده است.

جدا از ابزارهای نرم‌افزاری، یک برنامه‌نویس سریالی درون‌مداری (ICSP) برای پروگرام و تست کد مورد نیاز است. ICSP باید از طریق درگاه USB میکروکنترلر را با ابزارهای نرم افزاری PC متصل کند.

دیدگاهتان را بنویسید