معماری ARM
پس از آنکه گوشیهای هوشمند موج جدیدی در دنیای فناوری ایجاد کردند و الگوی استفاده از گجتهای دیجیتال را تغییر دادند، پردازندهها نیز شاهد تغییر و تحولات و پا گرفتن معماری جدیدی بودند. با وجود تسلط اینتل و AMD بر پردازندههای مورد استفاده در پیسی که مبتنی بر معماری x86 هستند، گوشیهای هوشمند توسط پردازندههای مبتنی بر معماری ARM قبضه شدهاند. اهمیت معماری ARM و پردازندههای مبتنی بر این معماری به اندازهای افزایش یافته است که مایکروسافت نیز درصدد همکاری با کوالکام، بزرگترین تولیدکنندهی تراشههای مبتنی بر معماری ARM برای گجتهای موبایل، بهمنظور پشتیبانی از این تراشهها در ویندوز ۱۰ است.
معماری ARM چیست
پردازندههای ARM توسط کمپانی Acorn Computers بر اساس معماری مبتنی بر RISC در دههی ۸۰ میلادی توسعه یافتند. Acorn Computers یک کمپانی بریتانیایی است که در سال ۱۹۷۸ در کمبریج انگلستان آغاز به کار کرد و محصولاتی نیز به بازار فرستاد که از جملهی آن میتوان به کامپیوتر BBC Micro اشاره کرد. در سال ۱۹۹۸ میلادی این کمپانی بریتانیایی تفکیک شد و زیرمجموعههای آن، امروزه بهصورت مستقل به فعالیت میپردازند. یکی از موفقترین زیرمجموعههای آکورن، Advanced RISC Machines نام دارد که بیشتر با عنوان ARM شناخته میشود. ARM در سالهای اخیر بهصورت مستقل فعالیت میکرد، اما کمپانی ژاپنی SoftBank چند ماه پیش با پرداخت بیش از ۳۲ میلیارد دلار، این کمپانی بریتانیایی را تصاحب کرد.
ARM, Ltd یک کمپانی یا به بیان بهتر یک لابراتوار است که متخصصان آن به طراحی پردازنده مشغول هستند. البته عبارت اختصاری ARM دو مفهوم را شامل میشود. در مورد معماری و طراحی پردازندههای ARM، این عبارت مخفف Acorn RICS Machines است، حال آنکه اگر منظور کمپانی توسعهدهندهی این معماری باشد، اختصار ARM کوتاه شدهی عبارت Advances RISC Machines است. ARM به هیچوجه دستی در تولید تراشه ندارد و تنها معماری ARM را طراحی میکند، حال آنکه کمپانیهایی نظیر کوالکام، اپل و سامسونگ با دریافت گواهی استفاده از معماری آرم، تراشههای اختصاصی خود را مبتنی بر این معماری توسعه میدهند. البته این سه کمپانی شاخصترین نامهایی هستند که گواهی معماری آرم را در پردازندههای خود استفاده میکنند و تعداد تولیدکنندگان پردازنده با استفاده از این معماری بالا است. اغلب گجتهای الکترونیکی کوچک که از وجود باتری برای تأمین انرژی استفاده میکنند، از پردازندههای مبتنی بر آرم در واحد پردازشی خود بهره میبرند.
همانطور که اشاره کردیم؛ ARM پردازندههای خود را بر اساس دستورات RISC توسعه میدهد، اما RISC چیست؟ RISC مخفف عبارت Reduced Instruction Set Computing است. برخلاف پردازندههای ARM که از این معماری استفاده میکنند، پردازندههای اینتل و اِی اِم دی که قدرت پردازشی در لپتاپ و پیسی شما را تأمین میکنند، از معماری CISC یا Complex Instruction Set Computing استفاده میکنند. دو معماری RISC و CISC برای استفاده در کاربردهای متفاوت طراحی شدهاند. یک پردازندهی مبتنی بر معماری RISC برای این منظور طراحی شده است تا تعداد دستورات ارسالی به پردازنده از سوی برنامه در حال اجرا کاهش یابد. در واقع مجموعهی دستورات مورد استفاده در معماری RISC بسیار پایینتر است. با توجه به اینکه تعداد دستورات ارسالی در معماری RISC کاهش پیدا کرده، فرکانس پردازشی بالا است و پردازنده میتواند در هر ثانیه دستورات بیشتری در مقایسه با CISC اجرا کند.
زمانی که مجموعه دستورات اجرایی توسط پردازنده کاهش پیدا کند، پیچیدگی پردازنده نیز کاهش مییابد و میتوان مدار تراشه را به شکل سادهتری طراحی کرد. پردازندههای RISC دارای ترانزیستورهای کمتری هستند که همین موضوع منجر به کاهش انرژی مصرفی توسط پردازنده میشود. سادگی طراحی پردازنده در کنار کاهش تعداد ترانزیستورها نتیجهای جز کاهش سایز تراشه ندارد. سایز تراشه به سطح مقطعی اطلاق میشود که روی ویفر سیلیکونی برای ساخت یک پردازنده تخصیص داده میشود. نتیجه کاهش سایز، امکان اضافه کردن کامپوننتهای بیشتر روی پردازنده با اتصالات کمتر است، از اینرو پردازندههای ARM کوچکتر هستند و انرژی کمتری مصرف میکنند.
پردازندههای سریع، کوچک و کممصرف بهترین گزینه برای استفاده در گوشیهای هوشمند هستند. هرچند گوشیهای هوشمند این روزها قدرت پردازشی بالایی دارند، اما در یک گوشی هوشمند هیچگاه بار پردازشی از طریق چند صد تِرِد روی هستههای مختلف اعمال نمیشود. سیستمعامل و اپلیکیشنهای توسعهیافته برای گوشیهای هوشمند نیز بهمنظور کاهش دستورات ارسالی به پردازنده بهینه شدهاند تا بهترین نتیجه در زمان بهکارگیری تراشههای ARM حاصل شود.
البته تمام مواردی که در بالا به آنها اشاره کردیم به این معنی نیست که پردازندههای ARM قدرت پردازشی محدودی دارند. معماری ARM امروزه امکان استفاده از طراحی ۳۲ و ۶۴ بیتی را در اختیار کاربران قرار میدهد. همچنین باید به مجموعهای از قابلیتهای دیگر اشاره کرد که علاوه بر گوشیهای هوشمند، پردازندههای ARM را برای استفاده در کاربردهای دیگری نظیر ابررایانهها مناسب میکند.
نسبت عملکرد به ازای هر وات از انرژی مصرفی در پردازندههای ARM بسیار قابل قبول است. در صورتی که نرمافزار توسعهیافته برای پردازندههای ARM بهینه باشد، این پردازندهها میتوانند عملکرد بهتری در مقایسه با معماری x86 ارائه کنند، از اینرو اهمیت پردازندههای ARM در کاربردهایی نظیر بهکارگیری آنها در سرورها و ابررایانهها بیش از پیش پررنگ میشود.
خروجی پردازشی مورد انتظار از ۲۴ هستهی پردازشی x86 را میتوان از چند صد هستهی پردازشی کممصرف و کوچک مبتنی بر معماری ARM دریافت کرد. هستههای x86 قدرت پردازشی مورد نیاز را تنها از چند هستهی پردازشی و چندین ترد به دست خواهند آورد، حال آنکه در معماری ARM، وظیفه پردازشی روی چندین هستهی پردازشی کممصرف با ظرفیت پایینتر تقسیم میشود. هرچند تعداد هستههای ARM بیشتر است، اما این هستهها در مقایسه با ۲۴ هستهی x86 نیاز به انرژی کمتری دارند. بدین منظور با استفاده از پتانسیل هستههای ARM میتوان قدرت پردازشی را بدون نیاز به بالابردن انرژی مصرفی، افزایش داد و نرمافزاری را که باید اجرا شود، برای معماری آرم بهینه کرد.
در مقابل باید به این نکته اشاره کرد که یک هستهی پردازشی آرم در برابر یک پردازندهی Core i7 اینتل در یک رایانهی مخصوص بازی، حرفی برای گفتن ندارد. همچنین پردازندههای آرم قابلیت چندان خوبی در اجرای نرمافزارهای توسعهیافته برای x86 به نمایش نمیگذارند و باید تغییرات گستردهای در کد توسعهیافته برای افزایش بهینگی انجام داد. پردازندهای چون Core i7، قریب به ۱۲ برابر بیشتر از یک تراشهی آرم انرژی مصرف میکند و به سیستم خنککننده نیاز دارد که همین موضوع استفاده از آن در گوشیهای هوشمند را به امری غیرممکن تبدیل میکند. هر اندازه که نرمافزار توسعهیافته برای پردازندهی ARM بهینه باشد، امکان افزایش هستهها و فرکانس پردازشی برای اجرای وظایف پردازشی سنگینتر، بالاتر میرود.