وقتی صحبت از پردازنده یا CPU به میان میآید، بیشتر افراد یاد دو کمپانی Intel و AMD میافتد. اما در مقال گوشی و تبلت، پردازندههایی با معماری ARM متداول است و نه پردازندههای x86 و x64 اینتل و ایامدی. لذا اپلیکیشنهایی که برای گوشی و تبلت طراحی میشود و همینطور ویروسها و بدافزارها، با نرمافزارهایی که به صورت معمول در ویندوز اجرا میکنیم متفاوت است.
در این مقاله به این موضوع میپردازیم که پردازندهی ARM چیست و چه تفاوتهایی با پردازندههای x86 و x64 دارد. با اینتوتک همراه شوید.
انواع پردازنده و تفاوت CPU با سایر پردازندهها
همهی کامپیوترها و لپتاپها و گوشیها و تبلتها و حتی وسایل ظاهراً سادهتر نظیر مودم، پردازنده دارند! در همهی وسایل پردازش انجام میشود و برای این کار به پردازنده نیاز است. به عنوان مثال گیرندهی دیجیتال تلویزیون یا دستگاه پخش ویدیو و صدا، میبایست سیگنالها و فایلها را پردازش کرده و فریمهای تصویر را بسازد و برای تلویزیون بفرستد. این کار نیاز به پردازش دارد.
برخی پردازندهها برای کار خاصی به کار میرود، به عنوان مثال برای پردازش سیگنالهای سنسورها یا دوربین یا سیگنال دریافتی از دکلهای مخابراتی به کار میروند. به این پردازندهها، پردازندهی مرکزی گفته نمیشود. منظور از CPU یا Central Processing Unit که ترجمهی آن واحد پردازش مرکزی است، پردازندهای است که کاربرد عمومی دارد. در واقع میتوان هر نوع پردازشی را به کمک CPU انجام داد اما مسأله و چالش این است که پردازش با سرعت بالا و مصرف انرژی پایین صورت نخواهد گرفت!
برای پردازش گرافیک یک بازی، به پردازندهی گرافیکی نیاز داریم که کار آن به صورت خاص پردازش گرافیک است و این کار را با سرعت بالا و مصرف انرژی معقول و بهینه انجام میدهد. برای پردازش سیگنالهای دوربین، به واحد پردازش تصویر یا ISP نیاز است.
با پیشرفت مقولهی پردازش در وسایل همراه، برای پردازش اطلاعات مختلف، پردازندههای متفاوتی طراحی شده که کارکرد و کاربرد متفاوتی دارند. به همین جهت بهتر است نگوییم:
CPU فلان گوشی چه مدلی است!
سوال منطقی و صحیح این است که بپرسیم:
تراشهی مرکزی فلان گوشی چیست؟
در واقع در تراشهی مرکزی گوشیها و تبلتها، بخشی از تراشه همان CPU است و بخشی دیگر GPU یا پردازندهی گرافیکی است. بخشهای دیگری نظیر کنترلر حافظهی رم، واحد پردازش تصویر، موتور مولتیمدیا برای امور مرتبط با پخش کردن ویدیو و صدا، واحد پردازش محاسبات هوش مصنوعی و بخشهای جزئی دیگری وجود دارد. بنابراین عملاً این تراشه، یک CPU ساده و معمولی نیست.
چالشهای طراحی پردازندهی بهینه برای وسایل موبایل
در زمان معرفی اولین کامپیوترها، پردازندهها فقط ۱ هسته داشتند که سرعت پایین و قدرت پردازشی کمی داشت. اکنون پردازندهها چند هستهای شدهاند و توان مصرفی هر یک از هستهها به مراتب کمتر از پردازندههای قدیمی است و در عین حال قدرت پردازشی هر هسته، دهها برابر بیشتر شده است. همین پیشرفت در بخشهای دیگر نظیر RAM و HDD و GPU و پهنای باند کانالهای ارتباطی بین بخشهای مختلف اتفاق افتاده است.
در گوشیها و تبلتها هم با وجود اینکه سیستم عامل سبکتر از کامپیوتر است، به پردازندهی قوی و چند هستهای نیاز داریم. اما یک محدودیت بزرگ وجود دارد و آن میزان مصرف انرژی و در واقع مصرف باتری است.
پردازندههای معمولی که اینتل و ایامدی تولید میکنند، نسبت به گذشته کممصرفتر شده اما توان مصرفی به اندازهی کافی پایین نیست که برای گوشیها مناسب باشد. به علاوه در گوشیها و تبلتها نمیتوان فن و هیتسینک بزرگی برای خنککاری تراشهی مرکزی تعبیه کرد. لذا کمپانی ARM هستههای پردازندهی اصلی و هستههای پردازندهی گرافیکی خاصی طراحی کرده که در مجموع بازدهی بالاتری دارد و کممصرفتر از هستههای پردازندههای اینتل و ایامدی است. این کمپانی در سالهای اخیر مرتباً طرحهای بهینهتری ارایه کرده و اکنون اپل، کوآلکام، سامسونگ و غیره با آن همکاری میکنند تا طرحها به مرحلهی ساخت تراشه و ساخت وسایل همراه برسد.
مصرف انرژی کمتر با تولید گرمای کمتر همراه است و نیازی به سیستم خنککاری حجیم و سنگین نیست. در بیشتر گوشیها راهکار خاصی برای خنککاری تراشهی مرکزی در نظر گرفته نشده و در برخی مدلها صفحهای فلزی روی آن قرار گرفته تا بهتر خنک شود. در برخی نیز از هیتپایپ یا لولهی حرارتی استفاده شده است.
اینتل و ایامدی در برابر ARM
در سالهای اخیر استفاده از گوشیها و تبلتها به قدری گسترش پیدا کرده که در حال حاضر تعداد بازدیدکنندگان سایتها که از طریق گوشی یا تبلت به سایتها مراجعه میکنند، بیش از افرادی است که از ویندوز، مکاواس یا لینوکس و در واقع سیستم عاملهای دستاپی استفاده میکنند. اندروید و iOS و iPadOS اکنون پلتفرم محبوبتری برای عموم کاربران است.
رشد روزافزون استفاده از وسایل همراه موجب شده که پردازندههای خاصی با مصرف انرژی پایینتر و قابلیتهای بیشتر طراحی شود. در واقع در بیشتر گوشیها پردازندهای به کار رفته که محصول Intel یا AMD نیست در حالی که در لپتاپها و کامپیوترهای دستاپی و همینطور سرورها، پردازندههای ARM متداول نیست.
پردازندههای دو کمپانی اینتل و ایامدی که معمولاً برای لپتاپ و دستاپ و سرورها طراحی میشود، از مجموعه دستورات خاصی پشتیبانی میکند. معماری مجموعه دستورات x86 و x64 در این پردازندهها مرسوم است. اما پردازندهی گوشیها و تبلتها که توسط چند کمپانی بزرگ نظیر اپل، کوآلکام، هوآوی، سامسونگ، انویدیا، مدیاتک و غیره طراحی میشود، معماری مجموعه دستورات متفاوتی دارد و اصطلاحاً گفته میشود که پردازندهی ARM است. منظور این است که هستههای CPU که بخشی از تراشهی مرکزی است، مبتنی بر طرحهای کمپانی ARM طراحی شده است.
البته کوآلکام، هوآوی، اپل و غیره، در قبال استفاده از طرحهای کمپانی ARM، هزینه پرداخت میکنند و لذا هستههای پردازنده را کم و بیش دستکاری کرده و با طرح سفارشی خودشان، برای تولید انبوه تراشهها اقدام میکنند. اما در هر صورت معماری پردازندهها، ARM است.
پردازندهی ARM چیست؟
عبارت ARM مخفف Advanced RISC Machine و به معنی ماشین RISC پیشرفته است. به طور کلی پردازندهها دو نوع معماری مجموعه دستورات دارند: نوع اول CISC و نوع دوم RISC است.
منظور از CISC، کامپیوتری با مجموعه دستورات پیچیده یا Complex Instruction Set Computer است که در این معماری، دستوراتی که برای پردازش به پردازنده تحویل داده میشود، پیچیده است و باید طی مراحلی، سادهسازی شده و پردازش انجام شود. لذا بازدهی و مصرف انرژی کمی بالاتر از نوع دوم یعنی RISC است.
منظور از RISC، کامپیوتری با مجموعه دستورات ساده یا Reduced Instruction Set Computer است. در این نوع کامپیوتر، دستوراتی که برای پردازش تحویل گرفته میشود، سادهتر است و نیازی به سادهسازی نیست. لذا بازدهی فرآیند پردازش بیشتر میشود اما در مقابل برای تهیه کردن برنامه و نرمافزار، حوصله و وقت بیشتری صرف میشود.
نکتهی جالب این است که طرح پردازندهی RISC در دههی ۱۹۸۰ معرفی شد اما در بازار رو به رشد کامپیوترها جایی باز نکرد! سالها بعد و در دوران شکوفایی صنعت گوشی و تبلت، ARM Holdings با ارایه کردن طرحی بهینهتر، موفق شد. البته پیشرفت گوگل و اپل در سادهسازی توسعهی اپلیکیشن برای پردازندههای ARM نیز بسیار موثر بوده است.
معماری x64 و x86 که در پردازندههای اینتل و ایامدی استفاده میشود، جزو دستهی CISC محسوب میشود و لذا بازدهی کمتری دارد. در مقابل طرحهای ARM یک نوع معماری RISC محسوب میشود.
پردازندههای ۳۲ بیتی و ۶۴ بیتی ARM
نکتهی مهم و اساسی این است که در طرحهای ARM، پردازنده مثل ماشینهای RISC قدیمی در هر سیکل کلاک، تنها یک ریزدستور را اجرا نمیکند بلکه دستورات طولانی و پیچیدهتر است اما نه به پیچیدگی دستوراتی که در سیستمهای دستاپی و توسط پردازندههای CISC پردازش میشود.
در ماشینهای RISC معماری ۳۲ بیتی بوده اما کمپانی ARM Holdings از سال ۲۰۱۱ به بعد، در طرحهایی که ارایه کرده از معماری ۶۴ بیتی نیز پشتیبانی میکند. در واقع کمپانی ARM معماری مجموعه دستورات ARM v7a که یک معماری ۳۲ بیتی است را با تغییراتی به معماری ARM v8a تبدیل کرده که یک معماری ۶۴ بیتی است.
از طرفی ARM فرآیند تولید انبوه تراشهها را بهینه کرده تا تراشههایی که برای گوشیها و تبلتها ساخته میشود، ارزانتر از پردازندههای اینتل و ایامدی باشد.
دقت کنید که پردازندههای ARM هم هستههای متفاوتی دارند. برخی هستهها نظیر Cortex-A7 و Cortex-A53، کوچک و کممصرف است و در مقابل برخی هستههای دیگر نظیر Cortex-A15 و Cortex-A77 بزرگ و پرمصرف و البته قویتر است. حتی با سرعت کلاک برابر، قدرت هستهها در مقولهی پردازش، یکسان نیست. لذا گوشی ۸ هستهای گاهی کندتر از گوشی ۲ هستهای عمل میکند!
کاربردهای پردازندههای ARM
شاید تاکنون فکر میکردید که پردازندههای ARM صرفاً برای گوشیها و تبلتها مفید است اما دامنهی کاربرد این پردازندهها بسیار گسترده است. به خصوص که کمپانی ARM Holdings لایسنس استفاده از طرحها را به کمپانیهای بزرگی نظیر اپل و سامسونگ و کوآلکام واگذار میکند تا متناسب با اهداف و کاربرد، از طرحها استفاده کنند. در حال حاضر ستاپباکس، مولتیمدیاپلیر، مودم، کنسول بازی، اسباببازیها و رباتها و بسیاری وسایل دیگر با به کارگیری پردازندههای ARM تولید میشود.
پیشرفت قدرت پردازشی پردازندههای ARM از یک سو و بهینه بودن مصرف انرژی از سوی دیگر موجب شده که دامنهی کاربرد به سرورها و لپتاپها نیز گسترش پیدا کند!
مقایسه کردن پردازندههای ARM با پردازندههای AMD و Intel از نظر قدرت پردازشی و مصرف انرژی کار پیچیدهای است. حتی طرحهای مبتنی بر ARM که کوالکام، سامسونگ، اپل و غیره ارایه میکنند هم به سادگی قابل مقایسه کردن نیست. اما آنچه روشن و قطعی است، بالاتر بودن بازدهی و کممصرفتر بودن پردازندههای ARM نسبت به پردازندههای x86 و x64 است.
اینتوتک