Зачем смартфону десять ядер

10 февраля, 2017, Oleg Afonin
Рубрика: «Аппаратное обеспечение», «Новости индустрии»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В нашей лаборатории побывало множество устройств, в том числе – много смартфонов из Китая. Некоторые из них оборудованы четырьмя процессорными ядрами, какие-то – шестью, но многие работают и на восьми ядрах. В некоторые модели установлено целых десять процессорных ядер. Что это – дань маркетингу или десять действительно лучше четырёх? Попробуем разобраться.

Ядро ядру рознь

Первые смартфоны работали всего на одном, максимум – двух ядрах. Это – не глубокая древность; к примеру, BlackBerry Classic, поступивший в продажу в 2015 году, отлично справляется с нагрузками всего на двух процессорных ядрах набора системной логики Snapdragon S4. В те времена производители старались устанавливать максимально производительные ядра – конечно, в рамках актуальной архитектуры и технологического процесса.

В более поздних наборах системной логики число ядер росло. Так, весьма популярный чипсет Snapdragon 400 был оборудован четырьмя ядрами ARM Cortex A7, при этом в реальных задачах он с трудом обгонял более старый двухъядерный Snapdragon S4. Связано это с тем, что производительность «малых» ядер намного (иногда – в несколько раз!) ниже производительности более производительных «больших». В то же время, себестоимость производства «малого» ядра ниже за счёт существенно меньшей площади кристалла, а его энергоэффективность (как абсолютная, в милливаттах рассеиваемой мощности, так и относительная – по числу исполняемых инструкций на ватт потребляемой мощности) заметно выше.

Напрашивался логичный вывод: а что, если вместо проектирования сложных, энергоёмких и дорогих в производстве производительных ядер установить побольше простых и дешёвых малых ядер? Так впервые стали появляться восьмиядерные наборы системной логики – к примеру, популярный MTK MT6592 с восемью ядрами Cortex A7 или более современные MTK Helio X10, P10, P20, P25, оборудованные восемью 64-разрядными, но всё же малыми ядрами А53. Что бы ни говорили производители таких процессоров (в особенности – компания MediaTek), это – бюджетный вариант, который может конкурировать разве что с флагманом трёхлетней давности Snapdragon 801.

В теории, а главное – в тестах такие восьмиядерные процессоры выглядели очень неплохо, но в реальных задачах заметно уступали процессорам, использующим меньшее количество более производительных ядер, таких как Snapdragon 801 с ядрами архитектуры Krait 400.

Если денег нет

Что делать, если времени и ресурсов на разработку собственных ядер нет, а производительности малых ядер не хватает для «флагманских» характеристик? Дальнейший рост количества слабых ядер не приводит к заметному результату даже в тестах. Производители решили проблему дёшево и сердито: в смартфоны стали устанавливать два кластера ядер. В одном кластере работают четыре слабых, но энергоэффективных ядра, в другом – от двух до четырёх производительных, но прожорливых ядер.
Именно на этой архитектуре, получившей название big.LITTLE, работает подавляющее большинство условно флагманских мобильных чипсетов, вышедших в 2015 и 2016 годах. MediaTek Helio X20, X25, X27, старшие Samsung Exynos и Huawei Kirin, поколение чипсетов Qualcomm 2015 года – Snapdragon 808 и 810, а также более современные представители среднего звена – Snapdragon 650 и 652. Все эти чипсеты отличает использование как малых ядер (в энергосберегающих кластерах), так и больших – в производительных кластерах.

Апофеозом архитектуры big.LITTLE стала линейка Helio X20/X25/X27, в состав которой входит аж три кластера: энергосберегающий (на 4 ядрах А53), средний (ещё 4 ядра А53) и производительный (два, всего два старших ядра А72). MediaTek позиционирует свой чипсет как флагманский, в качестве аргумента приводя количество ядер. На самом же деле заметное влияние на производительность оказывают только старшие ядра, которых в Helio X20 всего два. Производительность старшего чипсета MediaTek даже несколько ниже прошлогоднего середнячка от Qualcomm – Snapdragon 650, обладающего шестью ядрами в конфигурации 4хА53+2хА72. Отметим, что в продуктовой линейке Qualcomm после SD650 идут процессоры SD652 (4хА53+4хА72). Флагман от Qualcomm – процессоры SD820/821 (4xKryo), в которых все четыре ядра основаны на производительной архитектуре Kryo. Точнее, правильнее будет сказать, что в SD820 конфигурация ядер 2+2, т.к. два из четырёх ядер Kryo работают на пониженной частоте.

В чём подвох? Архитектура big.LITTLE прекрасно выглядит на бумаге и неплохо выступают в синтетических тестах, но есть целый ряд тонкостей, которые способны заметно осложнить жизнь пользователя.

Начнём с производительности. Посмотрите обзоры устройств на новейших десятиядерных чипсетах MediaTek. Обозреватели часто жалуются на перегрев и подтормаживание устройств в простейших задачах. Почему так происходит?

Дело в том, что в рамках архитектуры big.LITTLE очень нелегко правильно настроить работу планировщика (компонент программного обеспечения устройства, который принимает решение, какую нагрузку на какое ядро пустить, и управляет частотами) так, чтобы всё работало плавно. Переключение с одного кластера на другой или самопроизвольное переключение частот ядер во время кинетической прокрутки — это почти всегда пропуск кадра, т.е. еле заметное подтормаживание или подёргивание интерфейса. По этой причине прокрутка в плохо оптимизированных приложениях работает плавно на Snapdragon 800/801 (четыре производительных ядра), похуже на Snapdragon 810 (схема big.LITTLE 4+4) и совсем плохо на Helio X20 (big.LITTLE 4+4+2). А на Snapdragon 820 – снова всё хорошо, четыре производительных ядра.

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

На сайте XDA провели тестирование ряда устройств, причём тесты проводились специальными сборками известных тестовых приложений, сделанными так, чтобы телефон не смог их идентифицировать как тесты. Что получилось? Падение производительности в тестах, запущенных на устройствах с Helio X20/25, было самым сильным: почти в два раза в сравнении с тестами, корректно опознанными телефоном. Произошло это потому, что что подключать производительный кластер под неизвестной (но, вероятно, не тестовой) нагрузкой планировщик посчитал излишними. Тот же планировщик сразу же подключал производительные ядра, как только телефон идентифицировал приложение как синтетический тест.

Заключение

Мы с большим интересом следим за новинками мобильных технологий. В мире Android чипсеты Snapdragon 820/821 обеспечивают отличную скорость и плавность работы при весьма умеренном нагреве и энергопотреблении. В iPhone 6s/6s Plus был сравнимый с SD820 уровень производительности и энергопотребления.
Интересно, может ли выйти толк из схемы big.LITTLE или всё-таки за производительными ядрами будущее? Ведь даже в Apple пришли к использованию схемы 2+2 в новом поколении процессоров, установленных в iPhone 7 и 7 Plus (кстати, в этих устройствах типичных для архитектуры проблем нам заметить не удалось – равно как и какого-то заметного улучшения в энергопотреблении в сравнении с предыдущим поколением).


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