بزرگنمايي:
بازاریابی و سیاست-
امروزه وقتی صحبت از پردازندههای مخصوص کامپیوترهای همراه به میان میآید، ناخودآگاه نام شرکت آرم (ARM) در ذهن اغلب کاربران و کارشناسان نقش میبندد. اگرچه در دهههای گذشته، اینتل بهعنوان پیشگام بازار تراشه شناخته میشد و هنوز هم آماری عالی در تولید یکی از مهمترین قطعات کامپیوترهای شخصی دارد، اما آرم از سالها پیش با حرکتی آهسته و حسابشده به بازار نفوذ کرد. در دنیای کنونی کامپیوترهای همراه حتی استراتژی آرم را پذیرفتهاند. کامپیوترها دیگر لزوما نیازی به بسیار سریع یا بسیار قدرتمند بودن ندارند. در عوض تولیدکنندهها بیشازپیش تمرکز خود را روی قابلیتهای جابهجایی آسان و بازدهی دستگاهها معطوف کردهاند.
تمرکز روی بازدهی و قابلیت جابهجایی آسان کامپیوترهای همراه باعث شد تا آرم به فرمانروای بازار پردازندههای همراه تبدیل شود. امروزه تقریبا تمامی نسخههای حرفهای پردازنده بر پایه معماری آرم تولید میشوند. منظور از پردازندههای همراه، میلیاردها تراشهای هستند که در سیستمهای نهاده (Embedded)، پردازندههای زیستی، تلویزیونهای هوشمند، گوشیهای هوشمند همچون آیفون، لپتاپها و تبلتها استفاده میشوند. اکنون این سؤال مطرح میشود که چرا آرم به چنین موقعیتی رسید و چرا معماریهای دیگر همچون x86 نتوانستند موقعیت خود را در بازار تثبیت کنند؟ در ادامهی مقالهی حاضر، یک بررسی کلی از آرم خواهیم داشت و سابقه و دلیل شهرت آن را بررسی میکنیم.
نکتهی مهم دربارهی آرم این است که شرکت مذکور، تولیدکنندهی پردازنده نیست. آنها معماری پردازندهی مرکزی را طراحی میکنند و طراحی مذکور را به شرکتهایی همچون کوالکام و سامسونگ میفروشند. شرکتهای مقصد نیز معماریها را در پردازندههای خود بهکار میگیرند. از آنجایی که امروزه اکثر پردازندههای همراه، از معماری مشترکی استفاده میکنند، پشتیبانی آنها از کدها نیز برابر و یکسان خواهد بود. درنتیجه کدی که در کوالکام اسنپدراگون پشتیبانی میشود، در سامسونگ اکسینوس هم پشتیبانی خواهد شد.
ISA یا Instruction Set Architecture چیست؟
هر تراشهی کامپیوتری برای عملکرد پردازشی به ISA نیاز دارد که محصول اصلی آرم محسوب میشود. برای درک بهتری کارایی ISA باید معماری پایه و عملکرد پردازندههای مرکزی را درک کنید که از حوصلهی این مقاله خارج است. بههرحال ابتدا باید ببینیم که ISA چه کاربردها و ویژگیهایی دارد.
ISA برخلاف حافظهی کش یا هستهی پردازشی، یک قطعهی فیزیکی نیست. درواقع ISA چگونگی عملکرد تمامی جنبههای پردازندهی مرکزی را مشخص میکند. درواقع این معماری، انواع دستورالعملهایی را مشخص میکند که تراشه قابلیت پردازش آنها را دارد. بهعلاوه، فرمت دادههای ورودی و خروجی، چگونگی ارتباط پردازنده با رم و بسیاری موار دیگر، در معماری مشخص میشود. درنهایت ISA را میتوان مجموعهای از مشخصات فنی دانست، درحالیکه پردازنده، تحقق مشخصات و چگونگی پیادهسازی آنها است. معماری را میتوان نقشهی اولیهای (Blueprint) دانست که چگونگی عملکرد بخشهای گوناگون پردازنده را مشخص میکند.
بهعنوان نمونهای از کارایی ISA، این معماری ابعاد هر بخش از دادهی پردازشی را در پردازنده مشخص میکند که در جدیدترین نمونهها، 64 بیت تعیین میشود. تمامی انواع پردازنده، سه عملکرد ثابت روی داده و دستورالعمل انجام میدهند. آنها ابتدا دستورالعمل را میخوانند و سپس فرایندهای اجرای دستورالعمل و بهروزرسانی وضعیت آنها بسته به نتایج را انجام میدهند. تفاوت در ISA باعث میشود تا برخی از پردازندهها، هریک از مراحل را به بخشهای کوچکتر هم تقسیم کنند. بهعنوان مثال، یک معماری پیچیده مانند x86، فرایند را به عملیات بسیار بیشتر تقسیم میکند تا خروجی بهینهسازی شود. دیگر وظایف مانند پیشبینی شاخههای جدید در دستورالعملهای شرطی و پیشدریافت دادهها هم در ISA تعریف میشود.
معماری پایهای علاوه بر تعیین کردن ریزمعماری (micro-architecture) پردازنده، مجموعهای از دستورالعملها را مشخص میکند که پردازنده توانایی پردازش آنها را دارد. دستورالعملها، درواقع مواردی هستند که یک پردازنده، در هر چرخهی عملکردی اجرا میکند و توسط کامپایلر تولید میشوند. دستورالعملهای متعددی برای پردازنده وجود دارند. از میان آنها میتوان خواندن/نوشتن حافظه، عملیات محاسبهای، شاخهبندی دستورالعملها و بسیاری دیگر را نام برد. بهعنوان مثال میتوان دستورالعمل «محتویات آدرس حافظهی 1 را به محتویات آدرس 2 اضافه و نتیجه را در آدرس 3 ذخیره کن» را بیان کرد.
هر دستورالعمل میتواند در ابعاد 32 یا 64 بیت باشد و حوزههای گوناگونی را پوشش دهد. مهمترین بخش دستورالعمل بهنام opcode شناخته میشود که نوع بهخصوص دستورالعمل را مشخص میکند. پردازنده بهمحض اینکه نوع دستورالعمل را تشخیص دهد، دادههای مرتبط با نوع اجرای دستورالعمل را دریافت میکند. محل قرارگیری و نوع داده نیز در بخش دیگری از opcode مشخص میشود.
RISC در برابر CISC
توضیحات بالا، درکی اولیه از ISA را ارائه کرد. اکنون باید ببینیم که معماری آرم، چگونه آن را از رقبا متمایز میکند. مهمترین قابلیت آرم، ساختار RISC آن (Reduced Instruction Set Computing) است؛ درحالیکه معماری x86، ساختار CISC یا (Complex Instruction Set Computing) دارد. ساختارهای مذکر، دو نوع اصلی در طراحی پردازنده هرستند که هرکدام، نقاط قوت و ضعف بهخصوص خود را دارند.
با استفاده از معماری RISC، هر دستورالعمل، یک فعالیت را برای پردانده تعیین میکند و عموما فعالیتها بهصورت ساده و پایهای تعریف میشوند. درمقابل، در معماری CISC با ساختاری پیچیدهتر روبهرو هستیم که ایدهی عملیاتی بزرگتری را برای پردازنده مشخص میکند. درنتیجه، معماری CISC، هر دستورالعمل را به مجموعهی عملیاتی کوچکتر تقسیم میکند و فرایند پیچیدهتری دارد. معماری CISC میتواند جزئیات بسیار زیاد و پیچیده را به دستورالعملهای واحد تبدیل کند که درنهایت موجب افزایش کارایی و قدرت پردازنده میشود. بهعنوان مثال، معماری RISC تنها ظرفیت ذخیرهی یک یا دو دستورالعمل «Add» را دارد، درحالیکه معماری CISC تا 20 دستورالعمل را بسته به نوع داده و دیگر پارامترهای محاسبهای، ذخیره میکند. جدول زیر، تفاوت بین دو معماری را با جزئیات بیشتر نشان میدهد.
CISC | RISC |
---|
پیچیدگی عملیات را به سختافزار محول میکند | پیچیدگی عملیات را به نرمافزار محول میکند |
انواع گوناگون برای فرمتهای دستورالعمل را پوشش میدهد | دستورالعملها یک فرمت مشخص را دنبال میکنند |
ثبات (رجیستر) داخلی محدود | ثبات داخلی بالا |
عملیات رمزگشایی (decoding) پیچیده برای تقسیمبندی بخشهای گوناگون دستورالعمل | کامپایلر پیچیده برای نوشتن کد با دستورالعملهای کوچکتر |
انواع پیچیدهی تعامل با حافظه | تعداد محدود انواع تعامل با حافظه |
دستورالعملها برای پایان یافتند تعداد متنوعی چرخه نیاز دارند | همهی دستورالعملها در یک چرخه به پایان میرسند |
تقسیمبندی و انجام موازی کارها دشوار است | انجام موازی کارها آسان است |
برای مقایسهی ملموستر انواع ریزمعماری در پردازنده، میتوان آن را با فرایند ساختن خانه مقایسه کرد. با استفاده از معماری RISC، تنها یک اره و یک چکش در اختیار دارید، درحالیکه معماری CISC، انواع گوناگون از چکش، اره، دریل و ابزارهای دیگر را در اختیار شما قرار میدهد. سازندهای که از سیستم شبیه به CISC استفاده میکند، توانایی انجام کارهای بیشتری را خواهد داشت، چون ابزارهای بیشتر و پیچیدهتری در اختیار دارد. سازندهی مبتنی بر معماری RISC هم بالاخره کار خود را به پایان میرساند، اما بهخاطر محدود بودن ابزارها، به زمان بیشتری نیاز دارد.
باتوجه به تفاوت بالا، شاید این سؤال مطرح شود که چرا باید از معماری RISC استفاده کنیم؟ درحالیکه CISC پیچیدگی و قدرت بیشتری دارد. فراموش نکنید که کارایی و قدرت، تنها فاکتور مد نظر در طراحی پردازنده محسوب نمیشود. سازندهی ساختمانی که از CISC استفاده میکند، باید کارگرهای متعدد ماهری در اختیار داشته باشد که توانایی کار کردن با ابزارها را دارند. درنتیجه محل کار آنها پیچیدهتر و شلوعتر میشود و نیاز به برنامهریزی و سازماندهی بیشتر دارد. بهعلاوه، مدیریت همهی ابزارها نیز دشواری را دوچندان میکند، چون هریک از آنها، مخصوص کار کردن با یک مادهی خاص هستند. درمقابل، سازندهای که از ساختار سادهی RISC بهره میبرد، نیازی به نگرانیهای اینچنینی ندارد، چون ابزارهای پایهای او، توانایی کار کردن با همه نوع ماده و شرایط را دارند.
طراح خانه انتخاب چگونگی تولید آن را برعهده دارد. آنها میتوانند طرحهایی ساده را برای سازندهی RISC آماده کنند، یا طراحی را پیچیدهتر کرده و سازندهای CISC استخدام کنند. ایدهی اولیه و محصول نهایی هردو سناریو، یکی خوهد بود، اما کاری که در میانهی مسیر انجام میشود، تفاوت دارد. در این مثال، طراح خانه را میتوان برابر با کامپایلر دانست. کامپایلر، کد ورودی (نقشهی خانه) را دریافت میکند که برنامهنویس (طراح یا نقشهکش) ارائه کرده است. سپس مجموعهای از دستورالعملها (برنامهی ساخت خانه) را بسته به نوع و طراح مورد نظر، ارائه میکند. چنین ساختاری به برنامهنویس امکان میدهد که برنامهی خود را صرفنظر از تفاوت در دستورالعملها، روی هر دو معماری ARM و x86 اجرا کند.
نیاز به مصرف برق کمتر
پس از مثال بالا، مجددا به سراغ معماری آرم میرویم. اگر بخشهای قبلی را در کنار هم قرار دهید، متوجه میشوید که آرم برای طراحان سیستمهای همراه، جذابیت بیشتری دارد. در چنین ساختارهایی، بازدهی حکم کلیدی دارد. در سناریوهای موبایل یا امبدد، بازدهی مصرف نیرو اهمیتی بسیار بیشتر از قدرت و کارایی دارد. هر طراح سیستم، همیشه برای افزایش بازدهی نیرویی، کمی از قابلیتهای کارایی میکاهد. تا زمانیکه فناوری باتریها بهبود پیدا کند، گرما و مصرف نیرو مهمترین عوامل محدودیتزا در طراحی دستگاههای همراه هستند. بههمین دلیل امروزه شاهد استفاده از پردازندههای بزرگ دسکتاپ در گوشیهای هوشمند خود نیستیم. اگرچه پردازندههای بزرگ، قدرت بسیار بیشتری دارند، اما اگر آنها را در گوشی هوشمند بهکار بگیرید، بسیار گرم میشود و باتری آن نیز عمری بیش از چند دقیقه نخواهد داشت. یک پردازندهی حرفهای x86 دسکتاپ، نیروی مصرفی 200 وات دارد، درحالیکه یک پردازندهی موبایل، حداکثر دو تا سه وات نیرو مصرف میکند.
در دنیای پردازندههای موبایل، بازدهی حرف اول را میزند
برای حل چالش مصرف نیرو در پردازندههای موبایل، میتوان پردازندههای x86 با قدرت پایینتر تولید کرد، اما ازطرفی نوع ریزمعماری CISC بیشتر در تراشههای قدرتمند و بزرگ کاربرد دارد. به همین دلیل، پردازندههای آرم هم در فرمفاکتور دسکتاپ دیده نمیشوند. درنهایت اکنون میدانیم که ساختار x86 برای موبایل، و ساختار آرم برای دسکتاپ، مناسب نیست. آرم چگونه توانست به بازدهی انرژی بسیار بالا دست پیدا کند؟ دستاورد مذکور، از طراحی RISC و پیچیدگی ریزمعماری نشأت میگیرد. از آنجایی که آرم نیازی به پردازش انواع گوناگون دستورالعمل ندارد، معماری داخلی را میتوان سادهتر طراحی کرد. بهعلاوه، سربار پردازشی (Overhead) در مدیریت یک پردازنده در ساختار RISC کمتر خواهد بود.
تمامی موارد بالا بهمعنای کاهش مصرف انرژی در پردازنده هستند. طراحی سادهتر یعنی ترانزیستورهای بیشتری مستقیما فعالیتهای مرتبط با پردازش و کارایی را انجام میدهند و توسط بخشهای دیگر معماری، اشغال نخواهند شد. یک تراشهی آرم نمیتواند انواع گوناگون دستورالعمل را با سرعتی نزدیک به تراشهی x86 انجام دهد، اما درمقابل، بازدهی بیشتری در عملیات دارد.
ساختار کوچک محبوب
یکی دیگر از قابلیتهایی که آرم به دنیای پردازش وارد کرد، معماری پردازشی ناهمگون موسوم به big.LITTLE بود. این نوع از طراحی، دو پردازندهی مکمل را در یک تراشه قرار میدهد. یکی از آنها، یک هسته با قدرت و مصرف برق پایین خواهد بود و دیگری، هستهای قدرتمندتر است. تراشه، ساختار سیستم را بررسی کرده و سپس بین دو هستهی موجود، یکی را برای انجام عملیات انتخاب میکند. در سناریوهای دیگر، کامپایلر درصورت اطلاع از نزدیک بودن یک دستورالعمل پیچیدهی پردازشی، هستهی قدرتمندتر را فراخوانی میکند.
اگر دستگاه در حالت توقف باشد یا وظایف پردازشی سبک انجام دهد، هسته با قدرت و مصرف پایینتر (LITTLE) بهکار گرفته میشود و هستهی قدرتمندتر، خاموش خواهد شد. آرم میگوید این ساختار، تا 75 درصد بازدهی را افزایش میدهد. اگرچه پردازندههای مرسوم دسکتاپ هم در زمان فعالیت پردازشی سبک یا توقف سیستم، نیروی مصرفی را کاهش میدهند، اما بخشهایی از آنها هیچگاه خاموش نمیشوند. از آنجایی که آرم توانایی خاموش کردن برخی هستهها را دارد، در رقابت بازدهی همیشه برنده میشود.
طراحی پردازنده، در تمامی مراحل خود نیاز به سبک و سنگین کردن قابلیتها و نقاط قوت و ضعف دارد. آرم بهصورت کامل ریزمعماری RISC را انتخاب کرد که نتیجهی خوبی هم بههمراه داشت. آنها در سال 2010، حدود 95 درصد از سهم بازار پردازندههای موبایل را در اختیار گرفتند. از آن زمان، شرکتهای متعدد بهمرور به بازار اضافه شدند، اما هنوز هم آرم بهعنوان فرمانروای بازار شناخته میشود.
اهدای مجوز و افزایش کاربرد
سیاستی که آرم در اهدای مجوز فناوری خود در پیش گرفت، یکی دیگر از دلایل برتری آنها در بازار محسوب میشود. ساختن فیزیکی تراشهها، همیشه دشواری و هزینهی زیادی بههمراه دارد، درنتیجه آرم این کار را انجام نمیدهد. بهعلاوه، آنها با پیادهسازی ساختار آسانتر، انعطافپذیری و قابلیت شخصیسازی بیشتری را ارائه میکنند.
آرم بهجای تولید پردازنده، با اهدای مجوز طراحیهای خود درآمدزایی میکند
شرکتهای دریافتکنندهی مجوز آرم، بسته به حوزهی فعالیت خود میتوانند قابلیتها و نیازمندیهای خود را تعیین کنند. بهعلاوه آنها خواهند توانست تنها برخی از دستورالعملهای آرم را پیادهسازی کرد و تراشههای اختصاصی خود را با طراحی متفاوت تولید کنند. فهرست شرکتهایی که از فناوریهای آرم استفاده میکنند، روزبهروز بزرگتر میشود، اما از میان بزرگترینها میتوان اپل، انویدیا، AMD، Broadcom، فوجیتسو، آمازون، هواوی و کوالکام را نام برد که هرکدام بهنوعی با آرم همکاری میکنند.
همانطور که میدانید، طراحی آرم تنها محدود به دنیای گوشیهای هوشمند نمیشود. مایکروسافت هم از معماری این شرکت برای خانوادهی سرفیس و دیگر محصولات سبک خود استفاده میکند. قبلا مطلبی با موضوع ویندوز 10 روی پردازندهی آرم منتشر کردیم که باوجود عدم موفقیت آنچنانی در تلاشهای اولیه، اکنون شاهد پیشرفتهای خوبی در آن دسته همچون سرفیس پرو ایکس هستیم. همچنین از مدتها پیش شایعه شده بود که اپل هم تصمیم به استفاده کردن از مک روی آرم دارد. درنتیجهی همهی پیشبینیها و احتمالات، شاید روزی شاهد لپتاپهایی باشیم که بازدهی مصرف نیروی بالایی بهاندازهی گوشیهای هوشمند داشته باشند.
آرم در دنیای دیتابیس هم از سالها پیش تمرکز قابلیتهای خود را روی بازدهی مصرف نیرو گذاشته است. در ساختاری که هزاران هزار سرور استفاده میشوند، قطعا صرفهجویی در مصرف نیرو اهمیت زیادی خواهد داشت. بههرحال اخیرا شاهد راهکارهای جدیدی از AMD و اینتل بودهایم که در ساختارهای بزرگ استفاده میشوند و قدرت و بازدهی را در کنار هم بههمراه دارند. البته هنوز نمیتوان در آیندهای نزدیک، انتظار بهکارگیری گسترده از آن ساختارها را داشت.
از فعالیتهای مثبت اخیر دیگر آرم میتوان به جمعآوری یک اکوسیستم بزرگ از مالکیتهای معنوی مکمل پردازنده (IP) اشاره کرد که قابل پیادهسازی در معماری شرکت هستند. از میان آنها میتوان انواع شتابدهنده، انکودر/دیکودر و پردازندههای رسانهای را نام برد که شرکتها امکان خرید حق مجوز استفاده از آنها در محصولات خود را دارند.
آرم همچنین بهعنوان انتخابی عالی در دستگاههای IoT شناخته میشود. آمازون اکو و گوگل هوم مینی هردو از پردازندههای ARM Cortex بهره میبرند. آنها بهنوعی به استاندارد صنعت تبدیل شدهاند و امروزه طراحان دستگاههای موبایل، دلیلی برای استفاده نکردن از آرم ندارند.
قابلیتهای متعدد در یک تراشهی واحد
آرم علاوه بر کسبوکار اصلی خود پیرمون ISA، به حوزهی SoC نیز وارد شده است. با افزایش محدودیتهای فضا و مصرف نیرو، بازار پردازش موبایل، بیشازپیش بهسمت راهکار طراحی یکپارچه پیش میرود. CPU و SoC شباهتهای زیادی با هم دارند، اما بهطور خلاصه میتوان SoC را آیندهی دنیای پردازش موبایلی دانست.
سیستم روی تراشه (SoC) عملکردی دقیقا هماهنگ با نامش دارد. قطعات و بخشهای متنوع و متعددی در این نوع از تراشه گردآوری میشوند تا بازدهی آن افزایش پیدا کند. بهعنوان مثال، تصور کنید که کل مادربرد یک کامپیوتر رومیزی در یک تراشه گردآوری شود. این همان SoC است. سیستمهای مذکور عموما شامل پردازندهی مرکزی، پردازندهی گرافیکی، حافظه، کنترلرهای لوازم جانبی، مدیریت نیرو، شبکه و تعدادی شتابدهنده میشوند.
پیش از اینکه طراحی SoC به ساختار رایج دنیای پردازش موبایلی تبدیل شود، هریک از ساختارهای بالا نیاز به تراشهی اختصاصی داشتند. ارتباط بین تراشههای گوناگون، نسبت به زمانیکه همهی آنها روی یک تراشه باشند، به 10 تا 100 برابر زمان بیشتر و 10 تا 100 برای مصرف نیروی بیشتر نیاز دارد. درنتیجه دنیای موبایل، روزبهروز بیشتر بهسمت طراحیهای SoC پیش میرود.
امروز SoC بیش از ساختارهای چندتراشهای سنتی در دنیای موبایل کاربرد دارد
باوجود تمام مزیتها، معماری SoC برای تمامی انواع سیستمها مناسب نیستند. بهعنوان مثال در لپتاپهای مرسوم یا کامپیوترهای رومیزی شاهد استفاده از SoC نیستیم، چون بههرحال در این طراحی محدودیتهایی از لحاظ حداکثر تجهیزات قابل نصب روی یک تراشه وجود دارد. بهعنوان مثال، شما بههیچوجه نمیتوانید کارایی و قدرت یک پردازندهی گرافیکی مستقل یا مقدار رم بالا را با تمامی ساختارهای ارتباطی مورد نیاز، روی یک تراشه جانمایی کنید. SoC هم مانند RISC تنها برای طراحیهای با مصرف نیروی پایین مناسب خواهد بود و در طراحیهایی با کارایی و قدرت بالا، آنچنان کاربرد ندارد.
اکنون میدانیم که آرم با تمرکز روی طراحی ساده با کارایی بالا، توانست به فرمانروای بازار پردازندهی موبایل تبدیل شود. مدل RISC ISA این شرکت، به آنها امکان میدهد تا مدلهای تولید پردازنده را به شرکتهای دیگر بفروشند و مدل درآمدی پایداری داشته باشند. آنها با بهرهگیری از مدل RISC بازدهی را به حداکثر ممکن در مقابل کارایی رساندند. امروز در دنیای پردازش موبایلی، بازدهی مصرف نیرو حرف اول را میزند و آرم، بهترین عملکرد را در آن از خود نشان داده است.