به گزارش عصر ارتباط ،اساس افزایش تعداد هسته ها با چه هدفی صورت می گیرد؟ و ده ها سوال دیگر دوباره توجه کاربران را به این مقوله تکراری معطوف کرد. اما حتی اگر در افزایش تعداد هسته ها از مشکل داغی و مصرف زیاد انرژی در پردازنده ها صرفنظر کنیم، این پرسش باقی می ماند که آیا پردازنده های بیشتر نقشی در افزایش بهره وری اپلیکیشن ها دارند یا نه؟
چه چیز پردازنده ها را چند هسته ای کرد؟
معمولا پردازنده ها در اجرای یک وظیفه مشخص با مشکلی رو به رو نمی شوند اما اگر پای پردازش بیش از یک وظیفه در میان باشد، اوضاع دیگر به سادگی گذشته نیست. در این حالت باید به کمک نرم افزارهای مخصوص توالی وظایف مشخص شده و زمان های خاصی به آنها اختصاص داده شود. در این حالت پردازشگر مطابق برنامه دریافتی پیش رفته و به ترتیب وظایف را یکی پس از دیگری پردازش می کند.
هنگامی که بیش از یک هسته در دسترس باشد می توان وظایف را بین هسته ها تقسیم کرد به طوری که چند پروسه در زمان واحد اجرا شود. در حقیقت اینجاست که تعداد هسته ها در اجرای همزمان پروسه ها و یا همان چندوظیفه گی نقش مهمی ایفا می کنند، مثلا اجرای برنامه های پس زمینه و استفاده از مرورگر به طور همزمان به بیش از یک هسته نیاز دارد.
اما تعداد هسته های بیشتر به معنای صرف انرژی بیشتر و بروز مشکل همیشگی است. فشار بر باتری و داغ شدن گوشی که از تبعات به کارگیری پردازنده های قوی است، در حالی که در استفاده معمولی از گوشی های هوشمند مانند جا به جایی بین منوها، خواندن پیام ها و حتی گشت و گذار در اینترنت، پردازشگرهای معمولی به خوبی از عهده کار، بر می آیند. اما تماشای ویدیوهای اچ دی، بازیهای سنگین و کارهای گرافیکی عرصه را برای ظهور هسته های بیشتر در پردازشگرها هموار می کند.
به جز افزایش دما و کاهش طول عمر باتری، مشکل دیگری در افزایش هسته ها خود را نشان می دهد و آن ایجاد ارتباط بین آنها و برقراری تعامل مناسب برای پردازش واقعی اطلاعات است. برای بدست آوردن بالاترین کارآیی هسته ها در چنین پردازنده هایی، نیاز به طراحی و مهندسی بسیار پیچیده تر وجود دارد در غیر این صورت بالا رفتن تعداد هسته ها نه تنها نتیجه مثبتی به همراه ندارد بلکه باعث ایجاد اختلال و تحمیل فشار بیشتر بر عملکرد گوشی می شود.
بالاخره افزایش تعداد هسته ها مفید است یا مضر؟
تعداد هسته ها زمانی باعث ایجاد عملکرد مناسب پردازشگر می شود که سرعت کلاک تغییر نکند. دما و بار پردازشی دو متغیری هستند که بر سرعت کلاک تاثیر می گذارند. در سرعت کلاک ثابت، هسته ها وضعیت پایدارتری دارند. اپل در آیفون 6 از چیپ دوهسته ای استفاده کرده است. این شرکت به کارگیر پردازنده های چند هسته ای را در پردازش برنامه های معمولی بی فایده می داند و وجود آنها را عاملی برای افزایش دما و در نتیجه تاثیر نامطلوب بر عملکرد باتری قلمداد می کند. این در حالی است که هدف از به کارگیری هسته های بیشتر در پردازنده ها افزایش بازدهی انرژی است.
اپل به استفاده از هسته های بزرگ تر با قدرت کنترل بالا بر بخش های اجرایی تاکید دارد. هسته های پردازشگر A8 قدرتمند بوده و در عین حال توان مصرفی کمتری نیز دارند. اما گروه دیگر از پردازنده های هشت هسته ای نیز وجود دارند که استفاده از آنها رواج زیادی دارد. این پردازشگرها بر پایه ARM طراحی شده و همانطور که می دانید به این معماری بزرگ- کوچک (big-little) گفته می شود. قرارگرفتن هسته هایی با کارایی بالا در کنار هسته هایی با مصرف بهینه در کنار یکدیگر از مشخصه های این نوع طراحی است. هسته های با مصرف بهینه وظیفه انجام پردازش های سبک و هسته های با کارایی بیشتر نیز مسوولیت اجرای پروسه های سنگین را بر عهده دارند.
این معماری در سال 2011 معرفی شد و در آن چهار هسته Cortex A7 با قدرت پایین و چهار هسته Cortex A15 در کنار یکدیگر قرار گرفتند. پس از آن بسیاری از کمپانی های فعال در زمینه تولید پردازشگر به این نوع طراحی علاقه نشان دادند و به توسعه آن پرداختند.
یکی زا اولین و مطرح ترین این کمپانی ها سامسونگ بود که در چیپ Exynos خود از فناوری بیگ- لیتل استفاده کرد و اخیرا کوالکوم در اسنپ دراگون 810 از این معماری بهره برد. Nvidia نیز Tegra X1 از هشت هسته پردازنده مرکزی که شامل 2 گروه پردازنده 4 هسته ای از نوع Cortex A53 و Cortex A57 است با فناوری مشابه بهره برد.
Media Tek نیز در چیپ MT6595 این نوع معماری را مدنظر قرار داده و آن را به کار گرفته است. اما این کمپانی در تراشه Heilo X20، 3 گروه هسته برای سه حالت متفاوت توان مصرفی به کار برده است.
در حالی که اپل هرگز وارد جنگ هسته ها نشد! کوالکوم نیز در سال 2013 میلادی اعلام کرد که رقابت بر سر تعداد هسته های کار بیهوده ای است و قصد تولید پردازشگر هشت هسته ای را ندارد. معاون ارشد این شرکت اعلام کرد که با به هم چسباندن هسته ها نمی توان به افزایش کارایی پردازنده ها کمک کرد، این کار مانند این است که با به هم چسباندن موتورهای هشت ماشین چمن زنی، به موتور هشت سیلندر فراری دست یافت؛ این کار عملا غیرممکن است.
در ادامه این مقام اجرایی کوالکوم اذعان داشت که هدف این شرکت ایجادی ک تجربه خوب برای کاربران است و تمامی تلاش این کمپانی درجهت رفع نیاز کاربران و ارتقای کارایی محصولات تمرکز دارد و این کار فقط با افزایش تعداد هسته های پردازشگر صورت نمی پذیرد.
اما چندی بعد کوالکوم نیز قدم به عرصه تولید پردازنده های هشت هسته ای گذاشت تا شاید شانس خود را در به هم چسباندن هسته ها بیازماید! این شرکت اعلام کرد که این کار را در واکنش به بازار چین انجام داده، گویا تعداد هسته ها برای چینی ها مهم تر از هرچیزی دیگری است حتی اگر این کار تاثیر چندانی در بهبود کارایی نداشته باشد. با این تفاسیر به نظر می رسد تولید پردازشگرهای هشت هسته ای بیشتر با انگیزه های تجاری صورت گرفته است.
اولین پردازشگرهای هشت هسته ای کوالکوم در مقیاس انبوه در سال 2014 تولید شد. اسنپ دراگون 810 اولین بار در LG G Flex 2 گوشی قابل انعطاف ال جی به کار رفت که نتیجه خوبی به همراه نداشت. داغی بیش از حد و پایین آمدن کارایی به تبع آن از مشکلات G Flex 2 عنوان شد، وجود تاخیر در اجرای برنامه های روزمره مثل استفاده از کیبورد، بازکردن پنجره جدید در کروم، باز کردن اپ های دوربین و حتی بازگشت به منوی اصلی به کندی صورت می گرفت؛ حرکت بین منوها نیز با تاخیر قابل توجهی صورت می گرفت که سبب نارضایتی کاربران شد.
سرانجام ال جی اعلام کرد که این مشکل در نسخه های اولیه وجود داشته و به زودی در نسخه های بعدی برطرف خواهدشد. بررسی های بیشتر نشان داد که سرعت کلاک S810 پس از چند دقیقه از 2 به زیر 1 گیگاهرتز افت می کند. در پی این مشکلات، سامسونگ که قصد استفاده از همین پردازشگر را در پرچمدار جدید خودداشت بنا به دلایلی از این اقدام صرفنظر کرد تا گرفتار مشکلات مشابه آنچه ال جی با آن دست و پنجه نرم می کرد، نشود.
کدام اپلیکیشن ها بیش از یک هسته نیاز دارند؟
به طور کلی اینکه یک برنامه قابلیت تقسیم بین چندین هسته را داشته باشد یا نه در درجه اول به ساختار آن بستگی دارد. یعنی درحقیقت این نویسنده برنامه است که در این باره تصمیم می گیرد. در پردازشگرهای چندهسته ای به نام Schedular عهده دار تقسیم وظایف بین هسته های پردازشگر است اما گاهی ماهیت وظایف به گونه ای است که امکان تقسیم آنها وجود ندارد.
برای مثال زمانی را در نظر بگیرید که باید خود را به سرعت به محل آتش سوزی برسانید، در این حالت استفاده از دو ماشین هیچ تاثیری در سرعت شما نخواهدداشت. شما برای جا به جایی از نقطه A به نقطه B هرگز به دو وسیله نقلیه نیاز ندارید. (در این حالت وسایل نقلیه مشابه وضعیت مدنظر قرار دارند).
در همین مثال، اگر قرار باشد هشت نفر به طور همزمان خود را به محل حادثه برسانند با فرض این که هر ماشین امکان جا به جایی چهار نفر را دارد، وجود دو خودرو در بالا بردن سرعت تاثیر بسزایی دارد. دو خودرو امکان جا به جایی هر هشت نفر را به طور همزمان فراهم می کند. اما صرف موجود بودن دو خودرو (وجود دو هسته) به تنهایی مشکل را حل نمی کند بلکه باید افراد توانایی استفاده از آنها را داشته باشند.
در صورت عدم توانایی این هشت نفر باید در دو گروه چهار نفره و در دو مرحله به محل مورد نظر انتقال یابند و این یعنی صرف زمان بیشتر، بنابراین باید در برنامه ها قابلیت استفاده از چند هسته گنجانده شده باشد. پس در برنامه هایی که قابلیت تقسیم وظایف به چند بخش مستقل در آن وجود نداشته باشد و یا در پروسه هایی که ترتیب در آنها اهمیت دارد، استفاده از پردازنده های چندهسته ای بی فایده است.
البته روش های برنامه نویسی متفاوتی برای تعیین نحوه استفاده از هسته ها وجود دارد. Single-Threaded (مبتنی بر یک اجراکننده) و Multi-threaded (مبتنی بر چند اجراکننده مستقل) از جمله آنهاست، برنامه های اندروید توانایی استفاده از چندین هسته پردازشی و البته ترکیب های بیگ- لیتل را دارا بوده و با کمک Scheduler امکان ترکیب هسته ها و استفاده بهینه از آنها را دارد. بنابراین برنامه های اندروید ماهیتا قابلیت استفاده از بیش از یک هسته را دارند.
میزان استفاده از هسته ها چقدر است؟
آیا در اجرای برنامه های مختلف تمامی هسته ها با حداکثر قدرت درگیر می شوند؟ مثلا در یک پردازشگر هشت هسته ای، اپلیکیشن ها برای اجرا نیاز به هر هشت هسته دارند؟
واقعیت این است که برخی اپلیکیشن ها توانایی به کارگیری تمامی هسته های به کار رفته در پردازشگر را دارند، اما این به معنای استفاده از حداکثر قدرت آنها نیست. آنچه رخ می دهد واگذاری وظایف از گروه های هسته های لیتل به گروه هسته های بیگ یا برعکس بسته بر میزان بار است. به طور کلی اپلیکیشن ها از همه هسته ها به یک میزان استفاده نمی کنند. در برخی از اپلیکیشن ها بخشی از توان هسته ها به کار گرفته می شود که در پردازنده های چهار و هشت هسته ای این میزان معمولا به صددرصد نیم رسد.
در مواقعی نیز فقط دو یا سه هسته درگیر شده و بقیه به حال خود رها می شوند. میزان فعال بودن هسته های یک پردازشگر به عوامل زیادی از جمله معماری آنها بستگی دارد. ممکن است در یک پردازنده چهار هسته ای کمپانی دیگر فقط 60درصد دو هسته به کار گرفته شود و دو هسته دیگر بدون استفاده باقی بمانند. پردازشگر هشت هسته ای از پردازشگر چهار هسته ای قوی تر است!
این جدالی است که کمپانی ها از مدت ها پیش شروع کرده اند و تلاش می کنند با افزایش ارقامی که تاثیر چندانی بر کیفیت گوشی ندارند، ذهن کاربر را منحرف کرده و او را به خرید تشویق کنند، در حالی که آنها به خوبی می دانند که این ارقام برای خریداران مهم بوده و حتی می تواند مبنای تصمیم گیری آنها قرار گیرند. در هر حال دفعه بعد که قصد خرید گوشی داشتید، تعداد هسته های بیشتر ذهن شما را به خود مشغول نکند، بلکه با تحقیق از افراد متخص، جست وجو در سایت ها و مطالعه نظرات دیگران و شناخت نوع نیازی که از یک گوشی دارید، آگاهانه قدم در عرصه انتخاب بگذارید.
سید رضا صدرالحسینی در یادداشتی اختصاصی برای جام جم آنلاین مطرح کرد
دانشیار حقوق بینالملل دانشگاه تهران در یادداشتی اختصاصی برای جام جم آنلاین مطرح کرد
یک پژوهشگر روابط بینالملل در گفتگو با جام جم آنلاین مطرح کرد
در یادداشتی اختصاصی برای جام جم آنلاین مطرح شد
در گفتوگو با امین شفیعی، دبیر جشنواره «امضای کری تضمین است» بررسی شد