۳۲ بیت با ۶۴ بیت چه تفاوتی میکند؟ آیا استفاده از پردازش ۶۴ بیتی در تلفنهای هوشمند اهمیت دارد؟ در این مقاله به تفضیل به
معرفی پردازش ۶۴ بیتی میپردازیم و تفاوتهای آن را با پلتفرمهای ۳۲ بیتی بررسی میکنیم.
مدتها است که تقریبا تمام پردازندههای کامپیوترهای شخصی و لپتاپها از بستر ۶۴ بیتی پشتیبانی میکنند و بسیاری از نرمافزارهای مطرح دنیا علاوه بر نسخهی سازگار با پردازش ۳۲ بیتی، نسخهی اختصاصی ۶۴ بیتی نیز دارند. سیستمعاملهای مختلف کامپیوترهای شخصی از ویندوز تا لینوکس و مک به خوبی از هر دو حالت پردازش ۳۲ بیتی و ۶۴ بیتی پشتیبانی میکنند. اما پردازش ۶۴ بیتی چه تفاوتی با ۳۲ بیتی میکند و آیا این تفاوت در تلفنهای هوشمند نیز حائز اهمیت است؟اپل با معرفی آيفون ۵s و پردازندهی ۶۴ بیتی A7 نه تنها کاربران بلکه تولیدکنندگان سیستم-روی-یک-چیپ (SoC) همچون کوالکام را متعجب کرد. وقتی همهی پردازندههای موبایل تنها قادر به پردازش ۳۲ بیتی بودند، اپل پردازندهی ۶۴ بیتی A7 را در دل پرچمدار خود جای داد. از آن زمان، موج عظیمی بر پا شد و اظهار نظرهای ضد و نقیضی مطرح شد. برخی پردازندهی ۶۴ بیتی را برای تلفنهای هوشمند بلااستفاده دانستند و آن را یک حقهی تبلیغاتی بر شمردند و بعضی دیگر به ستایش آن پرداختند.
پردازندهی ۶۴ بیتی
در حقیقت استفاده از پردازش ۶۴ بیتی در تلفنهای هوشمند مزایا و معایب خاص خود را دارد. معماری پردازندههای ۶۴ بیتی با ۳۲ بیتی فرق میکند، اما پردازندههای ۶۴ بیتی قادر به اجرای دستورات ۳۲ بیتی نیز هستند. برای اینکه نهایت استفاده را از پردازش ۶۴ بیتی ببرید نه تنها سیستمعامل بلکه نرمافزارها نیز باید با پشتیبانی از این نوع پردازش تولید شوند. یعنی اگر فقط، پردازندهی دستگاه ۶۴ بیتی باشد، نهایت استفاده را از توان پردازشی دستگاه نخواهید برد و باید سختافزار و نرمافزار، هر دو از پردازش ۶۴ بیتی پشتیبانی کنند.
یک پردازندهی ۶۴ بیتی قادر است ۲۶۴ مقدار محاسباتی را ذخیره کرده و در حافظه آدرس دهی کند. برای اینکه درک بهتری در این باره پیدا کنید، این عدد به این معنا است که پردازندهی ۶۴ بیتی قادر است تا بیش از ۴ میلیارد برابر «حافظهی فیزیکی رم» بیشتر را در مقایسه با پردازندههای ۳۲ بیتی، آدرس دهی کند. سیستمهای مبتنی بر پردازندهی ۳۲ بیتی قادر به آدرس دهی حداکثر ۴ گیگابایت (۲ به توان ۳۲) از حافظهی رم هستند، اما پردازندههای ۶۴ بیتی از نظر تئوری میتوانند تا ۱۶.۸ میلیون ترابایت رم (۲ به توان ۶۴) را پشتیبانی کنند! برای اینکه پردازندهی ۶۴ بیتی بتواند درست کار کند سیستمعامل دستگاه نیز باید از پردازش ۶۴ بیتی پشتیبانی کند. مثلا در این آدرس میتوانید محدودیت میزان حافظهی پشتیبانی شده در هر نسخه از ویندوز را مشاهده کنید.
اولین پردازندهی ۶۴ بیتی دنیا در سال ۱۹۶۱ توسط IBM و در سوپر کامپیوتر ۷۰۳۰ Stretch طراحی و استفاده شد. اما تا دههی ۲۰۰۰ از این پردازندهها در کامپیوترهای خانگی استفاده نشد. پردازندههای ۶۴ بیتی با عرضهی ویندوز اکسپی رایج شدند. پس از آن تمام نسخههای ویندوز از پردازش ۶۴ بیتی پشتیبانی کردند. کامپیوترهای که به پردازندهی ۶۴ بیتی مجهز میشوند قادرند نسخهی ۳۲ بیتی از سیستمعاملها و اپلیکیشنها را اجرا کنند، اما برعکس این موضوع صادق نیست. علاوه بر این برای اینکه از تمام توان پردازندهی ۶۴ بیتی دستگاه خود استفاده کنید، باید نسخهی ۶۴ بیتی سیستمعامل و نرمافزارهای مورد نظر خود را داشته باشید.
یکی از مهمترین تفاوتهای بین پردازش ۳۲ بیتی و ۶۴ بیتی در تعداد محاسباتی است که هر کدام در هر ثانیه انجام میدهند. در واقع به بیان ساده، در برخی از شرایط پردازندههای ۶۴ بیتی سریعتر از ۳۲ بیتیها عمل میکنند.
احتمالا شما هم این عبارت را شنیدهاید: «اگر حافظهی رم دستگاه بیشتر از ۴ گیگابایت نباشد، تفاوتی بین پردازندهی ۳۲ بیتی و ۶۴ بیتی نیست» این عبارت همیشه، درست نیست! در این شکی نیست که مهمترین تفاوت بین پردازندههای ۶۴ بیتی با ۳۲ بیتی در پشتیبانی از حافظهی رم بالاتر است. اما تفاوتهای دیگری نیز وجود دارد:
مدیریت حافظه در پردازندههای ۶۴ بیتی بهتر از ۳۲ بیتی است. پردازندههای ۳۲ بیتی قادر نیستند فایلهای حجیم و بزرگتر از ۴ گیگابایت را به سادگی آدرس دهی کنند و تنها بخشی از فایل را به اصطلاح در حافظه «مپ» میکنند.
نرمافزارهای خاص مانند آنهایی که به رمزگذاری یا رمزگشایی محتوا میپردازند میتوانند از آدرس دهی بهتر پردازندهی ۶۴ بیتی بهره برده و با سرعت بیشتری امور مورد نظر خود را انجام دهند. مثلا برنامههای رندر سه بعدی یا ویرایش ویدیو میتواند بازده به مراتب بالاتری را در پردازندههای ۶۴ بیتی داشته باشند.
در برخی از امور پردازنده مجبور است مرتبا مقادیر مورد نظر خود را از حافظه خوانده و رجیستر کند، به همین دلیل شاید انجام یک کار مشخص در پردازندهی ۳۲ بیتی به چند سیکل در CPU نیاز داشته باشد، اما همان تسک در یک پردازندهی ۶۴ بیتی به دلیل دسترسی وسیعتر به حافظه در سیکلهای کمتری انجام شود. در واقع پردازندههای ۶۴ بیتی قادر هستند تا آدرس دهی وسیعتری را در حافظه داشته باشند و با حجم به مراتب بالاتری از اطلاعات در اپلیکیشنها کار کنند. این موضوع در نرمافزارهایی همچون ویرایش ویدیو، محاسبات سنگین ریاضی، دیتابیسهای بزرگ و مواردی از این دست به خوبی خود را نشان میدهد.
آرم و معماری ARMv8
پیشتر در مقالهی «آرم چیست و چه تفاوتی با x86 میکند» به معرفی معماریهای مختلف ARM پرداختیم و از تفاوتهای آن با x86 گفتیم که در پردازندههای اینتل و کامپیوترهای شخصی مورد استفاده قرار میگیرد. اکثر پردازندههای بکار رفته در ابزارهای موبایل شامل پردازندههای ساخت سامسونگ، کوالکام، مدیاتک، راکچیپ و غیره از معماری آرم پشتیبانی میکنند. حال اگر این پردازندهها، بخواهند ۶۴ بیتی باشند باید از معماری پایهی ARMv8 پیروی کنند.
پیش از شروع بهتر است که علاوه بر مقالهی «آرم چیست» مطلب دیگری با عنوان «SoC چیست؟ چه تفاوتی با CPU دارد؟» را نیز مطالعه کنید. شرکت ARM خود تولید کننده تراشه نیست و تنها معماری را در قالب گواهیهای مختلف به فروش میرساند. آرم دو نوع گواهی اصلی دارد یکی گواهی معماری پایه مانند ARMv8 AArch64 که از پردازش ۶۴ بیتی پشتیبانی میکند و گواهی مهم دیگر، معماری هستهها است که مانند Cortex-a57 بر پایه ARMv8 پیشنهاد میشوند. برخی از شرکتها مانند سامسونگ هر دو گواهی را دریافت میکنند و در واقع خود تنها سازندهی تراشه هستند و براساس طرحهای ارائه شده توسط آرم، هستهها را تولید می کنند. اما برخی دیگر از کمپانیها مانند انویدیا، کوالکام یا اپل، تغییراتی را در طراحی هستهها اعمال میکنند و تنها گواهی پایهی آرم را تهیه میکنند. به این ترتیب پردازندههای ساخت این شرکتها با پردازندههای دیگر کمپانیها، تفاوتهای دارد که به موجب آن، گاهی این پردازندهها، قدرت و بازدهی بالاتری را نسبت به پردازندههای ساخته شده بر پایه معماری هستههای آرم، ارائه میکنند. از طرف دیگر اینتل و دیگر شرکتهای فعال در حوزهی x86، قرار دارند که بطور کامل از روند متفاوتی برای پیاده سازی پردازش ۶۴ بیتی بهره میبرند. اینتل با وجود فناوریهای خاص و موثری که طی یکی دو سال اخیر ارائه کرده هنوز سهم چندانی از بازار ابزارهای موبایل ندارد و از این رو در این مقاله کمتر به معماری آن میپردازیم. دلیل اینکه بعضی از کمپانیها مثل شرکتهای نام برده شده نسبت به طراحی اختصاصی برای هستهها اقدام میکنند آن است که باور دارند هستههای طراحی شده توسط آنها بازده بالاتر و مصرف انرژی کمتری نسبت به الگوهای پیشنهادی آرم دارند.
راستش را بخواهید در حال حاضر پردازندههای موبایل، بیشتر از نیاز ما، قوی هستند و به همین دلیل تولیدکنندگان نیمههادی تلاش میکنند تا پردازندههای خود را از نظر مصرف انرژی، بهینهتر کنند تا طول عمر باتری تلفنهای هوشمند و تبلتها افزایش یابد. به همین دلیل مهاجرت به پردازندههای ۶۴ بیتی حائز اهمیت است. انویدیا در بارهی پردازندههای ۶۴ بیتی و استفاده از آنها در اندورید اینگونه اظهار نظر کرده است:
تقریبا تمام کامپیوترهای رومیزی و لپتاپ از سالها قبل به پردازندههای ۶۴ بیتی مجهز شدهاند. استفاده از این پردازندهها باعث بازدهی بالاتر برای اپلیکیشنها و دسترسی به حافظهی حجیمتر میشود.
برای اندروید، داستان کمی متفاوت است و این موضوع بیشتر به دلیل استفاده از معماری ARMv8 اهمیت پیدا میکند. این معماری نه تنها پشتیبانی از پردازش ۶۴ بیتی را میسر میکند بلکه بهبودهای بسیاری در زمینهی مصرف بهینهی انرژی و بازدهی بالاتر را به همراه دارد. این موضوع حتی بر روی اپلیکیشنهای ۳۲ بیتی نیز تاثیر گذار خواهد بود.
گوگل در کنفرانس I/O از اندروید L با پشتیبانی از پردازندههای ۶۴ بیتی، رونمایی کرد و این سیستمعامل در قالب اندروید ۵ آبنبات پاستیلی به زودی در دسترس قرار میگیرد. انویدیا نیز از مدتها قبل، SoC جدید خود را با نام Tegra K1 معرفی کرده است که از پردازش ۶۴ بیتی پشتیبانی میکند.
پردازندهی تگرا کیوان، تمام معماری ARMv8 را بکار گرفته و هر هستهی Denver آن قادر به پشتیبانی از پردازش ۷ مسیره است. این در حالی است که پردازندههای مشابه از ۳ مسیر پردازشی بهره میبرند.
در واقع در دنیای تلفنهای هوشمند و ابزارهای موبایل مبتنی بر معماری آرم، آنچه در زمینهی استفاده از پردازندهی ۶۴ بیتی اهمیت پیدا میکند بیشتر مربوط به بهینهسازیهای انجام شده در معماری ARMv8 است. اغلب پردازندههایی که در این ابزارها استفاده میشوند مبتنی بر معماری آرم هستند و اگر پردازندهای بخواهد در این پلتفرم از پردازش ۶۴ بیتی بهره ببرد، باید روی معماری پایهی ARMv8 و هستههای همچون Cortex A57 و Cortex A53 طراحی شود. این معماری بهینه سازیهای بسیاری در مصرف انرژی و قدرت پردازشی نسبت به معماری ARMv7 دارد که تاثیر قابل ملاحظهای در عملکرد کلی دستگاه و طول عمر باتری نشان میدهد.
پس ابتدا این موضوع را در نظر داشته باشیم که تفاوت بین پردازندهی ۳۲ بیتی با ۶۴ بیتی تنها در پشتیبانی از حافظهی رم بیشتر نیست. مورد دیگر اینکه پردازندههای ۶۴ بیتی مبتنی بر معماری آرم، سریعتر و بهینهتر از پردازندههای ۳۲ بیتی این شرکت هستند. به این ترتیب حتی اگر زمان زیادی طول بکشد تا اپلیکیشنهای موبایل ۶۴ بیتی شوند، باز هم ارتقاء به پردازندهی ۶۴ بیتی یک مزیت به شمار میرود و تاثیر خود را بر روی مصرف بهینهی انرژی و بازدهی بالاتر میگذارد. انتظار میرود سال آینده اکثر ابزارهای موبایلِ تحت اندروید، ۶۴ بیتی شوند و توسعه دهندگان نیز اپلیکیشنهای خود را ۶۴ بیتی کنند.