خانه / معماری نرم‌افزار / معماری ARM چیست؟

معماری ARM چیست؟

معماری ARM چیست؟

نویسنده:

انتشار:

به‌روزرسانی:

تعداد نظرات: 0

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

ARM چیست؟

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

معماری آرم

پردازنده‌های ARM به‌دلیل مصرف پایین انرژی و پیچیدگی کمتر مدار‌های خود شناخته می‌شوند. این پردازنده‌ها قابلیت استفاده در طراحی‌های متنوعی مثل دستگاه‌های ۳۲ بیتی، ۶۴ بیتی و سیستم‌های تعبیه‌شده (Embedded Systems) را دارند و می‌توانند براساس نیاز کاربران ارتقا پیدا کنند. تعادل بی‌نظیر بین قدرت پردازشی و بهره‌وری انرژی در این پردازنده‌ها، آن‌ها را به انتخاب اول محاسبات دستگاه‌های موبایلی تبدیل کرده است. به‌طوری‌که عمر‌ طولانی باتری بدون افت عملکرد را می‌توانید به‌راحتی با این پردازنده‌ها تجربه کنید.

ویژگی‌های معماری ARM

این نوع معماری به‌دلیل داشتن ویژگی‌های خاص و کاربردی خود، سالیان زیادی‌ است که در دستگاه‌های کوچک مثل موبایل و ساعت‌ هوشمند استفاده می‌شود. این ویژگی‌ها آنقدر جذاب هستند که در سالیان اخیر توجه شرکت‌های تولیدکننده دستگاه‌های بزرگ‌تر مثل لپ‌تاپ را هم به خود جلب کرد‌ه‌اند. در ادامه به بررسی ویژگی‌های معماری به کار رفته در پردازنده‌های ARM می‌پردازیم.

ویژگی‌های ARM

۱- سیستم‌های چند پردازشی (Multiprocessing Systems)

پردازنده‌های ARM برای استفاده در سیستم‌هایی با پردازش چندگانه طراحی شده‌اند، جایی که بیش از یک پردازنده برای پردازش اطلاعات به کار گرفته می‌شود. اولین پردازنده ARM که این ویژگی را داشت با نام ARMv6K معرفی شد که توانایی پشتیبانی از ۴ پردازنده به‌علاوه سخت‌افزار‌های مرتبط را برایتان فراهم می‌کرد.

۲- حافظه TCM (Tightly Coupled Memory)

حافظه‌های درون پردازنده‌های ARM از نوع tightly Coupled هستند که نوعی حافظه با دسترسی سریع و با تاخیر بسیار کم (Latency پایین) هستند. این حافظه با کم‌ترین تاخیر ممکن عمل می‌کند و پردازنده می‌تواند بدون نگرانی از عدم پیش‌بینی‌پذیری زمان دسترسی (که ویژگی حافظه کش است) از آن استفاده کند.

۳- مدیریت حافظه (Memory Management)

پردازنده‌ ARM دارای بخش مدیریت حافظه است که شامل دو بخش مدیریت حافظه (MMU) و حفاظت حافظه (MPU) می‌شود. این سیستم‌های مدیریتی نقش مهمی در بهینه‌سازی و مدیریت کارآمد حافظه دارند.

۴- فناوری Thumb-2

Thumb-2 یک مجموعه دستور‌العمل پیشرفته‌ است که یک نسخه توسعه‌یافته از Thumb محسوب می‌شود. در این مجموعه، دستور‌های ۳۲ بیتی در کنار دستور‌های ۱۶ بیتی به کار گرفته شده‌اند و تقریبا تمامی قابلیت‌های مجموعه‌ دستور‌العمل‌های ARM را پوشش می‌دهد.

۵- زمان اجرای یک سیکل (One-Cycle Execution Time)

بیشتر دستورات در پردازنده‌های ARM تنها در یک چرخه ساعت (Clock Cycle) اجرا می‌شوند. این ویژگی، زمان اجرای برنامه‌ها را به حداقل می‌رساند و امکان واکنش سریع‌تر پردازنده‌ را فراهم می‌کند. برای مثال، در برنامه‌های بلادرنگ (Real-Time)، اجرای تک‌چرخه‌ای اهمیت زیادی دارد؛ چون تاخیر کم برای عملکرد نرم‌افزار‌ بسیار مهم است.

۶- پایپ‌لاینینگ (Pipelining)

پردازش دستورات به‌صورت موازی با استفاده از تکنیک پایپ‌لاین انجام می‌شود. این موضوع به این معنا است که دستورات به‌طور همزمان اما در مراحل مختلف پردازش می‌شوند. این ویژگی به افزایش بازدهی پردازش و کاهش تاخیر کلی کمک زیادی می‌کند.

