Ещё пять лет назад в смартфонах были одноядерные процессоры, а предсказания о появлении в мобильных гаджетах многоядерных вызывали лишь усмешки. Тем не менее, в начале 2011 года был представлен первый смартфон с двухъядерным чипсетом, и с тех пор количество ядер в мобильных процессорах только растёт. Сегодня нас уже не слишком удивляют чипсеты с десятью ядрами, и нет оснований полагать, что эта цифра перестанет увеличиваться. Чтобы понять, чего добиваются производители, и зачем смартфонам столько ядер, начнём с небольшого экскурса в историю.

В погоне за производительностью

До 2011 года рост производительности процессоров мобильных устройств достигался в первую очередь увеличением их тактовой частоты. Но дальше бодро двигаться за счёт наращивания частот не получилось: в мобильных устройствах остро стоит проблема с охлаждением. Уменьшить же перегрев на высоких тактовых частотах можно, перейдя на более тонкий техпроцесс. Однако совершенствование литографического оборудования происходило недостаточно быстро, и вот тогда производители решили прибавить смартфонам производительности способом, уже опробованным на ПК — добавив второе вычислительное ядро.

Итак, первый смартфон с двухъядерным процессором появился в 2011 году: это был LG Optimus 2X с чипсетом NVIDIA Tegra 2. Чипсет был построен на ядрах ARM Cortex-A9 с тактовой частотой до 1 ГГц, выполненных по 40-нм техпроцессу. Смартфон действительно показывал хорошие результаты в синтетических тестах и при выполнении определённых задач, но ещё около года его «двухъядерность» была почти бесполезна, поскольку разработчики приложений не торопились массово оптимизировать свои программы для работы с двумя ядрами. Впрочем, разные процессы уже могли нагружать оба ядра одновременно, что и давало видимый прирост скорости.

Сколько ядер должно быть в процессоре?

Однако чем больше распространялись устройства с многоядерными процессорами, тем больше им уделяли внимания разработчики требовательных приложений — прежде всего игр. Само собой, производители смартфонов не стали останавливаться на двух ядрах и уже в 2012 году появился первый аппарат с пятиядерным процессором LG Optimus 4X HD на базе чипсета NVIDIA Tegra 3 с четырьмя ядрами ARM Cortex-A9 на тактовой частоте 1,5 ГГц и пятым ядром-компаньоном с частотой 500 МГц. Четыре основных ядра определяли выдающуюся производительность устройства, но быстро разряжали батарею. Поэтому простые задачи обрабатывало работающее на пониженной частоте ядро-компаньон.

Сколько ядер должно быть в процессоре?

Первым «чистым» четырёхъядерным процессором стал Qualcomm Snapdragon S4 Pro. В отличие от чипсетов NVIDIA, в линейке S4 Pro компания Qualcomm использовала ядра собственной разработки под названием Krait, которые поддерживали технологию aSMP, позволяющую выбирать напряжение и частоту каждого ядра в отдельности и даже полностью их отключать. Синхронные системы, которые в то время разрабатывали компании NVIDIA и ARM, этого делать не могли.

Сколько ядер должно быть в процессоре?

В погоне за энергоэффективностью

Производительность четырёхъядерных решений вполне удовлетворила как потребителей, так и производителей: последним оставалось только по мере возможности уменьшать техпроцесс и увеличивать тактовую частоту. Однако при разработке первых четырёхъядерных процессоров инженерам пришлось всерьёз задуматься об энергоэффективности. Результатом этих нелёгких дум стало появление архитектуры 4-PLUS-1 у NVIDIA и внедрение технологии aSMP в процессоры Qualcomm, о которых мы уже говорили.

Сколько ядер должно быть в процессоре?

