اگزینوس سامسونگ با قابلیت فعالیت همزمان هشت هسته به اوج باز میگردد
برای درک بهتر این مقاله توصیه میشود که ابتدا مقالههای زیر را مطالعه فرمایید:
- تفاوت بین CPU، GPU و APU چیست؟ هر کدام چه مأموریتی دارند؟
- بررسی عمیق هستههای ریز و درشت Exynos 5 Octa سامسونگ بر بستر معماری big.LITTLE آرم
- معماری ARM چیست؟ چه تفاوتی با x86 اینتل دارد؟
اولین پردازنده سامسونگ مبتنی بر معماری 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 را بر روی دستگاهی با اندروید ۴.۲.۲ و در حالت مهاجرت نوع سوم مشاهده کنید:
نظرات