آرم در برابر x86؛ هرآنچه باید درباره این دو معماری پردازنده بدانید
آرم در برابر x86؛ هرآنچه باید درباره این دو معماری پردازنده بدانید
سیستم عامل اندروید را میتوان روی سه نوع معماری پردازنده مختلف به اجرا درآورد: معماریهای آرم، اینتل و MIPS. بعد از اینکه اینتل از تولید پردازندههای موبایل خود صرف نظر کرد، آرم تبدیل به سازنده اصلیترین معماری در جهان موبایل شد و از سوی دیگر، موبایلهای مجهز به پردازندههای MIPS هم برای حداقل چند سال در بازار مشاهده نشدهاند. آرم معماری پردازنده مورد استفاده از سوی تمام اسمارتفونهای مدرن در هر دو اکوسیستم اندروید و اپل را تامین میکند.
پردازندههای آرم ضمنا دارند راه خود را به بازار پیسی هم باز میکنند و اکنون شاهد پلتفرم Windows on Arm و همینطور پردازنده شخصیسازی شده M1 اپل روی دیوایسهای مک هستیم. درحالی که شعلههای نبرد اینتل و آرم قرار است بزودی افروخته شود، بیایید به مرور هر آنچیزی بپردازیم که باید راجع به رقابت میان آرم و X86 بدانیم.
معماری پردازنده چیست؟
CPU یا «واحد پردازش مرکزی» یا «پردازنده»، اساسا نقش مغز دیوایس شما را ایفا میکند، اما دقیقا نمیتوان آن را هوشمند نامید. یک پردازنده تنها زمانی به کار میافتد که دستورالعملهایی بسیار واضح و مشخص دریافت کند که به آنها مجموعه دستورالعمل گفته میشود. مجموعه دستورالعمل به پردازنده میگوید که داده را میان رجیسترها و حافظهها جابهجا کند یا با استفاده از یک واحد خاص، به محاسبه بپردازد. بلوکهای سختافزاری منحصر به فرد پردازنده نیازمند دستورالعملهای گوناگون هستند. هرچه پردازنده قدرتمندتر و پیچیدهتری در اختیار داشته باشیم، مقیاس دستورالعملها هم بالاتر میرود. دستورالعملهای مطلوب ضمنا میتوانند بر طراحی سختافزار هم تاثیر بگذارند که در ادامه به آن خواهیم پرداخت.
اپلیکیشنهایی که روی موبایل شما به اجرا در میآیند، متکی بر دستورالعملهای پردازنده نیستند: در جهان اپلیکیشنهای عظیمالجثه و کراس پلتفرم امروزی که روی انبوهی از چیپهای مختلف به اجرا در میآیند، چنین رویکردی دیوانگی محض خواهد بود. اپلیکیشنها در عوض با استفاده از زبانهای برنامهنویسی سطح بالاتر (مانند جاوا یا سی پلاس پلاس) نوشته شدهاند و مجموعه دستورالعملهای خاصی دارند که میتوانند روی آرم یا x86 یا سایر پردازندهها اجرا شوند. این دستورالعملها خود به ریزکدهای بیشتری درون پردازنده تقسیم میشوند و اجرای آنها نیازمند فضای سیلیکونی و انرژی است.
اگر به دنبال کممصرفترین پردازنده ممکن از لحاظ مصرف انرژی باشید، هرچه مجموعه دستورالعملها را سادهتر نگه دارید، راحتتر به این هدف دست خواهید یافت
اگر به دنبال کممصرفترین پردازنده ممکن از لحاظ مصرف انرژی باشید، هرچه مجموعه دستورالعملها را سادهتر نگه دارید، راحتتر به این هدف دست خواهید یافت. به همین ترتیب، اگر حاضر به مصرف انرژی بیشتر باشید، میتوانید به سطوح پرفورمنس بالاتر و سختافزارهای پیچیدهتر دست پیدا کنید. این اصلیترین و بنیادینترین تفاوت رویکردهایی است که آرم و اینتل در قبال طراحی پردازندههای خود در پیش میگیرند.
آرم پردازندههای مبتنی بر RISC (پردازش مجموعه دستورالعمل کاهشیافته) میسازد و اینتل به سراغ CISC (پردازش مجموعه دستورالعملهای پیچیده) رفته است. دستورالعملهای پردازنده شکلی نسبتا اتمی دارند و ارتباط تنگاتنگی میان شمار دستورالعملها و عملیاتهای خرد به چشم میخورد. CISC از طرف دیگر دستورالعملهای بسیار بیشتری را در خود جای میدهد که بسیاری از آنها در قالب عملیاتهای همزمان و موازی پردازش میشوند. این به پرفورمنسی بهتر منجر خواهد شد، اما دیکد کردن چنین دستورالعملهای پیچیدهتری هم نیازمند مصرف انرژی بالاتر خواهد بود.
این ارتباط میان دستورالعملها و طراحی سختافزار پردازنده همان چیزی است که معماری پردازنده را شکل میدهد. به این طریق، معماریهای پردازنده را میتوان برای اهداف مختلف طراحی کرد. مثلا میتوان تمرکز را روی کمترین میزان مصرف انرژی یا اشغال شدن کمترین فضای سیلیکونی گذاشت. این تفاوت کلیدی میان پردازندههای Arm و x86 است، پردازندههای نوع نخست با مجموعه دستورالعملها و سختافزار مخصوص بهینگی در مصرف انرژی طراحی شدهاند.
معماریهای پردازنده ۶۴ بیتی مدرن
امروز معماریهای ۶۴ بیتی به صورت گسترده روی اسمارتفونها و کامپیوترهای شخصی در دسترس قرار گرفتهاند، اما شرایط همیشه اینطور نبوده است. موبایلها تا پیش از سال ۲۰۱۲ به سراغ معماری ۶۴ بیتی نرفتند و این یعنی حدودا یک دهه دیرتر از کامپیوترهای شخصی به میدان آمدند. به صورت خلاصه اگر بگوییم، پردازش ۶۴ بیتی از رجیسترها و آدرسهای حافظهای آنقدر بزرگ بهره میبرد که برای استفاده از دادههای ۶۴ بیتی کافی است. علاوه بر سختافزار و دستورالعملهای سازگار، شما به سیستم عاملهای ۶۴ بیتی مانند اندروید هم نیاز خواهید داشت.
کهنهکاران صنعت تکنولوژی احتمالا زمانی را به یاد بیاورند که اپل مدتها زودتر از رقبای اندرویدی خود به رونمایی از نخستین پردازنده ۶۴ بیتی پرداخت. گذار به ۶۴ بیت اما استفادههای روزمره از کامپیوتر را دگرگون نکرد. اما این معماری برای اجرای بهینه ریاضیات هنگام استفاده از شمار بالای نقاط شناور ضروری است. رجیسترهای ۶۴ بیتی ضمنا دقت رندرینگ سهبعدی و سرعت رمزنگاری را افزایش میدهند و رسیدگی به حافظههای رم بالاتر از ۴ گیگابایت را آسانتر میکنند.
کهنهکاران صنعت تکنولوژی احتمالا زمانی را به یاد بیاورند که اپل مدتها زودتر از رقبای اندرویدی خود به رونمایی از نخستین پردازنده ۶۴ بیتی پرداخت
کامپیوترهای شخصی به مراتب زودتر از اسمارتفونها به سراغ ۶۴ بیت رفتند، اما نه تا پیش از زمانی که اینتل معماری مدرن x86-64 (که تحت عنوان x64 هم شناخته میشود) را روانه بازار کرد. آرم از معماری ۶۴ بیتی ARMv8 در سال ۲۰۱۱ پرده برداشت. به جای اینکه مجموعه دستورالعملهای ۳۲ بیتی افزایش یابند، آرم به شکلی تمیز به پیادهسازی ۶۴ بیت پرداخت. آرم برای دستیابی به هدف خود از دو وضعیت اجرا درون پردازنده بهره گرفت: AArch32 و AArch64. همانطور که از نام اینها پیداست، یکی برای اجرای کدهای ۳۲ بیتی و دیگری برای اجرای کدهای ۵۴ بیتی استفاده میشود.
زیبایی طراحی آرم اینست که پردازنده میتواند به شکلی فوری و بیوقفه میان دو حالت سوییچ کند. این یعنی دیکدر دستورالعملهای ۶۴ بیتی از یک طراحی جدید بهرهمند شده که نیازی به سازگاری با عصر ۳۲ بیتی ندارد. در عوض تمام پردازنده به گونهای طراحی شده که با تکنولوژی پیشین سازگار باشد. البته آرم اکنون اعلام کرده که پردازندههای ARMv9 Cortex-A در آینده صرفا از ۶۴ بیت پشتیبانی خواهند کرد و پشتیبانی از اپلیکیشنها و سیستم عاملهای ۳۲ بیتی تا سال ۲۰۲۳ میلادی به پایان خواهد رسید.
پردازش ناهمگن آرم، پیروز دنیای موبایل
تفاوتهای میان معماری که بالاتر به آنها اشاره کردیم، تا حد زیادی موفقیتها و چالشهای دو کمپانی غول سازنده چیپ را توضیح میدهند. رویکرد کممصرف آرم کاملا برای توان طراحی گرمایی (TDP) ۳.۵ واتی در موبایلهای هوشمند مناسب است و در عین حال پرفورمنس را میتوان تا سطحی بالا برد که با چیپهای لپتاپ اینتل برابری کند. از سوی دیگر، توان طراحی گرمایی رایج ۱۰۰ واتی در پردازندههای Core i7 و Core i9 و همینطور چیپهای رقیب AMD، دستاوردهای بزرگی در کامپیوترهای دسکتاپ و سرورها دارند ولی هیچوقت امکان پایین آوردن مقیاس آنها تا زیر ۵ وات مهیا نبوده است.
اینتل از سال ۲۰۱۴ تاکنون سعی داشته به سمت لیتوگرافی کوچکتر از ۱۴ نانومتر حرکت کند، اما برای سالیان سال ناکام بوده
البته که نباید نقشی که پروسههای تولید سیلیکون طی دهه اخیر در بهبود بهینگی مصرف انرژی ایفا کردهاند را از یاد ببریم. اگر بخواهیم خیلی کلی بگوییم، ترانزیستورهای کوچکتر پردازنده، انرژی کمتری مصرف میکنند. اینتل از سال ۲۰۱۴ تاکنون سعی داشته به سمت لیتوگرافی کوچکتر از ۱۴ نانومتر حرکت کند، اما برای سالیان سال ناکام بوده و تازه در سال جاری میلادی شاهد عرضه چیپهای ۱۰ نانومتری این شرکت خواهیم بود. در همین حین، چیپستهای موبایل از ۲۰ نانومتر به طراحیهای ۱۴ و ۱۰ و ۷ نانومتری رسیدهاند و امسال موبایلهای معدودی با طراحی ۵ نانومتری هم میتوان یافت. این دستاورد خیلی ساده ناشی از رقابت میان دو کمپانی سامسونگ و TSMC بوده است. از سوی دیگر، AMD هم توانست با پردازندههای ۷ نانومتری رایزن، اختلافی فراوان میان خود و رقبای x86-64 بیندازد.
منحصر به فردترین قابلیتی که در معماری آرم نقشی اساسی در پایین نگه داشتن توان طراحی گرمایی در اپلیکیشنهای موبایل ایفا کرده، پردازش ناهمگن است. ایده پشت این تکنولوژی بسیار ساده است: معماریای بساز که به قطعات مختلف پردازنده (از منظر پرفورمنس و انرژی) اجازه میدهد با یکدیگر کار کنند تا به بهینگی هرچه بیشتر دست یابند.
نخستین تلاش آرم در این حوزه به معماری big.LITTLE در سال ۲۰۱۱ برمیگردد و زمانی که هستههای بزرگ Cortex-A15 و هستههای کوچک Cortex-A7 از راه رسیدند. ایده استفاده از هستههای بزرگ و نامنظم برای اپلیکیشنهای سنگین و استفاده از هستههای بهینهتر برای وظایف پسزمینه، چیزی است که کاربران امروزی موبایلهای هوشمند آن را دست کم میگیرند. اما آرم چندین تلاش ناموفق داشت تا توانست این فرمول معرکه را صیقل دهد. آرم این ایده را با DynamIQ و معماری ARMAv8.2 در سال ۲۰۱۷ پیش برد و به پردازندههای مختلف اجازه داد درون شاخهای مشترک نشسته و منابع حافظه را با یکدیگر به اشتراک بگذارند تا به پردازشی به مراتب بهینهتر دست یابند. DynamIQ ضمنا طراحی ۶+۲ پردازنده را امکانپذیر کرد که امروز به وفور در چیپهای میانرده موبایل یافت میشود.
چیپهای Atom اینتل که از پردازش ناهمگن بیبهره ماندهاند، نتوانستهاند به بالانس آرم میان پرفورمنس و بهینگی دست پیدا کنند. تا سال ۲۰۲۰ طول کشید تا اینتل توانست با پروژههای Embedded Milti-Die Interconnect Bridge (به اختصار EMIB) و Hybrid Technology در طراحی پردازندههای ۱۰ نانومتری Lakefield به چنین بالانسی دست یابد. لیکفیلد هسته واحد و پرفورمنس بالای Sunny Cove را در کنار چهار هسته بهینهتر Tremont قرار میدهد و از سوی دیگر شاهد گرافیک و قابلیتهای اتصالی هستیم. اما حتی این پکیج هم با هدف تعبیه درون لپتاپهایی با توان طراحی گرمایی ۷ وات ساخته شده که همچنان رقمی بالا برای موبایلهای هوشمند به حساب میآید.
تا به امروز، بخش اعظمی از نبرد میان Arm و x86 در بازار لپتاپهایی که توان طراحی گرمایی زیر ۱۰ وات دارند، دنبال شده است، اینتل دائما به کاهش مقیاس معماری خود میپردازد و آرم به افزایش مقیاس معماری خود. گذار اپل به پردازندههای شخصیسازی شده آرم برای دیوایسهای مک، اصلیترین مثالی است که پرفورمنس در حال رشد معماری آرم را نشان میدهد. این موفقیت از یک سو به خاطر پردازش ناهمگن خود آرم بوده و از سوی دیگر به خاطر بهینهسازیهایی که اپل شخصا به وجود میآورد.
مجموعه دستورالعملها و هستههای شخصیسازی شده آرم
یک وجه تمایز مهم دیگر میان اینتل و آرم اینست که اینتل از ابتدا تا انتها پروسه تولید چیپهایش را کنترل کرده و خود مستقیما به فروش آنها میپردازد. آرم خیلی ساده لایسنس طراحیهایش را میفروشد. اینتل طراحی معماری، طراحی پردازنده و حتی تولید را به صورت کاملا خانگی پیش میبرد. آرم اما انبوهی از محصولات مختلف را به شرکایی نظیر اپل، سامسونگ و کوالکام ارائه میکند. این محصولات میتوانند از طراحیهای هسته پردازنده مانند Cortex-A78 و A710 تا همکاری بر سر طراحی در برنامه Arm CXC متغیر باشند و لایسنسهای معماری شخصیسازی به کمپانیهایی نظیر اپل و سامسونگ اجازه میدهند که به ساخت هستههای پردازنده شخصیسازی شده بپردازند و حتی تغییراتی در مجموعه دستورالعملها به وجود آورند.
ساخت پردازندههای شخصیسازی شده پروسهای هزینهبر و پیچیده است، اما اگر به درستی انجام شود به چیپهایی مشخصا بسیار قدرتمند منتهی میگردد. اپل تا به امروز بارها نشان داده که چنین سختافزارها و دستورالعملهایی میتوانند پرفورمنس آرم را به x84-64 نزدیکتر کنند یا حتی پا را فراتر بگذارند. البته هستههای Mongoose سامسونگ در این بین موفقیت کمتری داشتند و به مرور حذف شدند.
ساخت پردازندههای شخصیسازی شده پروسهای هزینهبر و پیچیده است، اما اگر به درستی انجام شود به چیپهایی مشخصا بسیار قدرتمند منتهی میگردد
اپل قصد دارد در گذر زمان تمام پردازندههای اینتل را از محصولات مک خود حذف کرده و به استفاده از سیلیکون مبتنی بر تکنولوژی آرم بپردازد. اپل M1 نخستین چیپ حاصل از این همکاری بود که به تازهترین مکبوک ایر، مکبوک پرو و مک مینی قوت میرساند. M1 همراه با بهبودهای قابل توجه در پرفورمنس از راه رسیده و نشان میدهد هستههای پرفورمنس بالای آرم میتوانند در سناریوهای نیازمند به پردازش بیشتر، x86-64 را به چالش بکشند. اما یک چیز را یادتان بماند، محصول اپل را داریم با پردازندههای کلاس لپتاپ و نه پردازندههای کلاس دسکتاپ مقایسه میکنیم.
معماری x86-64 مورد استفاده از سوی اینتل و AMD همچنان از نظر قدرت پردازشی خالص در فضای سختافزارهای مخصوص مصرفکنندگان دست بالا را دارند. اما آرم حالا رویکردی بسیار رقابتی در بازار محصولاتی که نیازمند پرفورمنس بالا و بهینگی فراوان در مصرف انرژی دارند، در پیش گرفته که بازار سرور را هم شامل میشود. درحالی که این مقاله نوشته میشود، قدرتمندترین ابرکامپیوتر جهان برای نخستین بار با هستههای آرم به وظایف خود رسیدگی میکند: چیپست A64FX. این ابرکامپیوتر را شرکت فوجیتسو طراحی کرده که در نوع خود نخستین نمونه مبتنی بر معماری Armv8-A SVE به حساب میآید.
سازگاری نرمافزاری
همانطور که پیشتر اشاره کردیم، اپلیکیشنها و نرمافزارها باید برای معماری پردازندهای که روی آن به اجرا در میآیند، تدوین شوند. پیوند تاریخی میان پردازنده و اکوسیستمها (مانند اندروید آرم و ویندوز روی x86) به این معنا بوده که سازگاری نرمافزاری هیچوقت به دغدغهای بزرگ تبدیل نشده، زیر اپلیکیشنها نیازمند اجرا شدن روی پلتفرمها و معماریهای مختلف نبودهاند. با این همه، با افزایش شمار اپلیکیشنهای کراس پلتفرم و سیستمهای عاملی که روی معماریهای پردازنده مختلف به اجرا در میآیند، چشمانداز سازگاری نرمافزاری دگرگون شده است.
تدوین بومی نرمافزار حالا یکی از گزینههایی است که در اختیار توسعهدهندگانی که حاضر به سرمایهگذاری روی چنین کاری هستند، قرار گرفته
مکهای مبتنی بر آرم، سیستم عامل کروم گوگل و ویندوز مایکروسافت روی آرم همگی مثالهایی مدرن از نیاز به اجرای نرمافزار روی هر دو معماری Arm و x86-64 هستند. تدوین بومی نرمافزار حالا یکی از گزینههایی است که در اختیار توسعهدهندگانی که حاضر به سرمایهگذاری روی چنین کاری هستند، قرار گرفته. برای پر کردن حفرهها، این پلتفرمها ضمنا بر شبیهسازی کد هم اتکا کردهاند. به عبارت دیگر، میتوان به ترجمه کدهای تدوین شده برای یک معماری پردازنده پرداخت تا روی یک معماری دیگر به اجرا درآیند. در قیاس با اپلیکیشنهایی که بومی تدوین شده باشند، این رویکردی کمتر بهینه است که پرفورمنس را کاهش میدهد، اما شبیهسازی باکیفیت اکنون امکانپذیر است تا از اجرا شدن اپلیکیشنها اطمینان حاصل شود.
بعد از سالها توسعه، شبیهساز ویندوز روی آرم حالا در وضعیتی خوب برای اجرای اکثر اپلیکیشنها قرار دارد. اپلیکیشنهای اندرویدی هم در اکثریت مواقع به شکل قابل قبول روی کرومبوکها به اجرا در میآیند. اپل هم ابزار ترجمه کد مخصوص به خود را توسعه داده که Rosetta 2 نام دارد و از اپلیکیشنهای قدیمی مک پشتیبانی میکند. اما هر سه از مشکلات پرفورمنس نسبی در قیاس با اپلیکیشنهایی که بومی تدوین شدهاند، رنج میبرند.
سخن نهایی
طی یک دهه رقابت میان Arm و x86، آرم اصلیترین انتخاب برای دیوایسهای کممصرف مانند موبایلهای هوشمند بوده است. این معماری حالا دارد از لپتاپها و دیگر دیوایسهایی که نیاز به مصرف انرژی بهینه دارند، سر در میآورد. علیرغم باختن در دنیای موبایلها، محصولات کممصرف اینتل هم طی سالهای اخیر بهبود یافتهاند و ایدههای هیبریدی مانند Lakefield و Alder Lake حالا شباهت بیشتری به پردازندههای سنتی موجود در موبایلهای هوشمند دارند.
با این وجود، آرم و x86 کماکان از نقطه نظر مهندسی کاملا با یکدیگر تفاوت دارند و نقاط ضعف و قوت خاص خود را به نمایش میکشند. اما همینطور که اکوسیستمها شروع به پشتیبانی از هر دو معماری میکنند، تفاوت میان این دو به چشم مصرفکنندگان کمرنگتر خواهد شد. اگرچه اکنون شاهد عملکرد نزدیکتر Arm و x86 هستیم، اما آرم به طور یقین تا آینده قابل پیشبینی به عنوان معماری منتخب صنعت موبایل به کار خود ادامه میدهد. از سوی دیگر، این معماری در دنیای پردازش و بهینگی کلاس لپتاپ نیز بسیار نویدبخش به نظر میرسد.