چطور ARM موفق به تصاحب بازار موبایل شد؟
هر زمان که به سختافزارهای پردازش موبایل فکر میکنید، ARM احتمالا یکی از نخستین کمپانیهایی باشد که به ذهنتان خطور میکند. اصلا این باید یکی از اولین نامهایی باشد که به ذهنتان مرسد. اگرچه اینتل ...
هر زمان که به سختافزارهای پردازش موبایل فکر میکنید، ARM احتمالا یکی از نخستین کمپانیهایی باشد که به ذهنتان خطور میکند. اصلا این باید یکی از اولین نامهایی باشد که به ذهنتان مرسد. اگرچه اینتل در طول تاریخ همواره به عنوان رهبر دنیای چیپها شناخته شده، اما شرکت آرم هم برای مدتی طولانی به فعالیت در بازاری کوچک پرداخت که در نهایت گستردگی هرچه بیشتر یافت. در این بازار دیوایسهای کامپیوتری دیگر نیازمند نیازمند پرفورمنس سریعتر نبودند، بلکه لازم بود شکلی بهینهتر و حملپذیرتر به خود بگیرند.
به همین خاطر است که آرم با عرضه هر ورژن جدیدی از معماری خود، بازار پردازندههای موبایل را به تصاحب خود در میآورد. داریم درباره میلیاردها چیپی صحبت میکنیم که درون موبایلهای هوشمند، تلویزیونهای هوشمند، سیستمهای بیومتریک، لپتاپها و تبلتها استفاده میشوند. اما چرا اوضاع اینگونه است و چرا دیگر معماریها نظیر x86 از کسب چنین موفقیتی ناکام ماندند؟ در این مقاله به مرور فنی این میپردازیم که آرم چیست، از کجا آمده است و چرا اینقدر به محبوبیت رسیده است.
نخستین نکته که اشاره به آن ضروری به نظر میرسد اینست که آرم خودش به تولید پردازنده مشغول نیست. این شرکت در عوض به طراحی معماریهای پردازنده پرداخته و لایسنس آنها را به دیگر شرکتها نظیر کوالکام، اپل و سامسونگ میفروشد تا از آنها درون پردازندههای مخصوص خودشان بهره ببرند. از آنجایی که همه این شرکتها از استانداردی واحد بهره میگیرند، کدهایی که روی پردازندههای اسنپدراگون شرکت کوالکام به اجرا در میآیند، روی پردازندههای اگزینوس سامسونگ هم اجرا میشوند.
معماری مجموعه دستورالعمل چیست؟
هر چیپ کامپیوتری نیازمند «معماری مجموعه دستورالعمل - Instruction Set Architecture» (یا به اختصار ISA) است تا به درستی کار کند و این دقیقا همان محصولی است که آرم برای مشتریان خود تدارک میبیند. نخستین گام برای تشریح آرم و فعالیتهایش، درک اینست که ISA چه چیزی هست و چه چیزی نیست.
معماری مجموعه دستورالعمل یک قطعه فیزیکی مثل کش یا هسته نیست. ISA تعیین میکند که تمام ابعاد مختلف یک پردازنده باید چطور کار کنند. این دستورالعملها شامل چیزهایی که پردازنده میتواند پردازش کند، چگونگی فرمت شدن دادههای ورودی و خروجی، چگونگی تعامل حافظه با رم و موارد مشابه میشوند. یا میتوانیم جوری دیگر بگوییم: یک ISA مجموعهای از مشخصههای گوناگون است و پردازنده هم شکلی فیزیکی از همان مشخصهها. ISA نقشهای است که کارکرد اجزای مختلف پردازنده را تعیین میکند.
معماریهای مجموعه دستورالعمل به تعیین ابعاد هر تکه از داده میپردازند و اکثر پردازندههای مدرن به استفاده از مدل ۶۴ بیتی میپردازند. درحالی که تمام پردازندهها در حالت به کلی سه وظیفهی خواندن دستورالعملها، اجرای دستورالعملها و بهروزرسانی وضعیت خود براساس نتیجه عملیات میپردازند، مجموعه دستورالعملهای گوناگون میتوانند هرکدام از این گامها را به زیرمجموعههایی خردتر تقسیم کنند.
یک معماری مجموعه دستورالعمل پیچیده مانند x86 معمولا این پروسه را تبدیل به چند دوجین عملیات کوچکتر میکند تا خروجی پردازنده بهبود یابد. وظایفی نظیر پیشبینی دستورالعملهای شرطی و همینطور پیشتنظیم قطعات داده آتی هم توسط ISA تعیین و اجرایی میشوند.
علاوه بر معنابخشی به ریزمعماری یک پردازنده، یک ISA به تعیین مجموعهای از دستورالعملها میپردازند که پردازنده قادر به رسیدگی به آنها خواهد بود. دستورالعملها کارهایی هستند که پردازنده در هر سیکل به آنها رسیدگی میکند و توسط یک کامپایلر تولید میشوند. انواع مختلفی از دستورالعملها وجود دارد که از جمله آنها میتوان به خواندن و نوشتن جافظه، عملیاتهای حسابی، عملیاتهای انشعابی/پرشی و چیزهایی از این دست اشاره کرد. یک مثال میتواند چنین چیزی باشد: «محتویات آدرس حافظه ۱ را به محتویات آدرس حافظه ۲ اضافه کند و نتیجه را در آدرس حافظه ۳ ذخیره کن».
هر دستورالعمل معمولا طولی ۳۲ بیتی یا ۶۴ بیتی دارد و حوزههای گوناگونی را در بر میگیرد. مهمترین دستورالعمل opcode است که به پردازنده میگوید با کدام نوع از دستورالعملها روبهرو است. زمانی که پردازنده میداند باید در گام بعدی کدام دستورالعمل را اجرایی کند، داده مورد نیاز برای آن عملیات را جمعآوری میکند. لوکیشن و نوع داده نیز در بخش دیگری از opcode به اطلاع پردازنده میرسد.
RICS در برابر CISC
حالا که ایدهای کلی راجع به کارکردهای یک ISA داریم، بیایید به مرور این بپردازیم که اساس چه چیزی آرم را به یک شرکت منحصر به فرد تبدیل کرده.
برجستهترین بعد در کار شرکت آرم، معماری RISC (مخفف Reduced Instruction Set Computing) است، آن هم در حالی که x86 یک معماری CISC (مخفف Complex Instruction Set Computing) به حساب میآید. اینها دو نوع کاملا متفاوت از طراحی پردانده هستند و هردو نقاط ضعف و قوت خاص خود را دارند.
با معماری RISC، هر دستورالعمل وظیفه محول شده بر پردازنده را به صورت مستقیم و دقیق مشخص میکند و این دستورالعملها شکلی نسبتا ساده دارند. از طرف دیگر، دستورالعملها درون معماری CISC پیچیدهتر ظاهر میشوند و ایدهای گستردهتر را برای پردازنده متصور میشوند.
این یعنی یک پردازنده CISC معمولا هر دستورالعمل را به مجموعهای از عملیاتهای خرد تقسیم میکند. معماری CISC میتواند جزییات بسیار بیشتری را درون یک دستورالعمل واحد انکد کند و بنابراین پرفورمنس نهایی به شکل قابل توجهی بهبود مییابد. به عنوان مثال یک معماری RISC ممکن تنها یک یا دو دستورالعمل «افزودن - Add» داشته باشد اما شمار این نوع از دستورالعملها در معماری CISC به بیش از ۲۰ مورد برای انواع داده و پارامترهای محاسبه میرسد.
با استفاده از تمثیل ساختمانسازی میتوانیم طوری دیگر به موضوع نگاه کنیم. در یک سیستم RISC، شما صرفا یک چکش و اره ساده در اختیار دارید. اما درون یک سیستم CISC شما به انبوهی از چکشها، ارهها و دریلهای گوناگون دسترسی دارید. کارگری که از سیستم مشابه به CISC پیروی میکند قادر به انجام کارهای بیشتری خواهد بود، چرا که ابزارهای پیچیدهتر و قدرتمندتری در اختیار دارد. کارگر سیستم RISC همچنان قادر به انجام همان کارها خواهد بود، اما به خاطر سادگی ابزارها و توانمندی کمترشان، نیازمند زمان بیشتری خواهد بود.
حالا ممکن است از خودتان بپرسید که «اگر سیستم CISC اینقدر قدرتمندتر است، چرا اصلا کسی باید از سیستم RISC استفاده کند؟». اما پرفورمنس خالص تنها فاکتوری نیست که باید مد نظر داشت. در سیستم ساختمانسازی CISC نیازمند استخدام چندین کارگر اضافه خواهید بود، زیرا هر ابزار نیازمند مجموعهای از مهارتهای خاص است. بدین ترتیب مقر ساختمانسازی شکلی بسیار پیچیدهتر به خود گرفته و نیازمند انبوهی برنامهریزی و ساماندهی خواهد بود. علاوه بر این، رسیدگی به تمام ابزارها هزینه بیشتری به وجود میآورد، زیرا هرکدام را باید برای نوع خاصی از مواد به کار گرفت. دوست RISC ما نیاز به رسیدگی به چنین دغدغههایی ندارد، زیرا ابزارهای سادهاش با هرچیزی سازگاری دارند.
طراح ساختمان حالا باید راجع به چگونگی ساخت بنا تصمیمگیری کند. یا میتوان نقشهای ساده برای کارگر RISC فراهم آورد یا اینکه میتوان به کمک کارگران CISC، برنامههایی جاهطلبانهتر و پیچیدهتر چید. ایده اولیه و محصول نهایی یکسان خواهد بود، تنها کار میانی است که تفاوت ایجاد میکند.
نیاز به قدرت کمتر!
بیایید دوباره به سراغ آرم برویم. اگر در حال متصل کردن نقاط مختلف این مقاله به یکدیگر بوده باشید، احتمالا تا حالا حدس زدهاید که چرا آرم شدیدا مورد استقبال طراحان سیستمهای موبایل قرار میگیرد. نکته کلیدی در اینجا، بهینگی است.
در سناریوی یک دیوایس موبایل، بهینگی در مصرف انرژی به مراتب مهمتر از پرفورمنس خالص است. تقریبا در تمام دفعات، یک طراحی سیستم اگر از صرفهجویی در مصرف انرژی اطمینان داشته باشد، به کاهش پرفورمنس تن میدهد. تا زمانی که تکنولوژی باتری پیشرفت نکند، مصرف برق و تولید حرارت اصلیترین فاکتورهای محدودکننده در روند طراحی یک محصول موبایل به حساب خواهند آمد.
به همین خاطر نه چیپهای آرم را روی دسکتاپ میبینیم و نه چیپهای x86 را روی موبایل. هیچکدام از اینها برای استفاده در حالت دیگر طراحی نشدهاند. چرا آرم توانسته به چنین حدی از بهینگی در مصرف انرژی دست پیدا کند؟ همهچیز به طراحی RISC و پیچیدگی معماری بازمیگردد. از آنجایی که نیازی به پردازش انواع مختلفی از دستورالعملها وجود ندارد، معماری داخلی میتواند به مراتب سادهتر باشد. ضمنا در مدیریت یک پردازنده RISC، با پردازش سربار کمتری سر و کله میزنید.
تمام اینها مستقیما به کاهش مصرف انرژی منتهی میشوند. طراحی سادهتر به این معناست که ترانزیستورهای بیشتری مستقیما در پرفورمنس دخیل میشوند و تعداد ترانزیستورهایی که به دیگر ابعاد معماری رسیدگی می:نند کاهش مییابد. بنابراین یک چیپست آرم نمیتواند دستورالعملهای مشخص را به سرعت چیپ x86 به انجام برساند، اما این کمبود را با بهینگیاش جبران میکند.
به دوست کوچکم سلام کن
یکی دیگر از ویژگیهای کلیدی و مهمی که آرم با خود به صحنه آورده، معماری پردازش ناهمگون big.LITTLE است. این نوع از طراحی شامل دو پردازنده مکمل در یک چیپ میشود. یکی از آنها هستهای با مصرف انرژی بسیار کم خواهد بود و دیگری یک هسته بسیار قدرتمندتر است. چیپ سپس مصرف سیستم را تحلیل کرده و تصمیم میگیرد که کدام هسته باید فعال شود. در سناریوهای دیگر، کامپایلر اگر بداند که یک وظیفه پردازشی سنگین در راه است، میتواند به چیپ بگوید که هسته قدرتمندتر را به کار بیندازد.
اگر دستگاه در حالت آماده به کار باشد یا پردازشی بسیار ابتدایی انجام دهد، هسته کممصرف (LITTLE) روشن میشود و هسته قدرتمند (big) خاموش. آرم میگوید این کار میتواند به کاهش ۷۵ درصدی مصرف انرژی منجر شود. اگرچه پردازندههای سنتی دسکتاپ هم هنگام پردازشهای سبک انرژی کمتری مصرف میکنند، اما برخی قطعات خاص هیچوقت خاموش نمیشوند. از آنجایی که آرم قابلیت خاموش کردن یک هسته را دارد، مشخصا میتواند پرفورمنسی بهتر از رقبا ارائه کند.
در هر گام از پروسه طراحی پردازنده، همواره چیزهایی وجود دارد که باید از خیرشان بگذرید. آرم به صورت تمام و کمال به سراغ معماری RISC رفت و نتیجهاش را هم گرفت. در سال ۲۰۱۰، آنها سهمی ۹۵ درصدی از پردازندههای موبایل داشتند. این رقم اکنون به خاطر ورود برخی شرکتهای رقیب به بازار کاهش یافته، اما هنوز هیچکس به سهم آرم از بازار نزدیک هم نشده است.
فروش لایسنس و استفاده گسترده
رویکردی که آرم در قبال تجارت فروش لایسنس خود در پیش گرفته یکی دیگر از دلایل برتریاش در بازار است. ساخت چیپهای فیزیکی کاری بسیار دشوار و هزینهبر است، بنابراین آرم از این حوزه بیرون مانده. این باعث میشود محصولات آنها انعطافپذیرتر و قابل شخصیسازیتر باشند.
بسته به موارد استفاده، کسی که لایسنس را خریده میتواند قابلیتهای مد نظرش را انتخاب کرده و بعد از آرم بخواهد که بهترین چیپ ممکن را برایش بسازد. مصرفکنندگان هم میتوانند چیپهای مخصوص خود را بسازند و تنها برخی از مجموعه دستورالعملهای آرم را در آن تعبیه کنند. لیست شرکتهایی که از معماری آرم استفاده میکنند بیشتر از آن است که در این لیست بگنجد اما برخی از آنها به شرح زیر است: اپل، انویدیا، سامسونگ، ایامدی، براودکام، فوجیتسو، آمازون، هواوی و کوالکام همگی تا حدود مشخصی از تکنولوژی آرم بهره میگیرند.
فراتر از قوترسانی به اسمارتفونها (که در واقع کامپیوترهای دستی هستند)، مایکروسافت از معماری آرم روی دیوایسهای سرفیس و دیگر دستگاههای کموزن خود استفاده کرده است. اگرچه این استراتژی در نهایت آنقدرها هم شگفتانگیز نبود و نتوانست سیستم عامل ویندوز ۱۰ را به نقاط برجسته برساند، اما از آن زمان شاهد چند محصول واقعا عالی از مایکروسافت، مانند سرفیس پرو ایکس بودهایم. اپل هم اخیرا تایید کرد که macOS را به پلتفرم آرم میآورد تا در تئوری لپتاپهایی با بهینگی موبایلهای هوشمند داشته باشیم.
برای سالیان متمادی، وعده آرم حتی برای دیتاسنترها هم کاهش مصرف انرژی بوده است - فاکتوری مهم وقتی در حال صحبت از استفاده از هزاران هزاران سرور در محیطی سربسته باشیم. البته اخیرا شاهد استفاده از پردازش در ابعاد وسیع بودهایم که قرار است هم مصرف انرژی و هم پرفورمنس را نسبت به راهکارهای پیشنهادی اینتل و ایامدی بهبود بخشد. و اگر روراست باشیم، هیچکس انتظار نداشت که به این زودی بتوانیم به چنین نقطه تعادلی میان پرفورمنس و بهینگی برسیم.
آرم اکوسیستمی عظیم از مالکیتهای معنوی (IP) مکمل نیز به وجود آورده که میتوانند روی معماریاش اجرا شوند. از جمله این مکملها میتوان به شتابدهندهها، انکودرها و دیکودرها و پردازندههای مدیا اشاره کرد و مشتریان میتوانند حقوق استفاده از تمام اینها در محصولاتشان را خریداری کنند.
آرم ضمنا معماری منتخب بسیاری از دیوایسهای اینترنت اشیا است. آمازون اکو و گوگل هوم مینی هردو به پردازندههای کورتکس آرم مجهز شدهاند. این طراحی پردازنده آنقدر استاندارد شده که واقعا هیچ دلیل خوبی برای عدم استفاده از پردازنده آرم به هنگام طراحی دیوایسهای الکترونیکی و موبایل ندارید.
تمام اینها در یک چیپ؟
افزون بر تجارت اصلی آرم که بر ISA متکی است، این شرکت وارد فضای سیستم بر چیپ (SoC) نیز شده است. بازار پردازش موبایل برای سالیان متمادی در حال حرکت به سمت طراحیهای یکپارچه بوده. یک پردازنده و یک سیستم بر چیپ شباهتهای زیادی به یکدیگر دارند، اما سیستم بر چیپ در واقع نسل بعدی پردازش موبایل به حساب میآید.
یک سیستم بر چیپ دقیقا همان کاری را میکند که از نامش برمیآید. بسیاری از قطعات سختافزاری مختلف درون یک چیپ واحد قرار میگیرند تا بهینگی افزایش یابد. میتوانید اینطور به موضوع نگاه کنید که انگار مادربرد یک دسکتاپ کامل آب رفته و تبدیل به چیپی واحد شده که سیستم بر چیپ نامیده میشود.
این قطعه معمولا شامل پردازنده، پردازشگر گرافیکی، حافظه، کنترلرهای جانبی، مدیریت انرژی، شبکهسازی و چند شتابدهنده میشود. قبل از جا افتادن این طراحی، سیستمها نیازمند یک چیپ جداگانه برای هرکدام از این قطعات بودند. از آنجایی که در این حالت سرعت ارتباط میان چیپها میتواند بین ۱۰ الی ۱۰۰ برابر کندتر باشد، تعجبی ندارد که بازار موبایل مفهوم جدید را خیلی سریع در آغوش کشید.
اما همانطور که مشخص شده، سیستمهای بر چیپ برای انواع سیستمها مناسب تلقی نمیشوند. شما هیچوقت شاهد استفاده از سیستم بر چیپ در لپتاپها یا دسکتاپهای عمومی نخواهید بود، چون محدودیتهایی جدی در این زمینه وجود دارد که چقدر قطعه سختافزاری را میتوان در یک چیپ جای داد. هیچ راهی وجود ندارد که بتوانید یک پردازشگر گرافیکی مجزا، حجم زیادی از حافظه رم و نقاط اتصال لازم را درون چیپی واحد جای دهید. درست مانند طیف RISC، سیستمهای بر چیپ برای طراحیهای کممصرف مناسب هستند و در سیستمهایی که پرفورمنس بالا دارند مشکل ایجاد میکنند.
تا اینجای کار امیدواریم که درکی دقیق از چرایی برتری آرم در بازار پردازنده موبایل به دست آورده باشید. مدل RISC ISA به آنها اجازه داده که لایسنس نقشههای ساخت چیپهای مختلف را به تولیدکنندگان بفروشند. با در پیشگیری این مدل، آنها بهینگی مصرف انرژی را در اولویتی بسیار بالاتر نسبت به پرفورمنس قرار دادهاند. وقتی به دنیای پردازش موبایل میرویم، قواعد بازی اینگونه است و آرم هم به درجه استادی رسیده.
برای گفتگو با کاربران ثبت نام کنید یا وارد حساب کاربری خود شوید.