# معماری آرم
معماری آرم (به انگلیسی: ARM architecture) نوعی از معماری و ساختار پردازنده‌های رایانه‌ای است که به‌وسیلهٔ شرکت انگلیسی آرم هولدینگز طراحی شده‌است و بیش‌تر برای تلفن‌های هوشمند، تبلت‌ها و دستگاه‌های قابل‌حمل کاربرد دارد. معماری آرم دستورالعمل‌های ۳۲ بیتی و ۶۴ بیتی را پردازش می‌کند و از دههٔ ۱۹۸۰ میلادی تا به امروز در حال توسعه و گسترش است. شرکت آرم هولدینگز خود تولیدکننده پردازنده‌ها نیست و گواهی‌نامهٔ به‌کارگیری از معماری آرم را به تولیدکنندگان نیمه‌هادی می‌فروشد. کمپانی‌ها نیز به راحتی تراشه‌های خود را براساس معماری آرم تولید می‌کنند. از جمله کمپانی‌هایی که پردازنده‌های خود را براساس معماری آرم طراحی می‌کنند می‌توان به اپل در تراشه‌های اختصاصی خود، سامسونگ الکترونیکس در پردازنده‌های اگزینوس، ان‌ویدیا در پردازشگرهای تگرا و کوالکام در پردازنده‌های اسنپ‌دراگون اشاره کرد. معماری آرم به‌گونه‌ای طراحی‌شده که برای هسته اصلی پردازشگر تنها به حدود ۳۵ هزار ترانزیستور نیاز است و این باعث می‌شود که پردازنده بسیار کم‌مصرف شود، کم‌تر داغ کند و نیازی به خنک‌کننده یا فن نداشته باشد برخلاف معماری x86 به‌کار رفته در پردازنده‌های شرکت‌های اینتل و ای‌ام‌دی که نیازمند میلیون‌ها ترانزیستور هستند و همین مسئله باعث افزایش توان مصرفی و داغ شدن آنان می‌شود.

## تاریخچه
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.

## RISC و CISC یا ARM در مقابل x86
RISC که مخفف Reduced instruction Set Computing یا مجموعه دستورها ساده شده‌است در واقع نوعی از طراحی CPU است که پایه و اساس آن، ساده‌سازی دستورها است که منجر به بازده بالا و سرعت بخشیدن به اجرای دستورها می‌شود. پردازنده‌ای که براساس این طراحی ساخته می‌شود را RISC (بخوانید ریسک) می‌نامند. مهم‌ترین و معروفترین معماری که براساس RISC طراحی شده، ARM است. درست نقطه مقابل ریسک، طراحی دیگری با نام CISC وجود دارد که مخفف Complex Instruction Set Computing یا مجموعه دستورها پیچیده‌است که معماری x86 اینتل براساس آن طراحی شده و پردازنده کامپیوترهای رومیزی و لپ‌تاپ‌ها و بسیاری از ابزارهای دیگر از آن بهره می‌برند.
ایده اصلی RISC اولین بار توسط جان کوکی از IBM و در سال ۱۹۷۴ شکل گرفت، نظریه او به این موضوع اشاره داشت که یک کامپیوتر تنها از ۲۰ درصد از دستورها نیاز دارد و ۸۰ درصد دیگر، دستورها غیرضروری هستند. پردازنده‌های ساخته شده براساس این طراحی از دستورها کمی پشتیبانی می‌کنند به این ترتیب به ترانزیستور کمتری نیز نیاز دارند و ساخت آن‌ها نیز کم هزینه است. با کاهش تعداد ترانزیستورها و اجرای دستورها کمتر، پردازنده در زمان کمتری دستورها را پردازش می‌کند. کمی بعد اصطلاح RISC توسط یک استاد دانشگاه کالیفورنیا به نام دیوید پترسون ایجاد شد.
هر دو طراحی RISC و CISC به مراتب در انواع و اقسام ابزارها بکار گرفته می‌شوند، اما مفهوم کلی RISC در واقع سیستمی است که در آن به پردازش دستورها کوچک و به شدت بهینه شده پرداخته می‌شود، درست برخلاف CISC که در آن دستورها پیچیده ارسال می‌شوند. یکی از تفاوت‌های عمده بین RISC و CISC نیز در نحوه دسترسی به حافظه و ذخیره و اجرای اطلاعات بر روی آن است. در ریسک دسترسی به حافظه تنها از طریق دستورالعمل‌های حاصلی قابل انجام است و به عنوان مثال نمی‌توان از بخشی از دستور add به حافظه دسترسی داشت.
علاوه بر ARM شرکت‌های بسیار دیگری از جمله Intel i860, AMD 29k, ARC و غیره از طراحی RISC برای ساخت پردازنده استفاده می‌کنند، اما به لطف گسترش تلفن و تبلت‌ها، معماری ARM به عنوان برجسته‌ترین معماری مبتنی بر RISC شناخته می‌شود.