Примерно в это же время появляется архитектура ARM big.LITTLE, которая была призвана решить сложившуюся проблему. Первая реализация big.LITTLE, Clustered Switching, оказалась не слишком удачной, поскольку позволяла устройству переключаться только между кластерами ядер одного типа без возможности управлять каждым из них в отдельности. Первым чипсетом с такой реализацией архитектуры стал Samsung Exynos 5 Octa (5410) с четырьмя ядрами ARM Cortex-A7 и четырьмя ядрами Cortex-A15, применявшийся в смартфоне Galaxy S4. В этом процессоре при энергопотреблении до 1 Вт работал кластер LITTLE, который при превышении этого порога отключался для начала работы кластера big с максимальным энергопотреблением до 6 Вт.

Сколько ядер должно быть в процессоре?

Во второй реализации big.LITTLE под названием IKS кластеры состояли из двух ядер разных типов, но в каждый момент времени могло работать одно. Эта технология позволяла работать одновременно ядрам разных типов (например, двум производительным и двум энергосберегающим ядрам в восьмиядерном чипсете), но задействовать все ядра было по-прежнему невозможно.

Сколько ядер должно быть в процессоре?

Наконец, появилась технология HMP, которая была способна задействовать любые комбинации ядер с любой частотой каждого из них, включая одновременную работу всех ядер для достижения максимальной производительности. Именно HMP используется во всех современных чипсетах, построенных на архитектуре ARM big.LITTLE, ну а первым процессором на этой архитектуре стал также разработанный компанией Samsung чипсет Exynos 5 Octa (5420).

Сколько ядер должно быть в процессоре?

Используются ли ядра приложениями?

Существует довольно распространённое мнение, что смартфонам на самом деле не нужны многоядерные процессоры. Раньше так говорили о четырёхъядерных процессорах, сейчас — о восьмиядерных. Якобы, мобильные приложения просто не могут задействовать все ядра, в результате чего большинство из них «простаивает» без надобности. Но даже на заре «многоядерности» смартфонов одно ядро могло использоваться работающим приложением, а другое в это же время заниматься обновлением виджетов, синхронизацией и другими системными процессами. В настоящее же время мобильные программы, начиная с самых простых, могут задействовать минимум четыре ядра. Чтобы подтвердить это, ресурс Android Authority провёл собственное исследование, запуская различные приложения и анализируя загруженность ядер. Вот что удалось получить для браузера Chrome на четырёхъядерном чипсете Qualcomm Snapdragon 801:

Сколько ядер должно быть в процессоре?Зависимость числа используемых ядер от времени

Сколько ядер должно быть в процессоре?Зависимость загруженности ядер от времени

Как вы можете увидеть на графиках, Chrome умеет работать в несколько потоков (иначе мы бы видели использование максимум двух ядер), причём операционная система старается согласовать нагрузку на все ядра во избежание ситуаций, когда два ядра имеют стопроцентную нагрузку, а два других — простаивают.

Если провести тот же тест на чипсете с архитектурой big.LITTLE HMP, картина меняется:

Сколько ядер должно быть в процессоре?Зависимость числа используемых ядер от времени

Сколько ядер должно быть в процессоре?Зависимость загруженности ядер от времени

В случае использования гетерогенного мультипроцессинга, число используемых ядер будет близко к максимальному, а графики загруженности ядер не будут совпадать даже приблизительно.

Чтобы понять, почему так происходит, и почему одному и тому же приложению требуется разное количество ядер на разных чипсетах, посмотрим на ещё один график, полученный в игре Epic Citadel:

Сколько ядер должно быть в процессоре?Зависимость загруженности кластеров big и LITTLE от времени

На графике видно, что при большой нагрузке активен кластер big, что соответствует одновременному использованию четырёх ядер, но при снижении нагрузки некоторое время могут работать оба кластера одновременно, суммарно используя восемь ядер. Низкая загруженность каждого ядра, при этом, не вызовет скачков в энергопотреблении, а дальнейшее снижение нагрузки приведёт к полному отключению кластера big и включению энергосберегающего кластера LITTLE.

Вывод из вышесказанного простой и категоричный: отсутствие многопоточности в приложениях Android — это миф, причём операционная система распределяет нагрузку на ядра наилучшим образом в зависимости от того, использует чипсет архитектуру big.LITTLE или нет.

В погоне за маркетингом