۷- تعداد زیاد ریجستر‌ها (A Large Number of Registers)

پردازنده‌های ARM ریجستر‌های زیادی دارند که نیاز به تعامل زیاد با حافظه را کاهش می‌دهند. ریجستر‌ها، داده‌ها و آدرس‌ها را ذخیره کرده و به‌‌عنوان یک حافظه محلی برای عملیات‌‌های مختلف عمل می‌کنند.

۸- حالت‌های اجرایی ۳۲ و ۶۴ بیتی

پردازنده‌های ARM از هر دو حالت اجرایی ۳۲ بیتی و ۶۴ بیتی پشتیبانی می‌کند. این قابلیت به توسعه‌دهندگان اجازه می‌دهد که برنامه‌های بهینه برای سیستم‌های قدیمی‌تر ۳۲ بیتی و سیستم‌های مدرن‌تر ۶۴ بیتی بسازند. حالت ۶۴ بیتی برای پردازش‌های سخت‌تر مثل بازی‌ها یا برنامه‌های علمی سنگین، عملکرد بهتری ارائه می‌دهد.

تفاوت معماری x86 و ARM چیست؟

معماری x86 هم مثل ARM، یک معماری خاص بر پایه طراحی Complex Instruction Set Computing (CISC) برای پردازنده‌هاست که توسط شرکت اینتل توسعه‌ یافته و بعد‌ها توسط شرکت‌های دیگر مثل AMD گسترش داده‌ شده است.

این دو معماری تفاوت‌های خیلی زیادی از نظر ساختار دارند. برای مثال معماری ARM برای مصرف انرژی کم و سرعت بالا طراحی شده است و در دستگاه‌های قابل حمل مثل گوشی‌های هوشمند و تبلت‌ها کاربرد دارد. در مقابل، معماری x86 برای اجرای عملکرد‌های پیچیده‌تر و پایداری بیشتر مناسب بوده و معمولا در لپ‌تاپ‌ها و سرور‌ها استفاده می‌شود. در ادامه مقایسه این دو معماری را در جدول زیر می‌بینیم:

ویژگی ARM x86
نوع معماری RISC (Reduced Instruction Set Computing) CISC (Complex Instruction Set Computing)
روش‌ اجرای دستور‌العمل اجرای یک دستور‌العمل در هر چرخه ساعت اجرای دستور‌العمل‌های پیچیده به صورت همزمان در چند چرخه ساعت
بهینه‌سازی عملکرد از طریق رویکرد مبتنی بر نرم‌افزار از طریق رویکرد مبتنی بر سخت‌افزار
نیاز به رجیستر و حافظه نیازمند رجستر‌های کمتر اما حافظه بیشتر نیاز به حافظه کمتر اما رجستر‌های بیشتر
سرعت اجرا
روش پردازش دستورات پیچیده تبدیل دستور‌های پیچیده به ساده و اجرای جداگانه آن‌ها اجرای دستور‌های پیچیده به صورت یکجا
نیاز به حافظه اضافی استفاده از حافظه موجود و نیاز کمتر به حافظه اضافی نیاز به حافظه اضافی برای محاسبات
مورد استفاده بیشتر در دستگاه‌های همراه مثل موبایل و ساعت هوشمند بیشتر در سرور‌ها، کامپیوتر‌های خانگی و لپ‌تاپ‌ها

 

مزایا و معایب معماری ARM

پردازنده‌های مبتنی بر معماری ARM با وجود مزایای قابل توجه، دارای محدودیت‌هایی هستند. این محدودیت‌ها، شرکت‌های تولیدکننده لپ‌تاپ را وادار می‌کند تا با دقت بیشتری این معماری را بررسی کرده و سپس از آن استفاده کنند. در ادامه مزایا و معایب معماری ARM را با هم بررسی می‌کنیم.

مزایا:

مزایای ARM

  • مصرف انرژی پایین و سرعت بالا: پردازنده‌های ARM تنها یک دستور را در هر لحظه پردازش می‌کنند که این موضوع سرعت پردازش را افزایش داده و مصرف انرژی را به کم‌ترین میزان ممکن می‌رساند.
  • پشتیبانی از سیستم‌های چند برنامه‌ای (Multiprogramming Systems): این پردازنده‌ها قابلیت استفاده در سیستم‌هایی با چند پردازنده را دارند؛ جایی که چندین پردازنده به‌صورت همزمان برای پردازش اطلاعات استفاده می‌شوند.
  • هزینه پایین: پردازنده‌های ARM به‌دلیل قیمت پایین‌تر نسبت به سایر پردازنده‌ها، به گزینه‌ای محبوب برای استفاده در دستگاه‌هایی مثل تلفن‌های همراه تبدیل شده‌اند.
  • مقیاس‌پذیری (Scalability): این پردازنده‌ها طوری طراحی شده‌اند که قابلیت استفاده در طیف گسترده‌ای از دستگاه‌ها، از تلفن‌های همراه گرفته تا تجهیزات هوشمند را دارند.

