14-01-2020, 02:13 AM
ARM نوعی از معماری پردازندههای کامپیوتری است که بر طبق طراحی RISC CPU و توسط کمپانی بریتانیایی ARM Holding طراحی شده است.
معماری ARM که دستورالعملهای ۳۲ بیتی را پردازش میکند از دهه ۱۹۸۰ تا به امروز در حال توسعه است.
ARM مخفف Advanced RISC Machine است و از آنجایی که این معماری براساس طراحی RISC بنا شدهاست، هسته اصلی CPU نیاز به ۳۵ هزار ترانزیستور دارد این در حالی است که پردازندههای معمولی رایج x86 که براساس CISC طراحی شدهاند حداقل نیاز به میلیونها ترانزیستور دارند. مهمترین دلیل مصرف بسیار پایین انرژی در پردازندههای مبتنی بر ARM که باعث استفاده گسترده آنها در ابزارهای پرتابل مانند تلفن هوشمند یا تبلت شده نیز همین موضوع است.
شرکت ARM Holding خود تولیدکننده پردازنده نیست و در عوض گواهی استفاده از معماری ARM را به دیگر تولیدکنندگان نیمه هادی میفروشد. کمپانیها نیز به راحتی تراشههای خود را براساس معماری ARM تولید میکنند. از جمله کمپانیهایی که پردازنده خود را براساس معماری ARM طراحی میکنند میتوان به اپل در تراشههای Ax، سامسونگ در پردازندههای Exynos، انویدیا در تگرا و کوالکام در پردازندههای Snpdragon اشاره کرد.
در سال ۲۰۱۱ مشتریان ARM توانستند ۷٫۹ میلیارد ابزار مبتنی بر این معماری را وارد بازار کنند. شاید تصور می شود که پردازندههای مبتنی بر ARM تنها در تبلت و تلفنهای هوشمند بکار گرفته میشوند، اما در همین سال بیش از ۹۵ درصد تلفنهای هوشمند دنیا، ۹۰ درصد دیسکهای سخت (HDD)، حدود ۴۰ درصد تلویزیونهای دیجیتال و ستتاپباکسها، ۱۵ درصد میکروکنترلرها و ۲۰ درصد کامپیوترهای موبایل مجهز به پردازندههای مبتنی بر معماری ARM بودهاند. بدون شک این آمار در سال ۲۰۱۷ رشد فوقالعاده چشم گیری را تجربه کرده است و به چهر برابر بیشتر مقادیر سال ۲۰۱۱ رسیده است، چون بازار تلفنهای هوشمند و تبلتهای در سال جاری پیشرفت قابل ملاحظهای داشتهاند.
تا اینجا کار معماری ARM تنها برروی پلتفرم ۳۲ بیتی با عرض حافظه ۱ بایت کار میکرد. اما با معرفی ARMv8 این معماری پشتیبانی از دستورهای ۶۴ بیتی را نیز آغاز کرد که البته هنوز در سیستم-روی-یک-چیپها بکار گرفته نشده است. در سال ۲۰۱۲ مایکروسافت نیز نسخه ویندوز سازگار با معماری ARM را به همراه تبلت سرفیس RT معرفی کرد. AMD نیز اعلام نموده که قصد دارد در سال ۲۰۱۴ سرورهای مبتنی بر معماری ۶۴ بیتی ARM را روانه بازار کند.
ARM گواهی استفاده از معماری خود را به شرکتهای دیگر میدهد، کمپانیهایی که در حال حاضر گواهی استفاده از ARM را دارند این شرکت ها عبارتند از:
AMD, آلکاتل، اپل، AppliedMicro, Atmel, Broadcom, Cirrus Logic, CSR plc, Digital Equipment Corporation, Ember, Energy Micro, Freescale, فوجیتسو، Fuzhou Rockchip, هواوی، اینتل توسط شرکتهای زیر شاخه، ال جی، Marvell Technology Group, Microsemi, مایکروسافت، NEC, نینتندو، Nuvoton, انویدیا، NXP (formerly Philips Semiconductor), Oki, ON Semiconductor, پاناسونیک، کوالکام، Renesas, Research In Motion, سامسونگ، شارپ، Silicon Labs, سونی، اریکسون، STMicroelectronics, Symbios Logic, Texas Instruments, توشیبا، یاماها و ZiiLABS.
کاربرد ARM:
از ARM در ساخت CPU های ۳۲ و ۶۴ بیتی چند هسته ای استفاده می گردد. معماری RISC دارای تعداد دستورالعمل های کمتری است و سرعت اجرای دستورالعمل ها در این معماری بیشتر است و توان مصرفی این CPU های نیز کمتر است.
امروزه پردازنده های ARM به علت مزایای بالا ، به طور گسترده در دستگاه های الکترونیکی همراه مانند تلفن های همراه ، تبلت ها ، پلیر ها ، ساعت های هوشمند و …. استفاده می شود. پردازنده های ARM به علت داشتن تعداد دستور العمل های کمتر ، هنگام ساخت به تعداد ترانزیستور های کمتری نیاز دارند و به همین دلیل ساخت IC های پردازنده با اندازه کوچکتر را ممکن می سازد.
طراحی ساده ARM باعث می شود تا پردازش چند هسته ای بهینه تر و کد نویسی برای این پردازنده های ساده تر باشد. پردازنده های ARM در برخی دستورالعمل های مشترک ، در مقایسه با پردازنده های Intel حتی پایداری بالاتری نیز دارند.
ARM از ابتدا تا کنون چندین هسته مختلف مانند:
ARM1,ARM2,ARM3,ARM4,ARM4T,ARM6,ARM6M,ARM7M,ARM7EM,ARM7R,ARM7A,ARM8A,ARM8.1A,ARM8R ارائه نموده است که در دستگاه های مختلفی کاربرد داشته و دارند. در سالهای اخیر از پردازنده های ARM در ساخت لپ تاپ ها نیز استفاده شده و بیش از ۲۰% لپ تاپ ها از این پردازنده استفاده می نمایند .
مقایسه میکروکنترلرهای ARM:
با پیشرفت سیستم های توسعه یافته, میکروکنترلرهای ۸ و ۱۶ بیتی جوابگوی نیازهای این سیستم ها نمی باشند و به کارگیری میکروکنترلرهای ۳۲ بیتی به سرعت رو به افزایش است. در این میان میکروکنترلرهای ۳۲ بیتی خانواده ARM به دلیل مصرف توان اندک, سرعت پردازش زیاد و قیمت بسیار اندک نخستین انتخاب موجود می باشد. به همین دلیل امروزه بسیاری از تولید کنندگان بزرگ میکروکنترلرها, در طیف وسیعی از تولیدات خود از هسته های پردازنده ARM استفاده می کنند. میکروکنترلرهای ARM با پیاده سازی اجزای مختلفی از قبیل ارتباط های CAN, USB, Ethernet در داخل تراشه, نیاز به استفاده از المان های خارجی را تا حد زیادی کاهش می دهند, از سوی دیگر معماری ۳۲ بیتی آن ها این امکان را فراهم می آورد که زبان های سطح بالا از قبیل C و ++C به منظور برنامه نوسی این تراشه ها مورد استفاده قرار گیرند.
سیستم عامل های بلادرنگ (RTOS) و کتابخانه های متعددی جهت کار با این تراشه ارائه شده اند, که امکان استفاده از آن ها را بدون درگیر شدن با جزئیات داخلی و رجیسترهای تراشه ممکن می سازد. Symbian OS, Linux, Windows CE نمونه ای از سیستم های عامل بلادرنگ رایج در سیستم های توسعه یافته می باشند. همچنین کتابخانه TCP/IP که توسط بسیاری از تولید کنندگان میکروکنترلرهای ARM, به صورت رایگان ارائه می شود, امکان اتصال این تراشه ها به شبکه را بدون درگیر شدن کاربر با لایه های پایین شبکه فراهم می آورد.
معماری میکروکنترلرهای ۳۲ بیتی ARM قالبا بر پایه هسته های ARM7, ARM9, Cortex-M3 استوار می باشد. تراشه های ARM9 دارای سرعت پردازش بیشتری در مقایسه با انواع ARM7 می باشند و معماری آن ها به منظور استفاده از سیستم های عامل بلادرنگ از قبیل Linux, Windows CE بهینه سازی شده است. اما اغلب پردازنده های ARM9 فاقد حافظه کد داخلی می باشند و از واحد مدیریت حافظه (MMU) به منظور ارتباط با حافظه های خارجی از قبیل SDram و Nand Flash استفاده می کنند بر خلاف میکروکنترلرهای ARM7 که برنامه کاربر در حافظه Flash داخلی تراشه ذخیره و اجرا می شود. همچنین مصرف میکروکنترلرهای ARM9 به طور معمول بیشتر از انواع ARM7 می باشد.
برنامه نویسی پردازنده های ARM:
برای برنامه نویسی این پردازنده از زبان های c ، C++ ، بیسیک و اسمبلی استفاده می شود.
برای زبان های c مثل خود c و c++ کامپایلر های متعددی ارائه شده که از جمله مهم ترین کامپایلر ها، کامپایلر keil uvision و IAR م باشد که در آن به زبان های اسمبلی و c و c++ می توان برنامه نوسی کرد.
نسخه رایگان این کامپایلر در لینک زیر موجود است:
دانلود نرم افزارIAR
دانلود نرم افزار KEIL Uvision
برای زبان بیسیک نیز کامپایلر بسکام ARM موجود می باشد که به دلیل عدم کرک مناسب برای استفاده رایگان در دسترس نیست.
مزایایی میکروکنترلر ARM نسبت به میکروکنترلر های دیگر:
سرعت پردازش بسیار بالا : بیشتر هسته های ARM7 تا فرکانس ۶۰MHz کار می کنند و هسته ها Cortex-M3 تا فرکانس ۱۳۳MHz کار می کنند.
توان مصرفی کم: هسته های ARM به ازای هر MHz توانی از ۰٫۲mA تا ۱mA مصرف می کنند.
سخت افزارهای جانبی متععد: ADC , DAC , USB ,SPI , UART , CAN , Ethernet , SDRam و غیره
حافظه داخلی زیاد
و …
میکروکنترلر های موجود در بازار ایران:
میکروکنترلر های رایج در بازار ایران بیشتر از سه شرکت NXP ، Atmel ، STM می باشد. که تنوع STM در بازار ایران بسیار بالاست. بعدی از شرکت NXP (همان فلیپس) سری های LPC21xx , LPC23xx , LPC17xx,LPC13xx و… در بازار موجود هستند. و همچنین شرکت ATMEL با عنوان AT91SAM در بازار ایران قابل دسترسی است.
معماری ARM که دستورالعملهای ۳۲ بیتی را پردازش میکند از دهه ۱۹۸۰ تا به امروز در حال توسعه است.
ARM مخفف Advanced RISC Machine است و از آنجایی که این معماری براساس طراحی RISC بنا شدهاست، هسته اصلی CPU نیاز به ۳۵ هزار ترانزیستور دارد این در حالی است که پردازندههای معمولی رایج x86 که براساس CISC طراحی شدهاند حداقل نیاز به میلیونها ترانزیستور دارند. مهمترین دلیل مصرف بسیار پایین انرژی در پردازندههای مبتنی بر ARM که باعث استفاده گسترده آنها در ابزارهای پرتابل مانند تلفن هوشمند یا تبلت شده نیز همین موضوع است.
شرکت ARM Holding خود تولیدکننده پردازنده نیست و در عوض گواهی استفاده از معماری ARM را به دیگر تولیدکنندگان نیمه هادی میفروشد. کمپانیها نیز به راحتی تراشههای خود را براساس معماری ARM تولید میکنند. از جمله کمپانیهایی که پردازنده خود را براساس معماری ARM طراحی میکنند میتوان به اپل در تراشههای Ax، سامسونگ در پردازندههای Exynos، انویدیا در تگرا و کوالکام در پردازندههای Snpdragon اشاره کرد.
در سال ۲۰۱۱ مشتریان ARM توانستند ۷٫۹ میلیارد ابزار مبتنی بر این معماری را وارد بازار کنند. شاید تصور می شود که پردازندههای مبتنی بر ARM تنها در تبلت و تلفنهای هوشمند بکار گرفته میشوند، اما در همین سال بیش از ۹۵ درصد تلفنهای هوشمند دنیا، ۹۰ درصد دیسکهای سخت (HDD)، حدود ۴۰ درصد تلویزیونهای دیجیتال و ستتاپباکسها، ۱۵ درصد میکروکنترلرها و ۲۰ درصد کامپیوترهای موبایل مجهز به پردازندههای مبتنی بر معماری ARM بودهاند. بدون شک این آمار در سال ۲۰۱۷ رشد فوقالعاده چشم گیری را تجربه کرده است و به چهر برابر بیشتر مقادیر سال ۲۰۱۱ رسیده است، چون بازار تلفنهای هوشمند و تبلتهای در سال جاری پیشرفت قابل ملاحظهای داشتهاند.
تا اینجا کار معماری ARM تنها برروی پلتفرم ۳۲ بیتی با عرض حافظه ۱ بایت کار میکرد. اما با معرفی ARMv8 این معماری پشتیبانی از دستورهای ۶۴ بیتی را نیز آغاز کرد که البته هنوز در سیستم-روی-یک-چیپها بکار گرفته نشده است. در سال ۲۰۱۲ مایکروسافت نیز نسخه ویندوز سازگار با معماری ARM را به همراه تبلت سرفیس RT معرفی کرد. AMD نیز اعلام نموده که قصد دارد در سال ۲۰۱۴ سرورهای مبتنی بر معماری ۶۴ بیتی ARM را روانه بازار کند.
ARM گواهی استفاده از معماری خود را به شرکتهای دیگر میدهد، کمپانیهایی که در حال حاضر گواهی استفاده از ARM را دارند این شرکت ها عبارتند از:
AMD, آلکاتل، اپل، AppliedMicro, Atmel, Broadcom, Cirrus Logic, CSR plc, Digital Equipment Corporation, Ember, Energy Micro, Freescale, فوجیتسو، Fuzhou Rockchip, هواوی، اینتل توسط شرکتهای زیر شاخه، ال جی، Marvell Technology Group, Microsemi, مایکروسافت، NEC, نینتندو، Nuvoton, انویدیا، NXP (formerly Philips Semiconductor), Oki, ON Semiconductor, پاناسونیک، کوالکام، Renesas, Research In Motion, سامسونگ، شارپ، Silicon Labs, سونی، اریکسون، STMicroelectronics, Symbios Logic, Texas Instruments, توشیبا، یاماها و ZiiLABS.
کاربرد ARM:
از ARM در ساخت CPU های ۳۲ و ۶۴ بیتی چند هسته ای استفاده می گردد. معماری RISC دارای تعداد دستورالعمل های کمتری است و سرعت اجرای دستورالعمل ها در این معماری بیشتر است و توان مصرفی این CPU های نیز کمتر است.
امروزه پردازنده های ARM به علت مزایای بالا ، به طور گسترده در دستگاه های الکترونیکی همراه مانند تلفن های همراه ، تبلت ها ، پلیر ها ، ساعت های هوشمند و …. استفاده می شود. پردازنده های ARM به علت داشتن تعداد دستور العمل های کمتر ، هنگام ساخت به تعداد ترانزیستور های کمتری نیاز دارند و به همین دلیل ساخت IC های پردازنده با اندازه کوچکتر را ممکن می سازد.
طراحی ساده ARM باعث می شود تا پردازش چند هسته ای بهینه تر و کد نویسی برای این پردازنده های ساده تر باشد. پردازنده های ARM در برخی دستورالعمل های مشترک ، در مقایسه با پردازنده های Intel حتی پایداری بالاتری نیز دارند.
ARM از ابتدا تا کنون چندین هسته مختلف مانند:
ARM1,ARM2,ARM3,ARM4,ARM4T,ARM6,ARM6M,ARM7M,ARM7EM,ARM7R,ARM7A,ARM8A,ARM8.1A,ARM8R ارائه نموده است که در دستگاه های مختلفی کاربرد داشته و دارند. در سالهای اخیر از پردازنده های ARM در ساخت لپ تاپ ها نیز استفاده شده و بیش از ۲۰% لپ تاپ ها از این پردازنده استفاده می نمایند .
مقایسه میکروکنترلرهای ARM:
با پیشرفت سیستم های توسعه یافته, میکروکنترلرهای ۸ و ۱۶ بیتی جوابگوی نیازهای این سیستم ها نمی باشند و به کارگیری میکروکنترلرهای ۳۲ بیتی به سرعت رو به افزایش است. در این میان میکروکنترلرهای ۳۲ بیتی خانواده ARM به دلیل مصرف توان اندک, سرعت پردازش زیاد و قیمت بسیار اندک نخستین انتخاب موجود می باشد. به همین دلیل امروزه بسیاری از تولید کنندگان بزرگ میکروکنترلرها, در طیف وسیعی از تولیدات خود از هسته های پردازنده ARM استفاده می کنند. میکروکنترلرهای ARM با پیاده سازی اجزای مختلفی از قبیل ارتباط های CAN, USB, Ethernet در داخل تراشه, نیاز به استفاده از المان های خارجی را تا حد زیادی کاهش می دهند, از سوی دیگر معماری ۳۲ بیتی آن ها این امکان را فراهم می آورد که زبان های سطح بالا از قبیل C و ++C به منظور برنامه نوسی این تراشه ها مورد استفاده قرار گیرند.
سیستم عامل های بلادرنگ (RTOS) و کتابخانه های متعددی جهت کار با این تراشه ارائه شده اند, که امکان استفاده از آن ها را بدون درگیر شدن با جزئیات داخلی و رجیسترهای تراشه ممکن می سازد. Symbian OS, Linux, Windows CE نمونه ای از سیستم های عامل بلادرنگ رایج در سیستم های توسعه یافته می باشند. همچنین کتابخانه TCP/IP که توسط بسیاری از تولید کنندگان میکروکنترلرهای ARM, به صورت رایگان ارائه می شود, امکان اتصال این تراشه ها به شبکه را بدون درگیر شدن کاربر با لایه های پایین شبکه فراهم می آورد.
معماری میکروکنترلرهای ۳۲ بیتی ARM قالبا بر پایه هسته های ARM7, ARM9, Cortex-M3 استوار می باشد. تراشه های ARM9 دارای سرعت پردازش بیشتری در مقایسه با انواع ARM7 می باشند و معماری آن ها به منظور استفاده از سیستم های عامل بلادرنگ از قبیل Linux, Windows CE بهینه سازی شده است. اما اغلب پردازنده های ARM9 فاقد حافظه کد داخلی می باشند و از واحد مدیریت حافظه (MMU) به منظور ارتباط با حافظه های خارجی از قبیل SDram و Nand Flash استفاده می کنند بر خلاف میکروکنترلرهای ARM7 که برنامه کاربر در حافظه Flash داخلی تراشه ذخیره و اجرا می شود. همچنین مصرف میکروکنترلرهای ARM9 به طور معمول بیشتر از انواع ARM7 می باشد.
برنامه نویسی پردازنده های ARM:
برای برنامه نویسی این پردازنده از زبان های c ، C++ ، بیسیک و اسمبلی استفاده می شود.
برای زبان های c مثل خود c و c++ کامپایلر های متعددی ارائه شده که از جمله مهم ترین کامپایلر ها، کامپایلر keil uvision و IAR م باشد که در آن به زبان های اسمبلی و c و c++ می توان برنامه نوسی کرد.
نسخه رایگان این کامپایلر در لینک زیر موجود است:
دانلود نرم افزارIAR
دانلود نرم افزار KEIL Uvision
برای زبان بیسیک نیز کامپایلر بسکام ARM موجود می باشد که به دلیل عدم کرک مناسب برای استفاده رایگان در دسترس نیست.
مزایایی میکروکنترلر ARM نسبت به میکروکنترلر های دیگر:
سرعت پردازش بسیار بالا : بیشتر هسته های ARM7 تا فرکانس ۶۰MHz کار می کنند و هسته ها Cortex-M3 تا فرکانس ۱۳۳MHz کار می کنند.
توان مصرفی کم: هسته های ARM به ازای هر MHz توانی از ۰٫۲mA تا ۱mA مصرف می کنند.
سخت افزارهای جانبی متععد: ADC , DAC , USB ,SPI , UART , CAN , Ethernet , SDRam و غیره
حافظه داخلی زیاد
و …
میکروکنترلر های موجود در بازار ایران:
میکروکنترلر های رایج در بازار ایران بیشتر از سه شرکت NXP ، Atmel ، STM می باشد. که تنوع STM در بازار ایران بسیار بالاست. بعدی از شرکت NXP (همان فلیپس) سری های LPC21xx , LPC23xx , LPC17xx,LPC13xx و… در بازار موجود هستند. و همچنین شرکت ATMEL با عنوان AT91SAM در بازار ایران قابل دسترسی است.