Первые восьмиядерные процессоры вызывали насмешки скептически настроенных пользователей, но, несмотря на это, стали лучшим доступным решением для оптимизации баланса производительности и энергопотребления смартфона. Производители, впрочем, останавливаться не стали, и в 2015 году компания Mediatek представила первый чипсет с десятью ядрами — Helio X20, а также заявила, что в скором времени выпустит и двенадцатиядерный процессор.

В Helio X20 используются ядра уже не двух, а трёх типов с плавно возрастающей производительностью: четыре Cortex-A53 на 1,4 ГГц, четыре Cortex-A53 на 2 ГГц и два Cortex-A72 на 2,5 ГГц.

Сколько ядер должно быть в процессоре?

Несмотря на впечатляющие цифры, в отличие от первых двух-, четырёх- и восьмиядерных чипсетов, Helio X20 не стал фурором, уступая в бенчмарках своим конкурентам с меньшим числом ядер. Приложений, которые могут задействовать одновременно более восьми ядер, пока что ничтожно мало, и дальнейшее увеличение числа ядер в ближайшее время не даст сколько-нибудь заметного прироста производительности.

Что касается неизбежного спутника всевозрастающей мощности мобильных устройств — необходимости уменьшения энергопотребления, производители чипсетов и смартфонов активно используют для этого другие способы, например, уменьшают техпроцесс и занимаются оптимизацией других компонентов — экранов или памяти. А увеличение числа ядер ведёт, скорее, к росту стоимости конечных устройств.

Существует и альтернативный пример развития — компания Apple. В то время как производители Android используют операционную систему Google, а большинство из них — ещё и процессоры сторонних разработок, компания Apple сама занимается разработкой iOS и проектированием чипсетов для своих мобильных устройств. Это позволяет компании добиться хорошего баланса между производительностью и энергоэффективностью путём глубокой оптимизации как программной, так и аппаратной части гаджетов. В своих современных чипсетах Apple использует… всего два ядра собственной разработки под названием Twister. Конечно, смартфоны яблочной компании показывают намного меньшие цифры в бенчмарках по сравнению с Android-устройствами, но к чему погоня за цифрами, если система, все программы и игры на гаджетах работают отлично?

Сколько ядер должно быть в процессоре?

В погоне за будущим

На начало 2016 года четырёхъядерные чипсеты де-факто стали для смартфонов (кроме iPhone) минимальным стандартом. Лишь в самых бюджетных моделях ещё можно встретить двухъядерные процессоры, а одноядерные и вовсе стали историей. Стало ли это полезным для пользователей? Несомненно, да, поскольку рынок всегда расставляет всё на свои места, и неудачные решения быстро уходят в прошлое. Двух- и четырёхъядерные процессоры доказали, что они являются отличным решением увеличения производительности смартфонов без фатального уменьшения автономности. Сейчас уже вполне можно утверждать, что ожидания оправдала и архитектура ARM big.LITTLE HMP при использовании шести-восьми ядер. Она лучше других балансирует между производительностью и энергоэффективностью, меняя эти параметры в широких пределах в зависимости от текущих задач.

Производителям смартфонов с каждым годом становится всё труднее удивлять пользователей. Компаниям тяжело даётся переход на более тонкие техпроцессы, что ограничивает возможности увеличения частоты, да и имеющиеся стандарты производительности уже таковы, что, купив флагман, человек не будет ощущать её нехватки ещё 3–4 года. В результате и появляются чипсеты, поражающие воображение цифрами, за которыми пока не скрывается никаких благ для конечного пользователя. И дальнейшее увеличение числа ядер в мобильных гаджетах на сегодняшний день едва ли оправдано: таким способом не удастся добиться заметного увеличения ни производительности, ни автономности устройств.

Надолго ли удержатся на рынке чипсеты с большим, чем восемь, количеством ядер — покажет время, но такие процессоры не несут в себе никаких важных новшеств, которые бы мог прочувствовать каждый, поэтому гнаться за такими устройствами в ближайшем будущем точно не стоит.

Источник: 4pda.ru

Оставить комментарий