معایب:

معایب ARM

  • عدم سازگاری با معماری x86: پردازنده‌های ARM به‌خوبی با معماری x86 سازگار نیستند که باعث می‌شود امکان استفاده از آن‌ها در سیستم‌عامل‌هایی مثل ویندوز محدود باشد.
  • عملکرد محدود در پردازش‌های سنگین: این پردازنده‌ها برای کاربرد‌هایی که نیاز به عملکرد بسیار بالا دارند، مناسب نیستند. این محدودیت باعث می‌شود نتوانند در برخی از برنامه‌های پیچیده استفاده شوند.
  • پیچیدگی در برنامه‌نویسی: اجرای برنامه‌ها روی پردازنده‌های ARM به‌دلیل معماری خاص آن‌ها، نیازمند برنامه‌نویسان ماهر است که بتوانند به‌خوبی با این معماری ارتباط برقرار کنند.
  • کاهش کارایی در زمان‌بندی دستورات (Instruction Scheduling): پردازنده‌های ARM در مدیریت زمان‌بندی دستورات کارایی کم‌تری دارند که ممکن است در برخی از کاربرد‌ها مشکل‌ساز شود.

آیا معماری ARM و x86 با یکدیگر سازگار هستند؟

دو معماری ARM و x86 به‌دلیل تفاوت‌های اساسی در طراحی و معماری خود با یکدیگر سازگار نیستند. همان‌طور که قبل تر اشاره کردیم ARM براساس معماری RISC طراحی شده است که هدف آن کاهش تعداد دستورالعمل‌های موجود در پردازنده تا حداقل میزان ممکن برای افزایش کارایی و بهره‌وری است. این معماری بر سادگی و استفاده از دستور‌های کوچک و سریع تاکید می‌کند.

در سمت مقابل، معماری x86 از طراحی CISC استفاده می‌کند که شامل مجموعه‌ای از دستور‌العمل‌های پیچیده‌تر است. این تفاوت باعث می‌شود کدی که برای پردازنده‌های x86 نوشته شده شامل دستورالعمل‌هایی باشد که پردازنده‌های ARM قادر به اجرای آن‌ها نیستند و برعکس.

اگرچه نرم‌افزار‌ها و سیستم‌عامل‌هایی مثل ویندوز وجود دارند که به‌صورت مجزا برای هر دو معماری ARM و x86 طراحی شده‌اند، اما برنامه‌های نوشته‌شده برای یک معماری معمولا به‌صورت مستقیم روی دیگری اجرا نمی‌شود. در برخی موارد، اجرای چنین برنامه‌هایی تنها با استفاده از شبیه‌سازی (Emulation) ممکن است که این فرایند پیچیده بوده و می‌تواند بر روی عملکرد تاثیر منفی بگذارد. در نتیجه، با وجود تلاش‌هایی برای کاهش شکاف میان این دو معماری، ARM و x86 همچنان از نظر فنی ناسازگار و متفاوت هستند.

سخن آخر

در کل معماری ARM به‌دلیل مصرف انرژی کم، اندازه کوچک و کارایی بهینه به یکی از پرکاربرد‌ترین معماری‌ها در دنیای تکنولوژی تبدیل شده است. این معماری، با تمرکز بر ساده‌سازی مجموعه دستور‌ها، برای دستگاه‌های همراه مثل گوشی هوشمند، تبلت‌ها و ساعت‌های هوشمند ایدئال است. بااین‌حال هنوز محدودیت‌هایی مثل ناسازگاری با معماری x86 و عملکرد محدود در محاسبات سنگین، مانع از استفاده گسترده و زیاد آن در مسائل پیشرفته‌تر مثل سرور‌ها و کامپیوتر‌های شخصی شده است.

نظر شما چیست؟ کدام معماری را برای کاربری خود انتخاب می‌کنید؟

منابع

www.geeksforgeeks.org | www.techtarget.com | www.developer.arm.com

www.esper.io | www.developer.arm.com 

 

فرصت‌های شغلی

ایجاد محیطی با ارزش های انسانی، توسعه محصولات مالی کارامد برای میلیون ها کاربر و استفاده از فناوری های به روز از مواردی هستند که در آسا به آن ها می بالیم. اگر هم مسیرمان هستید، رزومه تان را برایمان ارسال کنید.

سوالات متداول

دیدگاه‌ها

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *