بررسی عمیق هستههای ریز و درشت Exynos 5 Octa سامسونگ بر بستر معماری big.LITTLE آرم
با معرفی Exynos 5 Octa سامسونگ، بعد از قدرتنمایی Tegra 4 و اسنپ دراگون سری 800 در نمایشگاه CES 2013، توجه منتقدان و کارشناسان به آینده چیپهای پردازشی در سال 2013 بیش از گذشته جلب شد. چیپ جدید سامسونگ که با وعده استفاده از 8 هسته و مصرف انرژی بسیار کمتر با نام Octa معرفی گردید، از تکنولوژی big.LITTLE شرکت ARM Holdings استفاده میکند.
پیش از ادامه این مطلب به شما پیشنهاد میکنیم حتماً مقاله «معماری ARM چیست؟ چه تفاوتی با x86 اینتل دارد؟» را مطالعه کنید تا درک بهتری از ARM و معماری انواع هستههای بیابید.
big.LITTLE به نوعی به معماری با پردازش ناهمگون اطلاق میگردد که توسط شرکت ARM Holdings و آنهم در سال 2011 به همراه هستههای پردازشی Cortex-A7 معرفی شد. در حقیقت ARM که از قبل Cortex-A15 خود را با بهترین عملکرد پردازشی معرفی کرده بود، تصمیم گرفت با طراحی هستههای فوق کم مصرف Cortex-A7 که بیشترین سازگاری با هسته Cortex-A15 را نیز دارند، معماری جدید خود با نام big.LITTLE که از هر دوی این هستهها استفاده میکند را به رخ بکشاند. یکهتاز طراحی نوین پردازندهها، بعد از آن در سال 2012 از هستههای 64 بیتی جدید خود با نامهای Cortex-A53 و Cortex-A57 رونمایی کرد که این پردازندهها نیز قادرند با معماری پردازش ناهمگون big.LITTLE در کنار یکدیگر پردازش سیستم را انجام دهند.
قبل از آنکه به جزییات معماری پردازش ناهمگون big.LITTLE بپردازیم بهتر است نیم نگاهی به خصوصیات هستههای Cortex-A7 و Cortex-A15 داشته باشیم:
ARM Cortex-A15
هسته پردازشی Cortex-A15 با معماری 32 بیتی ARM v7A و برای استفاده در وسایل ردهبالا با توان پردازشی زیاد طراحی شده است. علاوه بر آنکه این هسته دارای توان پردازشی بسیار بالایی است، از نظر مصرف انرژی نیز با جدیدترین متدها بهینه شده است. از جمله خصوصیات بارز این هسته پردازشی، level-2 cache یا سطح دوم کش با سایز حداکثر 4 مگابایت و توان آدرسدهی 1 ترابایت حافظه فیزیکی است. این هسته پرقدرت و کم مصرف میتواند نیاز سرورها و ابزارآلات شبکه را بهراحتی برآورده کنند.
هستههای Cortex-A15 که در Tegra 4 انویدیا، Exynos 5 سامسونگ و با قدری تغییر در چیپهای S4 و سری 800 کوالکام، مورد استفاده قرار میگیرد نزدیک به دو برابر توان پردازشی بیشتر نسبت به هستههای Cortex-A9 دارد که در پردازندههای Tegra 3، Exynos 4 سامسونگ و... مورد استفاده قرار گرفته بود. این هسته همچنین نسبت به Cortex-A8 که هنوز هم در بسیاری از چیپهای پردازشی دیده میشود، نزدیک به پنج برابر عملکرد پردازشی بهتری دارد.
یکی از خصوصیات بارز Cortex-A15 قابلیت کار در فرکانس 2.5 گیگاهرتز است که میتواند عملکردی همانند عملکرد پردازندههای لپتاپهای کنونی را به ارمغان آورد.
ARM Cortex-A7
هسته پردازشی Cortex-A7 با معماری 32 بیتی ARM v7A و برای استفاده در وسایل میانرده طراحی شده است. این هسته بیشترین بازده ( عملکرد پردازشی نسبت به توان مصرفی) را در مقایسه با دیگر طراحیهای ARM دارد و بهقولی پرچمدار کممصرترین هستههای طراحی شده این شرکت است که میتواند در آینده در بسیاری از گوشیهای هوشمند، تبلتها و دیگر ابزارهای موبایل بهکار رود. یک هسته Cortex-A7 نسبت به دیگر طراحیها، با 60 درصد مصرف انرژی کمتر میتواند 20 درصد توان پردازشی بیشتر دراختیار قرار دهد.
برای مثال هستهی کم مصرف Cortex-A7 با اینکه 50 درصد عملکرد پردازشی بهتری در مقایسه با Cortex-A8 دارد ولی در عین حال 5 برابر انرژی کمتری نیز مصرف میکند و جالب اینکه از نظر ابعاد، 5 برابر کوچکتر از هم خانواده خود نیز هست. شکل زیر به درستی این دو هسته را از نظر عملکرد و توان مصرفی مقایسه میکند.
ARM Cortex-A7 کاملاً با دیگر هستههای Cortex-A سازگاری دارد. بهطور ویژه Cortex-A7 از تمام ویژگیهای بارز Cortex-A15 مثل آدرسدهی فیزیکی با سایز زیاد و... برخوردار است و میتواند به خوبی با این هسته پر قدرت منطبق شود. این سازگاری باعث شده است که بتوان از این هسته فوقالعاده کم مصرف و مدرن در کنار هسته پر توان Cortex-A15 و تحت معماری big.LITTLE استفاده کرد و بدین ترتیب نوعی جدید از پردازش موبایل به صحنه رقابت وارد شود.
پس در معماری big.LITTLE که توسط خود ARM طراحی شده، یک مجموعه هسته فوقالعاده کم مصرف و مؤثر Cortex-A7 در کنار یک مجموعه هسته قدرتمند و مناسب Cortex-A15 قرار میگیرد، تا در زمانی که نیاز به پردازش سنگین نیست سکان امور به هستههای A7 سپرده شود هر زمان که نیاز به پردازش سنگین بود سیستم بصورت خودکار روی هستههای پرقدرت A15 سوئیچ کند. بدینترتیب طول عمر باتری تا 70 درصد افزایش مییابد.
هستههای پردازشی Cortex-A7 و Cortex-A15
کمپانی معظم ARM تلاش کرده است تا هستههای پردازشی Cortex-A7 و Cortex-A15 از نظر ویژگیها و امکانات مشابه یکدیگر طراحی شوند. اما همانطورکه در بالا اشاره شد Cortex-A15 از نظر توان پردازشی در سطح بالاتری نسبت به Cortex-A7 قرار دارد درحالیکه از نظر بازده و توان مصرفی از برادر خود پایینتر است. برای درک چرایی این عملکرد متفاوت، بهتر است به نکات و شکلهای زیر نگاهی داشته باشیم:
ابتدا با مفهوم خط لوله یا pipeline آشنا میشویم:
برای اجرای دستورالعملها در پردازنده معمولاً هر دستور در یک سیکل پردازش میشود. یعنی در یک سیکل، فقط یک دستورالعمل در مسیر داده حرکت میکند. بعد از آن ایدهی pipeline (خط لوله) برای کارایی بیشتر پردازنده ارائه شد. روش اول، معادل آن است که هر دستور، تنها در یک سیکل پردازش شود و ازآنجاکه در یک سیکل، دادهها از عناصر موجود در مسیر داده تنها یک بار میگذرند پس در قسمتی از سیکل، بعضی عناصر داده بی مصرف میمانند. استفاده از روش دوم معادل آن است که در هر سیکل، علاوه بر آنکه یک دستور، اجرا شده و در طول سیکل، از مسیر داده عبور میکند، بهدنبال آن بقیه دستورها وارد مسیر داده شوند که در این صورت، در یک سیکل، تعداد بیشتری از عناصر داده، استفاده میشوند و درنتیجه، سرعت و کارآیی بهبود مییابند. پس pipeline، مجموعهای از عناصر(مراحل) پردازش داده است که بهصورت سری به یکدیگر متصلند و ورودی هر عنصر، خروجی عنصر قبلی است. در تکنیک pipeline، چند دستور میتوانند در یک زمان اجرا شوند. یعنی دستورها از لحاظ زمان اجرا دارای همپوشانی هستند.
مصرف انرژی در طول اجرای یک دستورالعمل تا حد زیادی متناسب است با تعداد stages pipeline هایی است که باید از آن گذر شود و با عنایت به اینکه طول این pipelineها در Cortex-A7 و Cortex-A15 تفاوت دارد، مصرف انرژی هستههای پردازشی این دو طراحی مشابه نخواهد بود. شکلهای زیر خط لولههای اجرای دستور را در Cortex-A7 و Cortex-A15 نشان میدهند.
تا به اینجا متوجه شدیم که خط لولههای Cortex-A15 دارای طول بیشتر بوده و درنتیجه انرژی بیشتری نسبت به Cortex-A7 مصرف میکنند.
بهطور کلی در میکرو معماری این دو هسته، تفاوتهای اساسی وجود دارد. Cortex-A15 تلاش دارد با مصرف انرژی بیشتری به کارایی بیشتر برسد، بدان معنا که مصرف انرژی را فدای کارایی بیشتر میکند ولی در مورد Cortex-A7 برعکس این کار انجام شده، یعنی که کارایی بیشتر فدای مصرف انرژی پایینتر میشود. همانطورکه دیده میشود این دو هسته یک عمل بده بستان بین مصرف انرژی و کارایی پردازشی انجام میدهند که با کنار هم گذاشتن آنها میتوان یک طراحی مکمل و بهینهای ارایه داد. در این میکرو معماری میتوان با به اشتراک گذاشتن دسترسی به حافظه، بین این دو هسته یک بده بستان مناسبی میان مصرف انرژی و توان پردازشی ایجاد کرد و در نهایت به یک طراحی با ساختار کنترلر کش یکپارچه برای این دو هسته در کنار هم رسید.
جدول زیر به خوبی تفاوت میان عملکرد (Performance) و مصرف انرژی بین این دو هسته را در چندین نوع بنچمارک نشان میدهد. ستون اول نشاندهنده برتری عملکرد پردازشی Cortex-A15 نسبت به Cortex-A7 است و ستون دوم حاکی از برتری بازدهی ( نسبت عملکرد به توان مصرفی) Cortex-A7 دربرابر Cortex-A15 است. برای مثال در بنچمارک Dhrystone در سطر اول، Cortex-A15 توانسته است 1.9 برابر از نظر عملکرد و کارایی پردازشی بهتر از Cortex-A7 عمل کند، اما ازآنجاکه Cortex-A7 بیشترین بازدهی را در میان تمامی برادران خود دارد، توانسته است در بنچمارک اول نزدیک به 3.5 برابر بازدهی بالاتری کسب کند. ستون اول که فقط حاکی از توان پردازشی است به خوبی برتری Cortex-A15 را در تمامی بنچمارکها نشان میدهد. ستون دوم علاوه بر توان پردازشی، مصرف انرژی را نیز در نظر گرفته و بازدهی هسته پردازشی را براساس هر دوی آنها میسنجد که در این بخش Cortex-A7 در یک توان پردازشی ثابت توانسته است انرژی کمتری در تمامی بنچمارکها نسبت به Cortex-A15 مصرف کند.
هستههای ریز و درشت آرم زیر دندان Exynos 5 Octa سامسونگ
معماری پردازش ناهمگون big.LITTLE
یکی از چالشهایی که پردازندههای کنونی با آن مواجه هستند بالا بردن توان پردازشی با کمترین میزان مصرف انرژی است. کوالکام که براساس معماریهای ARM هستههای مورد نیاز پردازندهها را خود طراحی میکند تلاش کرده است با تغییر ولتاژ و فرکانس کاری هستههای پردازندههایش در زمان کم کاری، توان مصرفی آنها را کاهش دهد و بدین ترتیب طراحی کم مصرف و متمایزی از دیگر رقبا ارایه دهد. هر چند که در این زمینه موفقیتهای بیشماری در هستههای Krait کسب کرده است اما به دلیل پیچیدگی ساختار پردازنده امکان پایین آوردن مصرف انرژی تا حد زیادی فراهم نبوده است. چراکه کوالکام برای پردازندههای اسنپ دراگون S4 خود مجبور است برای رقابت با دیگر پرچمداران از هستههای پرتوان استفاده کند و همانطورکه قبلا گفته شد بالابردن توان پردازشی مستلزم پیچیده شدن طراحی و افزایش بیشتر مصرف انرژی میشود. حال هرآنقدر که فرکانس کاری و ولتاژ پردازنده به نسبت بار کاهش یابد بازهم پیچیدگی ساختار همانند قبل است. انویدیا در چیپ تگرا 3 خود راه چارهای دیگر اندیشید. انویدیا با اضافه کردن یک هسته پردازشی کم مصرف در کنار چهار هسته پردازشی پرتوان پرمصرف چارهبهتری برای پایین آوردن مصرف چیپ متناسب با بار روی دوش آن اندیشید. در نهایت ARM همزمان با معرفی هستههای فوق کم مصرف خود با نام Cortex-A7 و تطابق ویژگیهای اساسی آن با هستههای Cortex-A15 ادامه راه انویدیا را با طرحی جامعتر به نام big.LITTLE کامل کرد.
در معماری big.LITTLE، هستههای Cortex-A7 و Cortex-A53 با بازدهی بسیار بالا میتوانند در کنار هستههای پرقدرت Cortex-A15 و Cortex-A57 قرار گیرند و بدین ترتیب به واحد نرمافزاری اجازه داده میشود که براساس سنگینی کار با سوییچ کردن میان آنها نسبت درستی از عملکرد بالا و توان مصرفی را به ارمغان آورد. به گفته آرم استفاده از این تکنولوژی منجر به افزایش 70 درصدی طول عمر باتری دستگاه میشود. در این طراحی اگر هر وظیفه به درستی به هستهها انتقال داده شود چالش افزایش کارایی در کنار کاهش توان مصرفی بهطور محسوسی حل خواهد شد.
یکی از اجزای اصلی این معماری پیوستگی CCI-400 - Cache coherent interconnect است که وظیفه آسان سازی ارتباط میان Cortex-A7 و Cortex-A15 را همانند شکل زیر فراهم میکند.
یکی دیگر از اجزای بنیادین این معماری مربوط به کنترلرمشترک وقفهها میان این دو هسته با نام GIC-400 است. این کنترلر میتواند 480 وقفه را میان این دو هسته توزیع کند. برنامه این کنترلر اجازه میدهد تا وقفهها از هستههای Cortex-A7 به Cortex-A15 یا بالعکس مهاجرت کنند.
مدل انتقال وظیفهها میان هستهها در big.LITTLE
در big.LITTLE علاوه بر اینکه به سیستم عامل اجازه داده میشود تا ولتاژ و فرکانس کاری هستهها را براساس بار، کم یا زیاد کند، امکان سوییچ کردن میان هستههای کم مصرف و هستههای پرتوان نیز فراهم شده است. بدین وسیله کارهای سبک و متوسط نظیر اجرای پشت زمینه سیستم عامل، رابط کاربری و برنامههای سبک توسط هستههای پردازشی فوق کم مصرف Cortex-A7 انجام میپذیرد و کارهای سنگینتری همانند برنامههای سنگین، بازیها و مالتی تسکینگ واقعی بر دوش هستههای Cortex-A15 قرار داده میشود. همانطورکه در شکل زیر مشاهده میشود کارهای سبک با تغییر ولتاژ و فرکانس توسط Cortex-A7 صورت میپذیرد ولی این عمل تا آستانهای انجام میپذیرد که از این آستانه به بعد با دستور سیستم عامل تمامی کارها به هستههای Cortex-A15 سپرده میشود. در شکل واضح است که با سوییچ از Cortex-A7 به سمت Cortex-A15، توان پردازشی بهشدت بالا میرود در عین حالی که مصرف انرژی نیز زیاد میشود.
یکی از مهمترین نکاتی که باید در طراحی big.LITTLE در نظر گرفته شود مدت زمانی است که طول میکشد تا وظایف از روی دوش Cortex-A7 به Cortex-A15 منتقل شود. اگر این مدت زمان از حدی بیشتر شود کاملاً توسط کاربر حس شده و عملا عملکرد معماری زیر سؤال میرود. بنابراین طراحی به شکلی انجام میگیرد تا این سوییچ در کمتر از 20 میکروثانیه در هستههایی با فرکانس 1 گیگاهرتز صورت گیرد.
علاوه بر طرحی که در سطور بالا به آن اشاره شد، در معماری دیگری با نام big.LITTLE MP، امکان انجام دستورالعملهای پردازشی بهطور همزمان توسط تمامی هستههای نیز ایجاد شده است. در این طرح اگر نیازی به پردازش سنگین نباشد، فقط هستههای Cortex-A7 کارهای پردازشی را صورت میدهند اما اگر نیاز به پردازش سنگین توسط سیستم عامل حس شود، هستههای Cortex-A15 نیز وارد گود شده و همزمان با هستههای Cortex-A7 به انجام وظایف محوله میپردازند.
Exynos 5 Octa سامسونگ
سامسونگ برای اولین بار از هستههای Cortex-A15 در تبلت مشترک خود با گوگل بهنام نکسوس 10 و تحت چیپ Exynos 5250 استفاده کرد. این چیپ با لیتوگرافی 32 نانومتری و استفاده از دو هستهی Cortex-A15 با فرکانس 1.7 گیگاهرتز به همراه GPU مدل Mali-T604 قلب تپنده نکسوس 10 را تشکیل میدهد. سامسونگ قبلا در چیپ مشهور خود با نام exynos 4412 که در گلکسی اس تری و گلکسی نوت 2 استفاده شده بود، از چهار هسته Cortex-A9 به همراه GPU مدل Mali-T400 بهره برده بود.
بعد از معرفی چیپ دو هستهای Exynos 5250، همگان منتظر پردهبرداری از Galaxy S4 به همراه چیپ چهار هستهای Cortex-A15 با نام exynos 5440 بودند که معرفی Exynos 5 Octa هشت هستهای شک و شبهات را در مورد قلب Galaxy S4 بیش از گذشته کرد.
سامسونگ در معرفی Exynos 5 Octa دست روی نکات درست و مثبتی گذاشت. این شرکت ابتدا به نیاز اساسی دوستداران وسایل قابل حمل یعنی مالتی تسکینگ واقعی پرداخت و قدرت چیپ خود را در این زمینه به رخ دیگر رقبا کشاند. از طرف دیگر بدون نام بردن ازمدل GPU ، قدرت گرافیکی چیپ خود را دو برابر بالاتر از بهترین چیپ کنونی بازار یعنی A6X دانست. با اینکه به نظر میرسد GPU های سری ششم Mali تا این حد توانایی نخواهند داشت، سایت Anandtech گزارش کرده است که طبق شنیدههایش سامسونگ در نظر دارد تا از GPU های موفق PowerVR SGX تولیدی شرکت Imagination Technologies که در چیپهای محصولات اپل نیز استفاده میشود، کمک بگیرد.
همانگونه که توضیح داده شد Exynos 5 Octa با چهار هسته Cortex-A15 در کنار چهار هسته Cortex-A7 و به یاری معماری big.LITTLE شرکت ARM و با لیتوگرافی 28 نانومتری تولید میشود که میتواند نزدیک به 70 درصد به طول عمر باتری وسایل همراه بیفزاید. عملا در این چیپ، قرار نیست که هر 8 هسته همزمان دستورالعملها را اجرا کنند ولی در کنار یکدیگر چالش بزرگ عملکرد در کنار کاهش توان مصرفی را تا حدی آسان میسازند. اینکه چرا سامسونگ از سال 2011 تاکنون از هستهها و معماری قدیمی ARM استفاده کرده است و نزدیک به یک سال و نیم از زمان معرفی big.LITTLE تاکنون تأخیر داشته است دلایل متعدد و منطقی زیادی دارد که از حوصله بحث خارج است.
البته ایرادی که به معماری big.LITTLE وارد است نیز حایز اهمیت است. 8 هسته پردازشی میتواند چیپ را از نظر سایز بزرگ کند که عملا کار طراحی گوشی هوشمند را با چالش جدید مواجه میکند. یکی از راههای چاره استفاده از لیتوگرای 22 نانومتری است که بهکار گیری این لیتوگرافی کار آسانی نخواهد بود. احتمال آن وجود دارد که سامسونگ تصمیم بگیرد برای مدتی از Exynos 5 Oct فقط در تبلتهای آینده خود استفاده کند تا با رسیدن به لیتوگرافیهای کوچکتر، از آن در گوشی هوشمندهای آینده خود نیز بهرهبرداری کند.
بر خلاف تفکر بسیاری از کاربران 8 هسته پردازشی Exynos 5 Octa به هیچ عنوان بازی سامسونگ با اعداد و ارقام نیست، بلکه این چیپ حاصل یک نوع معماری پیشرفته از سوی شرکت ARM است که میتواند به بسیاری از مشکلات کنونی پردازندهها جواب مناسبی دهد. همانند سامسونگ شرکتهای دیگر نیز میتوانند با خرید گواهی استفاده از این معماری به تولید چیپهای مبتنی بر آن بپردازند.