معرفی معماری (ARM(Advanced RISC Machine
(دانلود فایل PDF)
برای درک چگونگی ارجاع به پردازنده های ARM با یک سوال ساده شروع میکنیم، بدون شک شما به دفعات در مورد پردازنده های ARM موجود در گوشی های موبایل، دوربین های عکاسی، تلوزیون LCD و ... شنیده اید، حال از خود میپرسیم که منظور از"Dual Cortex-A9 بر پایه معماری ARMv7" در یک گوشی موبایل پیشرفته چیست(به عنوان مثال Apple iPhone)؟
نکته قابل توجه برای فهمیدن تفاوت بین نام یک خانواده از پردازنده و نگارش(Version) مجموعه دستوالعمل ها (instruction set architecture (ISA) version) در نحوه پیاده سازی آن معماری برای یک خانواده از پردازنده می باشد.
- تعداد زیاد و متنوعی از پردازنده ARM موجود می باشد که هر کدام دارای توانایی، ویژگی و پیاده سازی متفاوتی می باشند ولی همه آنها با رابط دستورالعمل و خصوصیات مشابه توصیف می شوند(دستورالعمل، روش عمل و ...) که در تمام پردازنده پشتیبانی می شود. نگارش(Version) های معماری ARM بصورت پیوسته توسعه پیدا کرده و با ARMvX نام گذاری شده است(X شماره نگارش(Version) معماری).
- خانواده پردازنده ARM به گروه های متعددی تقسیم می شوند که بصورت پیوسته نام گذاری شده اند، از خانواده ARM1(1985) شروع شده و تا ARM11(2002) ادامه یافته، و توسعه های بعدی با تغییر نام به(Cortex2005) توسعه داده شده (Cortex-X).
هر خانواده جدید با معرفی پردازنده های جدید با بهبود طراحی، افزایش کارایی و ویژگی های جدید همراه می باشد.
پس یک "dual Cortex-A9, based on ARMv7" یک پردازنده با دو تا هسته Coretx-A9 می باشد که مبتنی بر معماری نگارش(Version7) می باشد، در واقع نام فنی برای این پردازنده Cortex-A9 MPCore بر پایه ARMv7 می باشد.
نکته: بعضی اوقات اسم یک پردازنده را به اشتباه بیان می کنیم. به عنوان مثال: بعضی افراد ARM11 را یک پردازنده می نامند که این صحیح نمی باشد، بلکه در واقع ARM11 based on ARMv6 یک خانواده از پردازنده ها می باشد. در صورتی که ARM1136 ،ARM1156 یا ARM1176 را می توان یک پردازنده مبتنی بر خانواده ARM11 نامید.
پسوندها :
تا قبل از خانواده Cortex ،ARM1 تا ARM9 با یکسری پسوندها مشخص می شدند که هرکدام یک سری خصوصیت را تعریف می کرد.
در زیرتعدادی مثال آورده شده است:
- F: اشاره به پشتیبانی از واحد (Vector Floating Point)VFP دارد.
- T یا T2: پردازنده قادر است از دستورالعمل کدگزاری Thumb یا Thumb2 استفاده کند.
- DMI : Debug, enhanced Multiplier, embedded Ice
- E : DSP-like Extensions
- J : Jazelle
- S : Synthesizable
- Z : TrustZone extension
شماره های پسوند اشاره به خصوصیات سخت افزاری پردازنده دارد:
به عنوان مثال شماره 1و2و3و4و6 بیانگر( X خانواده پردازنده):
- ARMx1z : Cache and MMU
- ARMx2z : Cache, MMU, with "Process ID" support
- ARMx3z, ARMx5z, ARMx7z : Cache, MMU, with physical address tagging
- ARMx4z : Cache and MPU (protection unit, no virtual memory)
- ARMx6z : Write buffer but no caches
درضمن برای بعضی از نگارش(Version) های معماری هم پسوندها اضافه می شود. به عنوان مثال(ARMv4T (T: Thumb
| Example of processors |
Architecture versions implemented |
Family |
| ARM1 |
ARMv1 |
ARM1 |
| ARM2 |
ARMv2 |
ARM2 |
| ARM250 |
ARMv2a |
|
| ARM3 |
ARMv2a |
ARM3 |
| ARM60, ARM600, ARM610 |
ARMv3 |
ARM6 |
| ARM700, ARM710, ARM710a |
ARMv3 |
ARM7 |
| ARM7TDMI, ARM710T, ARM720T |
ARMv4T |
|
| ... |
... |
... |
| ARM926EJ-S |
ARMv6 |
ARM11 |
| Cortex-A5, Cortex-A8, Cortex-A9 |
ARMv7-A |
Cortex-A |
| Cortex-R4 |
ARMv7-R |
Cortex-R |
| Cortex-M0, Cortex-M1 |
ARMv6-M |
Cortex-M |
| Cortex-M3 |
ARMv7-M |
|
| Cortex-M4 |
جدول کلی از خانواده ها، معماری و پردازنده های ARM

نمودار گروه بندی پردازنده های ARM
همانطور که در جدول و نمودار بالا مشاهده می کنید، هر خانواده ARM می تواند نگارش(Version) های متفاوت معماری داشته باشد، هر معماری هم می تواند شامل انواع متفاوت پردازنده ها با پیاده سازی متفاوت باشد.
در کل پردازنده های ARM به چهار گروه کلی تقسیم می شود، که هر گروه برای کاربرد خاصی توسعه داده شده است :
- پردازنده های Classic
- گروه پردازنده های Embedded(توکار)
- گروه پردازنده های کاربردی(Application processor)
- گروه پردازنده های خاص امنیتی (Secure-Core)
گروه پردازنده های Classic
گروه پردازنده های Classic(مطابق بهترین نمونه): پردازنده های کلاسیک یک نمونه ایده آل برای افرادی است که می خواهند راه کارهای(نیازمند به پردازنده) ارزان قیمت و کابردی برای پروژه ها و سازمان خود داشته باشند. این سری ARM دارای توانایی های بالا و کابرد وسیعی می باشد، همچنین منابع وسیعی برای طراحی سخت افزار و نرم افزار برای این سری موجود می باشد، به همین دلیل سالانه میلیاردها تراشه از این سری در سطح دنیا به فروش می رسد.
خانوده های سری کلاسیک:
خانواده پردازنده های کلاسیک برای اهداف و کاربرد های عمومی(مشابه میکروکنترلر های AVR و ...)
محبوبترین خانواده پردازنده ها مبتنی بر معماری ARMv5 (بدلیل منابع فراوان، قیمت ارزان، پشتیبانی از سیستم عامل های پیچیده (...Linux, Windows embedded)
سری با توانایی بالا و کابرد زیاد در گروه کلاسیک (به دلیل پشتیبانی از کارهای گرافیکی به صورت سخت افزاری و ...)، توانایی پشتیبانی از واحد پردازنده چند رسانه ای( NEON (DSP.
کابرد های پردازنده های سری کلاسیک در کنترل کننده های ساده، پایش اطلاعات، گوشی های موبایل، و همچنین در کاربردهای نظامی، پزشکی و صنعتی نیز استفاده می شود.
گروه پردازنده های Embedded(توکار)
این گروه برای کاربردهای Real-Time(سیستم بازدهی فوری) طراحی شده است و تمرکز آن بر روی سیستم هایی است که نیازمند رفتار های Real-Time می باشد، با قابلیت اجرای سیستم عامل های RTOS(QNX,..) و نرم افزار های توسعه داده شده توسط کاربر.
خانواده های سری Embedded :
- سری (Cortex-M (M:Microcontroller:
بر پایه میکروکنترهای ارزان قیمت و جهت کاربردهای تک منظوره می باشد.
کاربرد این سری در سنسورهای هوشمند، Mixed signal devices و ... می باشد.
- سری (Cortex-R (R:Real-Time:
این سری یک نمونه استثنائی برای سیستم های Real-Time با راندمان بسیار بالا می باشد.
کابرد این سری در سنسور کنترلرهای شبکه های بی سیم و باسیم ، دستگاه های ذخیره سازی اطلاعات و ... می باشد.
گروه پردازنده های کاربردی(Application processor)
سری پردازنده های با راندمان بسیار بالا برای اجرای سیستم عامل های با رابط گرافیکی بالا، که این پردازنده ها می توانند یک هسته ای یا چند هسته ای باشند و با فرکانس کاری بالای 2Ghz کار کنند، همچنین می توانند دارای واحد اختیاری پردازنده چند رسانه (NEON(DSP باشند. به عنوان مثال سیستم عامل های پیچیده ای همچون (Linux ,Android / Chrome ,Microsoft Windows (CE/Embedded یا رابط کابری پیچیده قابل اجرا می باشد.
خانواده سری (Cortex-A(A:Application :
هدف عمده آن اجرای سیستم عامل های پیچیده یا رابط گرافیکی پیچیده می باشد. کابرد این سری پردازنده ها در گوشی های هوشمند، تلوزیون های دیجیتال و ... می باشد.
- Smartphones
- Feature Phones
- Smartbooks* / Netbooks / eReaders
- Advanced Personal Media Players
- Digital Television
- محدوده وسیعی از دستگاه کاربردی
گروه پردازنده های خاص امنیتی (Secure-Core)
این گروه برای هدف های خاص امنیتی و مرتبط طراحی شده است. به عنوان مثال کاربرد پردازنده های Secure-Core در:
- SIMs سیم کارت های موبایل
- Smart Cards
- Advanced Payment Systems
- Electronic Passports
- Electronic Ticketing and Transportation
نگارش های(Version) پردازنده:
هر خانواده ARM تحت یک یا چند نگارش مختلف پردازنده هایی ارائه می دهد، که نمودار کلی آن بصورت زیر می باشد.

میزان فروش پردازنده های مبتنی بر ARM:

جهت اطلاعات بیشتر به آدرس زیر مراجعه کنید:
http://www.arm.com/products/processors/index.php