## سیستم-روی-یک-چیپ‌ها و معماری ARM
چندین نوع مختلف از معماری برای پردازنده‌های ARM وجود دارد که از آن جمله می‌توان به ARM V2 ،ARMv3 Arm v7 و … اشاره کرد. کمپانی‌ها برای استفاده از هر کدام از این طراحی‌ها باید گواهی مربوط به آن را از ARM Holder دریافت کنند. کمپانی‌ها از این معماری در ساخت پردازنده‌های مورد نظر خود بهره برده و در نهایت با یکپارچه‌سازی آن با واحد پردازش گرافیک (GPU)، حافظه رم و قسمت کنترلر باند رادیویی (در تلفن‌های هوشمند) سیستم -روی-یک-چیپ خود را می‌سازند.
سیستم-روی-یک-چیپ (System on a Chip) که آن را به اختصار SoC می‌نامند در واقع یک تراشه است که در آن پردازنده اصلی (CPU)، پردازنده گرافیک (GPU)، حافظه رم، کنترلرهای ورودی و خروجی و بعضاً کنترلر باند رادیویی قرار دارند. پس لازم است بدانید که کل SoC براساس معماری ARM تولید نمی‌شود و تنها بخش CPU آن بر مبنای معماری ARM طراحی و تولید می‌گردد. پس این باور که فلان SoC براساس معماری ARM ساخته شده، اشتباه است و بخش پردازنده اصلی اکثر SoCها براساس یکی از طراح‌های معماری ARM ساخته می‌شوند.
از جمله سیستم-روی-یک-چیپ‌هایی که هسته اصلی آن‌ها براساس معماری ARM طراحی شده‌اند می‌توان به ۳ نسل اول تگرا انویدیا، Quatro شرکت CSRT، نوا شرکت اریکسون، OMAP شرکت تکزاس، Exynos شرکت سامسونگ و Ax شرکت اپل اشاره کرد. این شرکت‌ها از معماری ARM و همچنین معماری یکی از هسته‌های طراحی شده توسط این شرکت بهره برده‌اند.
اما شرکت‌ها می‌توانند گواهی استفاده از معماری ARM را تهیه کرده و سپس بر اساس آن هسته سفارشی مورد نظرشان را طراحی کنند یعنی به جای اینکه هسته CPU را براساس Cortex-A9 یا Cortex-A15 یا دیگر هسته‌های ARM بسازند، خودشان براساس معماری یکی از خانواده‌های ARM، هسته خاص خود را طراحی کنند. به عنوان مثال سیستم-روی-یک-چیپ A6 اپل، X-Gene ,Krait کوالکام، StrongARM شرکت DEC ,XScale شرکت Marvell اینتل یا Project Denver شرکت انویدیا این‌گونه هستند و اگر چه بخش CPU از سیستم-روی-یک-چیپ آن‌ها براساس معماری ARM طراحی شده‌اند، اما طراحی هسته‌ها با آنچه ARM پیشنهاد کرده متفاوت هستند.

## چه سیستم‌عامل‌هایی از ARM پشتیبانی می‌کنند؟
سیستم‌های Acorn: اولین کامپیوتر مبتنی بر معماری ARM، کامپیوتر شخصی Acorn بود که از سیستم‌عاملی به نام Arthur بهره می‌برد. سیستم‌عاملی مبتنی بر RISC OS که از معماری ARM پشتیبانی می‌کرد و Acorn و برخی دیگر از تولیدکنندگان از آن استفاده می‌کردند.
سیستم‌عامل‌های توکار: معماری ARM از طیف وسیعی از سیستم‌عامل‌های توکار مانند Windows CE, Windows RT, Symbian, ChibiOS/RT, FreeRTOS, eCos, Integrity, Nucleus PLUS, MicroC/OS-II, QNX, RTEMS, CoOS, BRTOS, RTXC Quadros, ThreadX, Unison Operating System, uTasker, VxWorks, MQX و OSE پشتیبانی می‌کند.
یونیکس: یونیکس و برخی از سیستم‌عامل‌های مبتنی بر یونیکس مانند: Inferno, Plan 9, QNX و Solaris از ARM پشتیبانی می‌کنند.
لینوکس: بسیاری از توزیع‌های لینوکس از ARM پشتیبانی می‌کنند از آن جمله می‌توان به اندروید و کروم گوگل، Arch Linux، بادا سامسونگ، Debian, Fedora,OpenSuse, Ubuntu و WebOS اشاره کرد.
BSD: برخی از مشتق‌های BSD مانند OpenBSD و iOS و OS X اپل نیز از ARM پشتیبانی می‌کند.
ویندوز: معماری‌های ARMv 5, 6 و ۷ از ویندوز CE که در ابزارهای صنعتی و PDAها استفاده می‌شود، پشتیبانی می‌کند. ویندوز RT و ویندوز فون نیز از معماری ARMv7 پشتیبانی می‌کنند.

