زوميت / سامسونگ با ارايه اولين پردازنده مبتني بر معماري big.LITTLE آرم با نام Exynos 5 Octa 5410 آنطور که شايسته بود نتوانست پاسخگوي انتظارات طرفداران خود باشد. عليرغم قدرت پردازشي بالاي اين پردازنده، مشکلات مربوط به مصرف انرژي در آن مشهود بود. بدين جهت بسياري از معماري big.LITTLE نااميد گرديدند. در همين راستا سامسونگ تلاش کرده تا با شناسايي مشکلات نسل اول و بهينهسازيهاي لازم، نسل دوم اين سري از پردازندههاي اگزينوس را با نام Exynos 5420 و بطور بهينهتر روانه بازار کند. در ادامه متن به توضيح مشکلات نسل اول و چگونگي حل آنها بر اساس پتانسيلهاي معماري big.LITTLE ميپردازيم.
اولين پردازنده سامسونگ مبتني بر معماري big.LITTLE شرکت آرم با نام Exynos 5 Octa 5410 نتوانست انتظارات بسياري از طرفداران SOC هاي اين شرکت را برآورده کند. Exynos 5410 به عنوان قلب پردازشي گلکسي S4 در بعضي مدلهاي اين تلفن هوشمند مورد استفاده قرار گرفت. از نظر نتايج بنچمارک و عملکرد پردازشي اين SOC به يکي از قدرتمندترين SOCهاي بازار مبدل گرديد که اين امر به لطف قدرت پردازشي بالاي هستههاي بزرگ Cortex A15 و استفاده از پردازشگر گرافيکي مناسب شرکت Imagination Tech ميسر شد. اما از طرف ديگر اين SOC نتوانست از نظر بازدهي عملکرد يعني نسبت قدرت پردازشي به توان مصرفي شانه به شانه رقيب خود، اسنپ دراگون 600 عمل کند و بدين ترتيب انتقادات بسياري روانه سامسونگ گرديد.
البته منشا بسياري از انتقادات دقيقا خود معماري big.LITTLE شرکت آرم را نشانه گرفتند. از جمله اينکه بهباور تعدادي از کارشناسان هستههاي پردازشي A15 قابليت کارکرد با مصرف بهينه در گوشيهاي هوشمند را ندارند و معماري big.LITTLE نيز نميتواند آنطور که بايد، مصرف زياد انرژي اين هستهاي پرقدرت را مهار کند. در طرف ديگر تعداد ديگري از کارشناسان به بررسي علمي ضعفهاي Exynos 5410 پرداختند و بدين ترتيب عملکرد نامناسب نسل اول اين مدل از پردازندهاي سامسونگ را حاصل عدم به کارگيري تمام توان اين معماري جديد از طرف سامسونگ در اين محصول دانستند. از جمله ايراداتي که به Exynos 5410 توسط Anand از وبسايت Anandtech.com گرفته شد، عدم اجراي کامل اتصال دهنده منسجم حافظه کش يا Cache Coherent Interconnect - CCI-400 ميباشد.
اتصال دهنده منسجم حافظه کش (CCI-400)
در معماري big.LITTLE به دليل استفاده از هستههاي کوچک و بزرگ معمولا عمل مهاجرت بين هستهها بهطور مداوم انجام ميگيرد. در مهاجرت يک وظيفه بين هستهها، به هستهاي که قرار است روشن شود، نام هسته واردشونده و هستهاي که قرار است خاموش شود و وظيفه خود را به هسته واردشونده محول کند، نام هسته خارج شونده اطلاق ميشود. در مهاجرت ميان هستهها، هسته وارد شونده بايد تمامي حالات و اطلاعات رجيسترهايي که توسط هسته خارج شونده ذخيره شده است را بازيابي کند يا در معناي ديگر از آنها براي خود يک کپي بردارد.
معمولا ۲۰۰۰ دستور لازم است تا کل مجموعه عمليات مربوط به ذخيرهسازي- بازيابي اطلاعات بين دو هسته واردشونده و خارج شونده صورت پذيرد. بهدليل معماري يکسان هستههاي بزرگ و کوچک، اطلاعات رجيسترها بين هستهها بهصورت متناظر يک به يک منتقل شده و اطلاعات از رجيستر هسته کوچک به رجيستر متناظر با آن در هسته بزرگ منتقل ميشود. اين مجموعه عمليات به دليل وجود رابط منسجم حافظهها يعني CCI-400 بهدرستي صورت ميپذيرد و بدين ترتيب امکان مهاجرت سريع با کمترين وقفه ممکن را فراهم ميسازد. همچنين، اين رابط باعث ميشود که در عمليات انتقال اطلاعات رجيسترها نيازي به ياري گرفتن از حافظه نباشد و حداکثر سرعت ممکن فراهم گردد. اين رابط منسجم سرتاسر SOC کشيده ميشود که بنا بر ادعاي Anand بهنظر ميرسد در Exynos 5410، عمليات پيادهسازي آن بهصورت کامل صورت نپذيرفته است.
مهاجرت ميان هستههاي ريز و درشت
اما يکي ديگر از ايراداتي که به Exynos 5410 وارد شده است به نحوه مهاجرت ميان هستههاي ريز و درشت باز ميگردد. در کل سه نوع مهاجرت ميان هستههاي ريز و درشت در معماري big.LITTLE امکان پذير است که در شکل زير قابل مشاهده است.
در ادامه به توضيحاتي در مورد نحوه مهاجرتها ميپردازم.
مهاجرت بين خوشهها (Cluster Migration)
مهاجرت بين خوشهها بهعنوان پيشفرض در معماري big.LITTLE وجود دارد چرا که نيازي به تغيير در کرنلهاي سيستمعامل براي انجام درست آن نميباشد. در اين نوع از مهاجرت، سيستم عامل کل پردازنده را به عنوان دو هسته يا دو خوشه جدا در نظر ميگيرد که در يکي از خوشهها هستههاي کوچک يعني Cortex A7 قرار دارند و در خوشه ديگر هستههاي درشت يعني Cortex A15 قرار ميگيرد. در اين حالت بنا بر وظيفه محوله فقط خوشه اول يا خوشه دوم ميتواند فعال شود. مثلا اگر وظيفهاي سبک باشد خوشه اول ( تمامي چهار هسته A7) فعال شده و اگر وظيفه بهقدري سنگين شود که چهار هسته سبک قادر به پاسخگويي سريع نباشند، وظيفه محوله بهصورت کامل به خوشه دوم يعني چهار هسته بزرگ منتقل شده و هستههاي سبک خاموش ميشوند. لازم به ذکر است که در کل معماري big.LITTLE ولتاژ و فرکانس اعمالي به تمامي هستههاي مشابه ميباشد و اين برخلاف معماري استفاده شده در هستههاي Krait شرکت کوالکام ميباشد که به هر هسته فرکانس و ولتاژ مستقل داده ميشود. براي اطلاعات بيشتر در اين رابطه ميتوانيد به مقاله ايدههاي تأثيرگذار آرم و کوالکام براي کاهش مصرف انرژي در چيپهاي پردازشي مراجعه کنيد.
مهاجرت ميان هستههاي پردازشي (CPU Migration)
خيلي از مواقع پيش ميآيد که ميزان بار بر روي هستههاي يک خوشه متفاوت ميباشد. مثلا در خوشه اول که شامل چهار هسته سبک است، دو هسته اول با بيشترين بار مواجه هستند در حالي که به دو هسته ديگر فشاري وارد نميشود. در اين حالت بهدليل آنکه، ولتاژ و فرکانس ميان هستههاي يکسان اعمال ميشود، سيستم عامل مجبور ميشود که وظيفهها را از هستههاي سبک يا خوشه اول گرفته و به خوشه دوم واگذار کند. بدين ترتيب وظيفههاي نسبتا سبک توسط هستههاي بزرگ انجام ميشوند که موجب مصرف توان زيادي ميشود. بههمين دليل مهاجرت نوع دوم يا مهاجرت بين هستههاي پردازشي مطرح ميگردد.
در اين روش هر هسته کوچک با يک هسته بزرگ جفت ميشود. براي مثال در يک پردازشگر با چهار هسته کوچک و چهار هسته درشت، ۴ جفت تشکيل شده که هر جفت شامل يک هسته کوچک A7 و يک هسته درشت A15 ميباشد. سيستم عامل نيز در واقع اين چهار جفت را به عنوان چهار هسته پردازشي ميشناسد. در هر جفت که شامل يک هسته کوچک و يک هسته بزرگ است، تنها يکي از آنها در زمان ميتوانند فعال باشند و امکان فعاليت هر دو هسته در يک جفت ميسر نميباشد. نمونهاي از اين مدل مهاجرت را ميتوانيد در شکل زير که مربوط به يک پردازشگر با دو هسته سبک و دو هسته سنگين است مشاهده کنيد.
همانطور که از شکل ملاحظه ميشود يکي از هستههاي سبک A7 که توان تحمل وظيفه محوله را نداشته، وظيفه خود را به جفت خود در خوشه درشتها يعني يک هسته بزرگ A15 داده است ( Cpu 1 رنگ قرمز وظيفه خود را به جفت خود يعني Cpu 0 رنگ آبي داده است) در حالي که ديگر هسته خوشه سبکها يعني Cpu 0 قرمز رنگ همچنان به انجام وظيفه خود مشغول است و چون نيازي ديده نشده است، وظيفه خود را به جفت درشت واگذار نکرده است و جفت درشت خاموش است.
بهطور کلي در اين حالت ممکن است در آن واحد تعدادي هسته کوچک و تعدادي هسته درشت همزمان فعال باشند ولي اين تعداد از چهار در يک پردازنده با چهار هسته ريز و چهار هسته درشت بيشتر نخواهد شد. اينکه امکان فعاليت هستههاي ريز و درشت همزمان ميسر ميشود و لازم نيست همانند حالت اول ( مهاجرت خوشهاي ) فقط هستههاي درشت يا هستههاي کوچک فعال باشند، موجب بهينه شدن مصرف انرژي ميگردد. اين نوع از مهاجرت از نظر مصرف انرژي بهينهتر از مهاجرت نوع اول است. براي مثال اگر پردازنده Exynos 5410که شامل چهار هسته بزرگ A15 و چهار هسته کوچک A7 ميباشد را در نظر بگيريم، در روش مهاجرت ميان هستههاي پردازشي، هر هسته A7 با يک هسته A15 جفت ميشود و در کل ۴ جفت هسته شکل ميگيرد که در شکل دوم در سطور بالا قابل مشاهده است. اگر وظيفهاي نسبتا سبک يا در رنج متوسط به پردازنده اعمال شود پردازنده ميتواند براي مثال :
از جفت اول: هسته سبک
از جفت دوم: هسته سبک
از جفت سوم: هسته سنگين
از جفت چهارم : هسته سنگين
را بهکار بگيرد و بدين ترتيب تناسب خوبي ميان وظيفه محوله و توان مصرفي برقرار سازد. اما اگر از مهاجرت نوع اول استفاده ميکرد، سيستمعامل مجبور بود براي يک وظيفه نسبتا سبک تمامي چهار هسته سنگين را بهکارگيرد که موجب مصرف انرژي زيادي ميشد. يکي از ايرادات مهاجرت نوع دوم به لزوم تغيير در کرنل سيستم عامل يا اضافه کردن يک برنامه ويژه به سيستم عامل براي مديريت درست اين نوع مهاجرت ميباشد.
مهاجرت به روش مديريت ناهمگن heterogeneous scheduling تحت نام big.LITTLE MP
اگر اتصال دهنده منسجم حافظه کش، CCI-400 بهدرستي پيادهسازي گردد، امکان فعاليت همزمان و مديريت همزمان هر هشت هسته پردازشي فراهم ميگردد که اساس مهاجرت نوع سوم است. بدين ترتيب سيستم عامل هر يک از هستههاي را به عنوان يک هسته پردازشي شناخته و ميتواند آنها را بر اساس نياز بهصورت نامتقارن مديريت کند. مهاجرت نوع سوم شبيه به مهاجرت نوع دوم است با اين تفاوت که در مهاجرت نوع سوم امکان بهکارگيري هر هشت هسته بهصورت مجزا فراهم است در حالي که در نوع دوم فقط چهار هسته مي توانستند همزمان فعاليت داشته باشند.
براي مثال در پردازنده Exynos 5410 :
وظيفه سبک : تنها دو هسته A7 روشن و هر شش هسته ديگر خاموش
وظيفه نسبتا سبک: دو هسته A7 و دو هسته A15 روشن و چهار هسته ديگر خاموش
وظيفه سنگين: چهار هسته A7 و دو هسته A15 روشن و دو هسته ديگر خاموش
وظيفه خيلي سنگين: هر هشت هسته روشن
اين نوع مهاجرت حد اعلاي مصرف بهينه انرژي را در معماري big.LITTLE فراهم ميکند. در اين روش نيز همانند حالت قبل نياز به تغييراتي در کرنل سيستم عامل ميباشد.
پردازنده Exynos 5410 به رغم استفاده از هشت هسته، اما به دليل اجرا نکردن کامل CCI-400 و همچنين بسنده کردن به مهاجرت نوع اول نتوانست از نظر مصرف انرژي بهينه عمل کند. اما خوشبختانه بر اساس اطلاعات موثقي که Anand از ARM و سامسونگ بهدست آورده است تمامي اين ايرادات در Exynos 5420 برطرف خواهد شد. پردازنده Exynos 5420 با CCI-400 کامل و همچنين مهاجرت از نوع سوم، big.LITTLE MP، تا اواخر سال ۲۰۱۳ بهينه خواهد شد.
بدين ترتيب با توجه به عملکرد پردازشي که قبلا در Exynos 5410 مشاهده کرديم و بهلطف يهکارگيري گرافيک شش هستهاي Mali T-628، Exynos 5420 ميتواند تبديل به رقيبي جدي براي اسنپدراگون ۸۰۰ شود. Exynos 5420 قرار است در يک سري مدلهاي نوت۳ از جمله مدلي که وارد ايران ميشود بهکار گرفته شود که از اين جهت اهميت خاصي براي گيکها و مشتاقان ايراني خواهد داشت.
در انتها ميتوانيد چند ويديو مربوط به عملکرد پردازنده Exynos 5420 را بر روي دستگاهي با اندرويد ۴.۲.۲ و در حالت مهاجرت نوع سوم مشاهده کنيد:
مشاهده ويدئو 1
مشاهده ويدئو 2
مشاهده ويدئو 3