کمپانی آرم اعلام کرده که از سال ۲۰۲۳ به بعد، تمام هستههای پردازنده جدیدش برای موبایلهای هوشمند صرفا ۶۴ بیتی خواهند بود و شاهد یک حالت مخصوص برای پشتیبانی از ۳۲ بیت هم نیستیم. از زمانی که اپل طی سال ۲۰۱۳ میلادی از پردازنده ۶۴ بیتی A7 درون آیفون ۵ اس استفاده کرد، انبوهی موبایل هوشمند با پردازنده ۶۴ بیتی به دستمان رسیدهاند. در واقع به فاصله کمی از حرکت جدید اپل، پردازندههای ۶۴ بیتی به دنیای اندروید نیز راه یافتند، اما با این نکته مهم که هم کدهای ۳۲ بیتی و هم کدهای ۶۴ بیتی را به اجرا در میآوردند.
بنابراین ما کار را تنها با ۳۲ بیت شروع کردیم، بعد پشتیبانی همزمان از ۳۲ بیت و ۶۴ بیت را شاهد بودیم و حالا با رها کردن ۳۲ بیت، قرار است وارد عصر تنها ۶۴ بیت شویم. این اتفاق چه معنایی برای موبایلهای اندرویدی خواهد داشت؟ در این مقاله به این پرسش مهم پاسخ میدهیم.
روی موبایل هوشمند شما، تمام پیکسلها، تمام دادههای کوچکی که در اینترنت رد و بدل میشوند، تمام فایلهای ذخیره شده در حافظه فلش، تمام اصواتی که به گوش میرسند و تماس لمسهای روی صفحه در واقع اعدادی هستند که مداوما پردازش میشوند. بخش اعظمی از کار پردازشی با واحد پردازش مرکزی (یا همان CPU) انجام میشود و در این بین شاهد کمک قطعات دیگر مانند پردازشگر گرافیکی هم هستیم.
پردازنده این ارقام را به صورت صفر و یکی ذخیره میکند و فضای اختصاصیافته به آنها با واحد بیت اندازهگیری میشود. بیتها هم صفر و یکهای باینتری هستند. ۸ بیت میتواند نمایانگر هر عددی بین صفر تا ۲۵۵ باشد. ۱۶ بیت بازه صفر تا ۶۵۵۳۵ را در بر میگیرد و ۳۲ بیت هم قادر به ذخیرهسازی ارقامی بین ۰ تا ۴۲۹۴۹۶۷۲۹۵ (یا ۴ گیگابایت) خواهد بود.
آرم پشتیبانی از ۶۴ بیت را در ورژن هشتم از معماری مجموعه دستورالعمل خود (به نام Armv8) آغاز کرد و این رویه در Armv9 ادامه یافت. هر دو معماری هم به دلخواه تولیدکنندگان دیوایسها، قادر به پشتیبانی از معماریهای صرفا ۳۲ بیتی پیشین آرم بودند. این یعنی اساسا پردازندههای Cortex-A میتوانند کدهای ۳۲ بیتی و کدهای ۶۴ بیتی را به اجرا درآورده و به صورت آنی میان آنها سوییچ کنند. کاربران هم متوجه هیچ تفاوتی میان کدهای ۳۲ بیتی و ۶۴ بیتی نمیشدند. در واقع نخستین چیپست مبتنی بر Armv8، چیپست اگزینوس ۵۴۳۳ سامسونگ بود که سر از موبایل گلکسی نوت ۴ درآورد. این چیپست چهار هسته Cortex-A57 و چهار هسته Cortex-A53 داشت اما تنها در حالت ۳۲ بیتی مورد استفاده قرار میگیرند.
در گذر زمان همهچیز شکلی پیچیدهتر به خود گرفت. آرم چند هسته سری Cortex-A مبتنی بر Armv8 دارد که تنها کدهای ۳۲ بیتی را به اجرا در میآورند (مانند Cortex-A32) و برخی دیگر هم تنها با کدهای ۶۴ بیتی سازگاری نشان میدهند (مانند Cortex-A34 و Cortex A65). اگر نام این هستههای پردازنده به گوشتان آشنا نیست، به این خاطر است که هیچکدام در هیچیک از پردازندههای موبایلهای هوشمند مورد استفاده قرار نگرفتند.
اکثر پردازندههای Cortex-A، از Cortex-A53 گرفته تا Cortex-A75 از هر دو حالت ۳۲ بیتی و ۶۴ بیتی پشتیبانی میکنند. Cortex-A76 اما شرایط را اندکی دگرگون کرد، از این بابت که از حالت ۳۲ بیتی پشتیبانی میکند، اما تنها درون اپلیکیشنها. این یعنی نیازمند به اجرا درآوردن ورژن ۶۴ بیتی سیستم عامل اندروید هستید، اما همچنان میتوانید اپلیکیشنهای ۳۲ بیتی را نیز اجرا کنید. اگر پردازنده اسنپدراگون ۸۵۵ (یا مدلهای جدیدتر) یا پردازندههای مبتنی بر Kryo 4xx به بعد (مانند اسنپدراگون ۴۸۰، اسنپدراگون ۶۷۵، اسنپدراگون ۷۲۰، اسنپدراگون ۷۳۰، اسنپدراگون ۷۶۵ و اسنپدراگون ۷۸۰ جی) را در اختیار داشته باشید، همین حالا پشتیبانی از سیستم عاملهای ۳۲ بیتی در آنها به پایان رسیده و شما اصلا متوجه آن نشدهاید!
با Cortex-X2 و Cortex-A510، پشتیبانی از اپلیکیشنهای ۳۲ بیتی هم به پایان رسیده و این یعنی هم بابت سیستم عامل ۶۴ بیتی و هم اپلیکیشنهای ۶۴ بیتی را به اجرا درآورید. هسته Cortex-A710 همچنان قادر به پشتیبانی از اپلیکیشنهای ۳۲ بیتی است که یعنی هرگونه اپلیکیشنی که هنوز با کدهای ۳۲ بیتی نوشته شده باشد، راهی جز به اجرا درآمدن روی هستههای A710 ندارد.
کمپانی آرم دو بیانیه مختلف راجع به تصمیم خود در راستای ساخت پردازندههای صرفا ۶۴ بیتی اعلام کرده است. پیش از هر چیز، گفته شده که تا سال ۲۰۲۲ میلادی، تمام هستههای بزرگ (big) را به صورت صرفا ۶۴ بیتی میسازد و چند ماه بعد مجددا اعلام کرد که تمام هستههایش تا سال ۲۰۲۳ میلادی ۶۴ بیتی میشوند. عالی به نظر میرسد. تا اینکه به یادمان آمد Cortex-A510 (که هسته LITTLE است) همین حالا به صورت صرفا ۶۴ بیتی ساخته شده. اما چرا آرم دو ددلاین مختلف ارائه کرد؟ تنها برداشت منطقی از تمام ماجرا این است که در سال ۲۰۲۲ شاهد معرفی یک هسته LITTLE جدید با پشتیبانی از ۳۲ بیت خواهیم بود و از آن پس تمام هستهها ۶۴ بیتی طراحی میشوند.
یک نکته که اشاره به آن ضروری به نظر میرسد اینکه ما داریم راجع به پردازندههای Cortex-A صحبت میکنیم، یعنی پردازندههای موجود در اسمارتفونها، تبلتها، کرومبوکها و دیوایسهایی از این دست. ما راجع به پردازندههای Cortex-M در میان مایکروکنترلرهای آرم حرف نمیزنیم. در واقع Armv8-M (که M مخفف مایکروکنترلر است) صرفا ۳۲ بیتی به حساب میآید.
خبر خوب اینکه اندروید ۶۴ بیتی اساسا یک تکنولوژی بالغ به حساب میآید و هنگامی که پشتیبانی از ورژن ۳۲ بیتی سیستم عامل گوگل پایان یابد، شاهد هیچ غافلگیری بزرگی نخواهیم بود.
نخستین ورژن کاملا سازگار با ۶۴ بیت اندروید، اندروید ۵.۰ لالیپاپ بود. این سیستم عامل در سال ۲۰۱۴ میلادی عرضه شده و پشتیبانی از پردازندههای ۶۴ بیتی اینتل و چیپهای ۶۴ بیتی آرم را با خود به همراه آورد. از ماه آگوست ۲۰۱۹ به بعد، تمام اپلیکیشنهای گوگل پلی نیازمند پشتیبانی از ۶۴ بیت نیز بودهاند. برای کمک به توسعهدهندگان در ساخت اپلیکیشنهای ۶۴ بیتی، تمام موتورهای بازیسازی محبوب هم پشتیبانی از ۶۴ بیت را آغاز کردند: آنریل و Cocos2d در سال ۲۰۱۵ و یونیتی در سال ۲۰۱۸ میلادی. از روز یکم آگوست سال جاری میلادی نیز گوگل پلی میزبان اپلیکیشنهای بدون ورژن ۶۴ بیتی روی دیوایسهای ۶۴ بیتی نخواهد بود: این یعنی که روی این دیوایسها، دیگر قادر به دریافت اپلیکیشنهای مورد نظر از طریق پلی استور نخواهید بود.
گوگل به ارائه ابزارها و انتشار انبوهی از مستندات مختلف پرداخته تا توسعهدهندگان را برای گذار به ۶۴ بیت آماده کند. برای بسیاری از اپلیکیشنها نیاز به ایجاد تغییرات چندان نیست و اپلیکیشنهایی که با جاوا یا Kotlin نوشته شدهاند نیازی به تغییر ندارند. اما اپلیکیشنهایی که با یک موتور بازیسازی یا یک رابط برنامهنویسی شخص ثالث توسعه یافتهاند نیازمند حصول اطمینان از این هستند که کاربران صرفا از آخرین ورژنهای ۶۴ بیتیشان استفاده میکنند.
از آنجایی که دیوایسهای مجهز به اندروید ۶۴ بیتی برای چندین سال در حال سر در آوردن از بازار بودهاند و همینطور با درنظرگیری تلاش گوگل برای حصول اطمینان از دسترسپذیری اپلیکیشنهای ۶۴ بیتی روی پلی استور، گذار نهایی به چیپستها و اپلیکیشنهای صرفا ۶۴ بیتی قرار است به کمدردسرترین شکل ممکن صورت بگیرد.
اپل از زمانی که آیفون ۵ اس به بازار آمده در حال پشتیبانی از سختافزارها و نرمافزارهای ۶۴ بیتی بوده است. در ماه فوریه سال ۲۰۱۵ میلادی، اپل اعلام کرد که تمام اپلیکیشنهای iOS باید از ۶۴ بیت پشتیبانی کنند. سپس در سال ۲۰۱۷ اهالی کوپرتینو اعلام کردند اپلیکیشنهای ۳۲ بیتی روی iOS 11 و ورژنهای بعدی این سیستم عامل کار نخواهند کرد. در همان زمان، اپل به صورت کامل به کار ۳۲ بیت پایان داد و تمام پردازندههای بعد از A11 (که درون آیفون ۸ و آیفون ۱۰ یافت میشود) صرفا ۶۴ بیتی هستند.
ماجرا برای macOS هم همینطور است. سیستم عامل دسکتاپ اپل از زمان عرضه macOS 10.7 Lion سال ۲۰۱۱ به بعد صرفا ۶۴ بیتی بوده. از سال ۲۰۱۸ به بعد، تمام اپلیکیشنهای ثبت شده در مک اپ استور باید از ۶۴ بیت پشتیبانی میکردند و درست مثل iOS، با عرضه macOS 10.15 Catalina طی سال ۲۰۱۹، پشتیبانی از اپلیکیشنهای ۳۲ بیتی کاملا متوقف شد. امروز macOS 11 روی پلتفرم اینتل ۶۴ بیتی و روی پلتفرم آرم صرفا ۶۴ بیتی است. پردازنده M1 هم به صورت صرفا ۶۴ بیتی ساخته شده.
از سال ۲۰۲۳ به بعد تمام پردازندههای Cortex-A شرکت آرم صرفا ۶۴ بیتی خواهند بود. از آنجایی که اندروید به پشتیبانی از ۶۴ بیت میپردازد و در حال حرکت به سمت اپلیکیشنهای صرفا ۶۴ بیتی است، بعید است که تغییرات به شکلی غیر روان و آزاردهنده پیادهسازی شوند. اگر کاربر دیوایسهای اپل باشید نیز سوییچ به ۶۴ بیت مدتها پیش روی iOS و macOS اتفاق افتاده است. به یاد نمیآوریم که در دوران گذار اپل، کسی از چیزی شکایت کرده باشد.
برای دیگر معماریهای پردازنده و دیگر سیستمهای عامل، مانند ویندوز و لینوکس ، پشتیبانی از ۳۲ بیت قرار است برای مدتی بسیار طولانیتر ادامه یابد. از آنجایی که لینوکس میخواهد با همه دوست باشد، احتمالا پشتیبانی از ۳۲ بیت را برای حداقل چند دهه ادامه دهد. اما شرایط برای ویندوز روی پردازندههای x86-64 کمتر واضح است، اما شاید اصلا هیچوقت شاهد گذار تمام و کمال به دنیای صرفا ۶۴ بیتی نباشیم.