## گواهی و هزینه استفاده از معماری ARM
ARM خود تولیدکننده نیمه هادی نیست و در عوض از راه صدور مجوز استفاده از طراحی‌های خود، درآمد کسب می‌کند. گواهی استفاده از معماری ARM شرایط خاص و متنوعی را دارد و در شرایط مختلف هزینه مربوط به استفاده از آن نیز تفاوت می‌کند. ARM به همراه گواهی‌نامه خود اطلاعات جامعی در مورد نحوه یکپارچگی قسمت‌های مختلف با هسته‌ها را ارائه می‌کند تا تولیدکنندگان به راحتی بتوانند از این معماری در سیستم-روی-یک-چیپ‌های خود بهره ببرند.
ARM در سال ۲۰۰۶ و در گزارش سالانه خود اعلام کرد که ۱۶۴٫۱ میلیون دلار از بابت حق امتیاز یا حق اختراع، درآمد داشته که این مبلغ از بابت فروش گواهی استفاده از معماری این شرکت در ۲٫۴۵ میلیارد دستگاه مبتنی بر ARM به‌دست آمده‌است. این یعنی ARM Holding بابت هر گواهی ۰٫۰۶۷ دلار درآمد کسب نموده، اما این رقم میانگین است و براساس نسل‌های مختلف و نوع هسته‌ها متفاوت خواهد بود؛ مثلاً هسته‌های قدیمی ارزان‌تر و معماری جدید گران‌تر است.
اما در سال ۲۰۰۶ این شرکت از بابت گواهی استفاده از طراحی هسته پردازنده، نزدیک به ۱۱۹٫۵ میلیون دلار درآمد به‌دست آورده‌است. در آن سال ۶۵ پردازنده براساس معماری هسته‌های ARM ساخته شده بودند که به این ترتیب بابت هر گواهی پردازنده مبلغ ۱٫۸۴ میلیون دلار درآمد کسب کرده‌است. این عدد نیز به صورت میانگین می‌باشد و براساس نوع و نسل هسته‌ها متفاوت خواهد بود.
در واقع شرکت ARM Holding از معماری ARM دو نوع درآمد دارد یکی بابت استفاده از معماری این شرکت در ابزارهای مختلف که بابت هر تلفن یا تبلت یا هر ابزار دیگری مبلغی به‌دست می‌آورد و دیگری بابت هر پردازنده مبتنی بر معماری هسته‌های ARM نیز یک رقم نسبتاً سنگین حدود ۲ میلیون دلار دریافت می‌کند. در سال ۲۰۰۶ نزدیک به ۶۰ درصد درآمد ARM از بابت حق امتیاز و ۴۰ درصد بابت گواهی ساخت پردازنده براساس معماری ARM بوده‌است.

