در دنیای امروز که لپتاپها و سرورهای لبه (edge) با پردازندههای آرم (ARM) به سرعت در حال گسترش هستند، این سوال مطرح میشود که آیا این دستگاههای جدید ارزش خرید دارند؟ برای پاسخ به این سوال، ابتدا لازم است تفاوتهای فنی بین پردازندههای آرم و نسل قبلی قدرتمند آن یعنی x86-64 را درک کنیم. کاری که در این مقاله از دیجی رو قصد داریم به آن بپردازیم. پس در ادامه حتماً با ما همراه باشید.
x86-64 چیست؟
پردازندههای اینتل که در رایانههای رومیزی و لپتاپ یافت میشوند، گاهی اوقات به عنوان پردازندههای “x86” شناخته میشوند. معماری 64 بیتی که امروزه همه رایانههای مدرن از آن استفاده میکنند، بر روی مدل x86 قرار دارد که اکنون به عنوان “x86-64” شناخته میشود.
این موضوع کمی گیجکننده است، اما دقیقاً توضیح میدهد که چرا این روزها دو پوشه مختلف برای نصب برنامهها در ویندوز وجود دارد. به طور خلاصه، تمام برنامههای 32 بیتی در پوشه x86 و تمام برنامههای 64 بیتی در پوشهای دیگر قرار میگیرند. این قرارداد از زمان انتشار نسخه 64 بیتی ویندوز XP توسط مایکروسافت در سال 2001 برقرار شده است.
در ادامه مقاله، برای سادهسازی ما به “x86-64” با همان عنوان “x86” اشاره خواهیم کرد، زیرا شباهتهای زیادی بین تراشههای 32 بیتی و 64 بیتی وجود دارد و از همین رو میتوان آنها را در یک گروه قرار داد.
شاید برای شما هم این سؤال پیش آمده باشد که اصلاً ریشه عبارت “x86” چیست؟ در پاسخ باید گفت، عبارت x86 از یک ریزپردازنده ساخته شده توسط اینتل به نام 8086 گرفته شده است که به نوعی پایهگذار پردازشهای کامپیوتری مدرن بود. این تراشه 16 بیتی تحت یک مجموعه دستورالعمل کار میکرد که هنوز هم تا حد زیادی توسط پردازندههای مدرن برای انجام وظایف محاسباتی پیشرفته استفاده میشود. همه چیز از ویرایشگر متن شما تا نرم افزار رندرینگ ویدیوی پیشرفته هنوز قابلیت کار تحت معماریای را دارد که در سال 1978 متولد شده است!
از زمان عرضه ریزپردازنده 8086، اینتل به استفاده از قرارداد نامگذاری برای مدلهای آینده مانند 80286 و 80386 ادامه داد تا اینکه با انتشار سری پنتیم سنت را شکست. با این وجود، ما هنوز با طبقهبندی تمام پردازندههای بعدی که از مجموعه دستورالعمل آن استفاده میکنند به عنوان “x86” به آن تراشههای قدیمی ادای احترام میکنیم. پس x86 به طیفی از پردازندهها اشاره داشته که قسمت آخر نام آنها به 86 ختم میشد، اما اکنون نیز یک اصطلاح رایج برای اشاره به آن نوع پردازندها است. حتی پردازندههای 64 بیتی مدرنتر که AMD برای اولین بار در سری Opteron در دهه 2000 منتشر کرد، با همین نام شناخته میشود، زیرا اکثریت قریب به اتفاق پردازندههای 64 بیتی در سیستمهای دسکتاپ و سرور همچنان کمابیش بر پایه همان معماری 8086 هستند.
مجموعه دستورالعملها
تمام عملکرد یک پردازنده بر اساس چیزی به نام مجموعه دستورالعملها یا Instruction Sets شکل میگیرد. این یک مجموعه سخت افزاری از عملیات ابتدایی است که یک تراشه میتواند انجام دهد. هر دستورالعمل به تراشه میگوید کارهایی مانند ریاضیات پایه و جابهجایی دادهها را انجام دهد. در پایینترین سطح هر قطعه کد در هر برنامهای که روی دستگاه خود اجرا میکنید، لایهای وجود دارد که با پردازنده صحبت میکند. این لایه همچنین از کد مخصوص به خود به نام زبان اسمبلی استفاده میکند که یک مرحله پایینتر به دستورالعملهای پایه ترجمه میشود که اغلب به عنوان کد ماشین یا زبان ماشین شناخته میشوند.
اینجاست که به تفاوت اصلی بین تراشههای آرم و x86 میرسیم.
تراشههای x86 از محاسبات مجموعه دستورالعمل پیچیده (CISC) استفاده میکنند، در حالی که تراشههای ARM از محاسبات مجموعه دستورالعمل کاهشیافته (RISC) استفاده میکنند. در حالی که تراشههای CISC سعی میکنند کار بیشتری را در یک دستورالعمل قرار دهند و در عین حال چرخههای ساعت متعددی را برای انجام این کار صرف کنند، تراشههای RISC (همانطور که از نام آن پیداست) مجموعه دستورالعمل بسیار کوچکتری دارند که همه چیز را به مراحل سادهتری تقسیم میکنند که میتوانند در یک چرخه ساعت واحد اجرا شوند.
توضیح: «چرخه ساعت» (Clock Cycle) به زمانی اشاره دارد که پردازنده برای انجام یک عملیات نیاز دارد. به عبارت دیگر، هر بار که سیگنال ساعت تغییر میکند، پردازنده یک گام به جلو برمیدارد.
CISC در مقابل RISC
اگر یک تراشه CISC نیاز به ضرب دو عدد داشته باشد، ممکن است یک دستور واحد اجرا کند که به این شکل است: MULT 2, 3. این دستور واحد شامل بارگیری اعداد از حافظه، ضرب آنها با هم و ذخیره نتیجه در مکان حافظه صحیح میشود. یک تراشه RISC که همان عملیات را انجام میدهد، به مراحل بسیار بیشتری نیاز دارد. ابتدا یک دستور LOAD برای انتقال اعداد از ثبتکنندهها به واحد اجرایی. سپس، یک دستور PROD برای ضرب اعداد. در نهایت، یک دستور STOR برای قرار دادن نتیجه در ثبتکننده صحیح.
در حالی که تراشه CISC ممکن است به دلیل سادهتر بودن دستورات کارآمدتر به نظر برسد، باید چند تفاوت مهم را در نظر داشته باشید:
اولاً، تراشههای CISC دستورات را در چندین چرخه ساعت اجرا میکنند، در حالی که هر دستور در یک تراشه RISC در یک چرخه ساعت واحد اجرا میشود. به همین دلیل، دستور MULT فرضی ما ممکن است در همان تعداد چرخه دستورات RISC که همان کار را انجام میدهند اجرا شود. دوم، تمام دستورالعملها و منطق CISC باید در ترانزیستورها ذخیره شوند. تراشههای RISC میتوانند از ترانزیستورهای کمتری استفاده کنند زیرا به ذخیره دستورالعملهای کمتری نیاز دارند. سوم، تعداد کمتر ترانزیستور مورد نیاز توسط RISC امکان مصرف انرژی کمتر را فراهم میکند.
با این حال، CISC هم مزایای خاص خود را دارد. اول، کامپیوتر نیازی به کار زیادی برای تبدیل از زبان برنامهنویسی سطح بالا مانند C به زبان اسمبلی سطح پردازنده ندارد. در واقع، دستور MULT ذکر شده در بالا بسیار شبیه به دستور C foo = foo * bar است. تراشههای RISC از کامپایلر میخواهند کار بیشتری برای رساندن کد به زبان اسمبلی انجام دهد. تراشههای CISC همچنین میتوانند عملیات خود را مستقیماً روی حافظه سیستم انجام دهند، در حالی که تراشههای RISC باید دادهها را قبل از کار کردن بر روی آنها، از حافظه به ثبتکنندههای پردازنده بکشند.
در یک رقابت عملکردی مستقیم بین این دو، تا جایی که به مصرفکنندگان مربوط میشود، برنده واضحی وجود ندارد. با این حال، RISC یک مزیت دیگر برای کسب برتری واقعی بر CISC دارد.
مصرف انرژی
بین CISC و RISC، در مورد مصرف انرژی هیچ جای بحثی وجود ندارد. RISC به طور قطع در اینجا برنده است. مجموعه دستورالعمل کاهشیافته، تراشه را کوچکتر و در نتیجه کممصرفتر میکند.
تراشههای کوچکتر با اجزای میکروسکوپی کمتر همچنین مقاومت الکتریکی کمتری دارند و برای کار به وات کمتری نیاز دارند. بهترین مطالعه موردی برای این موضوع، فناوری اثباتشده گوشی هوشمند است؛ یک دستگاه رایانهای سبک و کوچک که نسبت به ابعاد خود قادر به انجام محاسبات زیادی است، اما در بسیاری از موارد موفق میشود بیش از 24 ساعت با یک باتری نسبتاً کوچک دوام بیاورد.
با این وجود، این بدان معنا نیست که همه رایانهها برای کاهش مصرف انرژی از تراشههای ARM استفاده خواهند کرد. در بازار دسکتاپ، جایی که سیستم معمولاً به جای باتری به یک اتصال مستقیم به پریز برق وابسته است، بهرهوری انرژی اولویت چندان بزرگی نیست. تراشههای CISC هنوز در این شرایط عملکرد شگفتانگیزی دارند و هیچ نشانهای از تغییر این وضعیت در آینده نزدیک وجود ندارد.
سیستم آرم بخریم یا x86؟
با انتشار ویندوز 11 توسط مایکروسافت برای معماری آرم و تغییر اپل به استفاده از تراشههای آرم در مک، ممکن است شما نیز علاقهمند به خرید یک رایانه آرم شده باشید. با این حال، همه چیز به یک سوال بسیار ساده خلاصه میشود: آیا میخواهید برای هر وات ساعت انرژی تأمین شده توسط باتری دستگاه خود بالاترین راندمان و عملکرد را داشته باشید؟ یا مصرف انرژی چندان برایتان مهم نیست و دوست دارید از قدرت پردازشی بالاتری برخوردار شوید؟
در صورتی به سؤال اول پاسخ مثبت میدهید، سیستم آرم برایتان مناسبتر خواهد بود، در غیر این صورت بهتر است از همان معماری قدیمی اما بسیار قدرتمند x86 یا به عبارت بهتر x86-64 استفاده کنید. در اکثر موارد، تصمیم گرفتن به همین سادگی است و نیازی نیست درگیر مباحث پیچیده و یا تبلیغات بازار شوید.