## آرم چطور تجارت می‌کند؟
روش کار آرم بسیار ساده است و با آنچه در دنیای رایانه شخصی شاهد هستیم، متفاوت می‌باشد. به‌طور کلی آرم سه نوع لایسنس اصلی به مشتریان واگذار می‌کند: POP، پردازنده و معماری.
لایسنس پردازنده اجازهٔ استفادهٔ مایکروپراسسور یا پردازندهٔ گرافیکی طراحی شده توسط آرم است. در این صورت نمی‌توان طراحی را تغییر داد، اما می‌توان از آن به هر شکل ممکن استفاده کرد. به عنوان مثال تراشه‌های اگزینوس اُکتای سامسونگ را در نظر بگیرید، در این تراشه‌ها از ۴ هستهٔ ARM Cortex A7 و ۴ هستهٔ Cortex A15 استفاده شده‌است. این روش استفاده بیان‌گر لایسنس استفاده از پردازنده است.
آرم در مورد کاربرد طرح‌ها در سیلیکون راهنمایی‌هایی می‌کند، اما در نهایت تیم به‌کارگیری فیزیکی پردازنده است که برای رسیدن به بهترین فرکانس در توان مصرفی مورد نظر تصمیم می‌گیرد.
بستهٔ بهینه‌سازی پردازنده یا Processor Optimization Pack یک قدم فراتر از لایسنس استفاده از پردازنده است. اگر مشتری در کاربرد فیزیکی پردازنده ماهر نباشد، آرم با فروش POP به آن‌ها کمک می‌کند یا به عبارت دیگر یک طرح یک پردازندهٔ بهینه را به مشتری می‌فروشد تا پس از تولید در یک کارخانهٔ خاص، حداقل کارایی مشخص شده را دارا باشد.
در مورد هسته‌های Cortex A8 آرم، اپل و سامسونگ به شکل خاصی از آن استفاده کردند که باعث بهینه شدن فرکانس در برابر توان مصرفی شد. این دو کمپانی به مواردی که طراحی و کاربرد Cortex A8 را دشوار می‌کرد، دسترسی داشتند؛ اما بسیاری از دیگر تولیدکنندگان پهنای باند لازم یا بودجهٔ کافی برای انجام بهینه‌سازی‌ها را نداشتند.
POPها برای ترکیبی از پردازنده‌ها، کارخانه‌ها و فرایندهای تولیدی مختلف آماده شده‌است. به عنوان مثال برای تولید پردازندهٔ Cortex A12 در کارخانهٔ TSMC طی فرایند تولید ۲۸ نانومتری HPM یک POP مشخص وجود دارد.
آخرین و کامل‌ترین لایسنس، لایسنس معماری است. در این روش آرم لایسنس یکی از معماری‌ها مثل ARMv7 یا ARMv8 را به مشتری واگذار می‌کند و مشتری می‌تواند به هر شکل دلخواهی از آن استفاده کند.
کوآلکام برای طراحی و تولید هسته‌های Krait و اپل برای طراحی هسته‌های Swift از این لایسنس استفاده کرده‌اند. چنین مایکروپراسسورهایی با معماری استاندارد صنعتی (یا ISA) هسته‌های Cortex A15 سازگاری دارند، اما کاربرد خاصی از معماری استاندارد صنعتی آرم هستند. برای تأیید سازگاری باید طبق دستورالعمل آرم عمل کرده و تست‌ها را یکی پس از دیگری انجام داد. آرم پشتیبانی‌هایی برای طراحان در نظر گرفته ولی تصمیم نهایی، استفاده و بررسی اعتبار طرح‌ها بر عهدهٔ مشتری است.
از نگاه آماری آرم حدود ۱۰۰۰ لایسنس به ۳۲۰ کمپانی مختلف فروخته‌است. از این ۳۲۰ کمپانی تنها ۱۵ مورد لایسنس معماری را در اختیار دارند.

## آرم و اینترنت اشیا
سیستم‌عامل mbed جایگزین نرم‌افزار چند بخش توسعه‌داده شده‌ای خواهد شد که برنامه‌نویسان از آن روی تراشه‌های مبتنی بر معماری ARM استفاده می‌کردند.
شرکای سخت‌افزاری می‌توانند از این سیستم‌عامل تا پایان سال جاری استفاده کنند و ابزارهای مبتنی بر mbed را نیز می‌توان از ابتدای سال ۲۰۱۵ میلادی در بازار مشاهده کرد. کمپانی ARM همچنین mbed Device Server را نیز توسعه خواهد داد که براساس آن توسعه‌دهندگان قادر خواهند بود تا گواهی مورد نیاز برای پشتیبانی از سمت سرور را برای ابزارهای مبتنی بر اینترنت اشیا ایجاد کنند.
همان‌طور که گفتیم، کمپانی‌های مختلفی تلاش‌هایی را در جهت توسعهٔ هرچه بیشتر اینترنت اشیا به انجام رسانده‌اند که البته در این بین جای خالی ابزارهای مبتنی بر این فناوری خالی است. ARM به‌عنوان یکی از بزرگ‌ترین کمپانی‌ها در زمینهٔ طراحی تراشه‌های موبایل برای فعالیت بهتر در این حوزه باید پلتفرمی را ایجاد می‌کرد تا ۷۰٬۰۰۰ توسعه‌دهندهٔ موجود برای mbed را تغذیه کند.