Что такое процессор в телефоне. Изучаем Android. Ядро (Kernel) - что это такое

Как же часто слышим мы этот вопрос, когда очередной новейший смартфон или планшет выходит на рынок. Зачем такая производительность, если ее нечем занять, а очередная встроенная гламурная и кривая оболочка всё равно тормозит? Ведь телефон должен звонить и отправлять sms... ну музыку воспроизводить, а остальное — это всё никому не нужные числа.

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

Но вопрос на самом деле стар, как сама мобильная связь. Ведь еще четыре года назад он звучал как «зачем нужен iPhone», семь лет назад как «зачем нужен смартфон или коммуникатор», а совсем давно некоторые консервативные пользователи сокрушались насчет целесообразности полифонии, цветного экрана, мобильного Интернета и других фишек.

На этот вопрос не хочется отвечать. И в этой статье ответа для таких людей не будет. Пусть дальше радуются своему дешевому (или дорогому люксовому) телефончику и не мешают жить. Скорее, это попытка систематизировать те сценарии использования современного универсального смартфона, которые только можно придумать, с какими я лично сталкивался и регулярно использую.

Чтобы наиболее полно рассказать о большинстве сумасшедших возможностей современного смартфона, мне поможет до сих пор актуальный Samsung Galaxy R. Он просто оказался под рукой. Пусть ему почти год, но два ядра и 1.3 гигагерца в нем есть.

Телефон должен звонить?

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

Многие просто убеждены в том, что звонить может и обыкновенный, простой телефон, такой как Nokia 3310 или аналогичный. А вот я думаю, что не может... Начнем с того, откуда сейчас берутся в телефоне номера, на которые мы все звоним? Правильно! Из телефонной книги! Телефонные книги современных смартфонов чаще всего синхронизированы с каким-нибудь аккаунтом в Сети (например, с сервисами Google в случае с Android). На один контакт можно записать множество номеров и другой информации, такой как аккаунт Facebook, Twitter, Skype и других сервисов. Очень удобно при желании иметь доступ к телефонной книге из любой точки мира и при покупке нового смартфона синхронизироваться с ней в один момент.

А теперь подумаем, откуда в простой звонилке появятся номера? Синхронизироваться с Google-аккаунтом этот телефончик, скорее всего, не сможет. И надо будет номера вносить вручную. Кто-то скажет, что можно перенести их через сим-карту, но там в лучшем случае будет до 1000 номеров (новейшие образцы) и по одному на контакт. Сим-карта годится только для очень важных номеров и не более. Можно еще смотреть номера в смартфоне и набирать на звонилке. Некоторые так и делают - у них смартфон выступает органайзером. Но это не дело в любом случае.

Если пример с телефонной книгой несколько неочевиден, то вспомним, что современные сотовые сети дают несколько продвинутую функциональность. Возьмем хотя бы видеосвязь в 3G-сетях. Не самая популярная услуга на рынке, но пользуется умеренным спросом у тех, кому нравится лицезреть лицо собеседника (особенно родители желают видеть своих деток).

Вспомним и другой аспект - SIP и VOIP или, другими словами, интернет-телефон. Тот же Skype к этому относится. Звоним в любой стране мира по тарифам VOIP-оператора. Ну, может, за 3G-траффик платим, если не нашли Wi-Fi. Некоторые не совсем простые звонилки тоже умеют звонить по интернет-телефонам, но далеко не все и не всегда качественно. Опять выигрыш смартфона.

Но если и это не убедило, то смело кладем Nokia 3310 в карман и идем по делам. И тут на шумной оживленной улице раздается звонок... А поговорить толком не получается. Ничего не слышно и приходится в микрофон кричать самому. Никакие уловки не помогают, чтобы улучшить ситуацию. А рядом идет человек и спокойно говорит по современной «лопате», не испытывая особых проблем. Всё из-за того, что эта «лопата» имеет второй микрофон сверху для шумоподавления.

До конца ситуацию с шумом это не разрешает, но лучше становится раз в двадцать. Так что смело отправляем простую звонилку на свалку истории и забываем как страшный сон. Свою основную функцию в 2012 году она благополучно слила смартфону.

Плеер?

Обыкновенный телефон, как уже выяснили, в 2012 году звонить не умеет, поскольку изменились задачи и подросли технологии. А как же музыка? Как известно, аудиотракт современных смартфонов (подавляющего большинства) не сильно отличается от того, что устанавливалось в телефонах много лет назад. Тем более в результате исчезновения кнопок переключать треки налету неудобно в сравнении с клавиатурным телефоном.

Неужели паритет? А вот и нет! Переключать композиции можно и с кнопки на гарнитуре, а недостатки аудиотракта легко исправляются сторонними улучшалками и альтернативными плеерами. И один из таких плееров требует как раз гигагерцовый, а лучше многоядерный процессор. Речь о Neutron Music Player.

Насколько звучание становится профессиональным, судить тяжело, но то, что звук становится реально крутым, поспорить не сможет никто. А если смартфон оборудован процессором с поддержкой технологии NEON, то есть специальная версия плеера, которая раскрывает ее на полную! Разве что слушать обыкновенные MP3 не стоит. Сразу слышны огрехи этого формата. Лучше использовать более качественные OGG, AAC или WMA форматы или сразу Lossless, такие как FLAC, ALAC, Ape и другие.

И вот опять простая звонилка с плеером проиграла смартфону в качестве звука. И это еще не вспоминая, что существует интернет-радио и магазины музыки прямо на смартфонах.

Зачем нужен большой экран?

Одна из самых заезженных претензий к современным смартфонам - по поводу размера экрана. Ну как с этой лопатой можно вообще ходить и как ее засунуть в карман? Жутко ведь неудобно!

Видимо, у таких людей просто не было возможности положить такой смартфон в карман, чтобы убедиться, что проблемы нет. Справедливости ради отмечу, что некоторые умудряются 7" планшеты в карманах носить. Но шутки в сторону! Проблемы нет, и пример того же Samsung Galaxy Note показал, что огромные экраны на рынке востребованы. Но для чего он все-таки нужен?

Такой экран просто создан для видео. Чтобы по двести раз не конвертировать. Современные ядра и гигагерцы позволяют видео не конвертировать и проигрывать вообще без притормаживаний. Скромно промолчим о косяке в процессорах Nvidia Tegra 2 относительно MKV-формата. Это тема для отдельной статьи. И кроме того, в Tegra 3 этот косяк исправлен. К тому же я не сторонник просмотра видео на смартфонах.

А вот то, что просматривать Интернет, читать тексты, создавать и редактировать документы удобно на большом экране, согласятся все. И не даром я сказал про создавать и редактировать. Если чувствительность у экрана хорошая, то остается только удобную наэкранную клавиатуру подобрать - и легкая замена записной книжке готова.

Я сам удивился, когда попробовал печатать на экране того же Galaxy R. Реально удобно, вот только я всё равно предпочту механическую qwerty-клавиатуру. Но для коротких и не очень заметок современные смартфоны годятся. Это было бы невозможно без большого экрана и мощного «железа», которое обеспечивает производительность удобной клавиатуры.

Поиграем?

Пришло время поговорить об играх на современных смартфонах. Именно играми компания Nvidia мотивирует покупать смартфоны с процессорами Tegra 2 и 3.

Сейчас игр на Android стало очень много. Начиная с казуалок, таких как Angry Birds, Fruit Ninja и Doodle Jump, и заканчивая серьезными и красивыми игровыми проектами, например, Gangstar Rio: City of Saints и Need for Speed: Hot Pursuit. Также меня удивила не новая, но красивая игра по мотивам фильма «Аватар». Не верится, что игра не новая и в какой-то мере устаревшая.

Радует в последнее время, что стали появляться полноценные портированные с PC игры, в которые мы играли десять и более лет назад. Max Payne и GTA 3 для мобильных платформ уже который месяц не сходят с первых полос рейтингов мобильных игр.

Кто-то справедливо заметит, что играть в такие серьезные игры на экране смартфона очень неудобно. И вообще, для портативных игр есть PSP или PS Vita. Последним скажу, что не являюсь хардкорным игроком, а потому мне для игр отдельное устройство не нужно, да и набаловался я с ними. А с первыми где-то соглашусь. Но опять-таки в большинство играть удобно, если экран большой и чувствительный. С портированными сложнее, но в ту же GTA 3 играть приятно. А вот Max Payne так и требует подключения клавиатуры, мыши или хотя бы джойстика. Но об этом ниже.

USB-host

Самая, пожалуй, сумасшедшая функция любого современного смартфона! Подключай любые USB-устройства к аппарату, если есть на него драйверы. И мне просто удивительно, что многие люди не могут представить себе сценарии использования, когда может понадобиться подключение к смартфону через переходник USB-флешки и другую периферию. У меня был случай, когда USB-host выручил. В тот день я забыл свою флешку дома, а очень нужно было забрать у друга несколько важных документов. С собой был только смартфон. Но после подключения кабелем к его не новому ноутбуку мало того, что пропал Интернет из-за того, что отключился USB-модем, так еще и смартфон никак не хотел определяться. Мой аппарат оказался слишком мощным для этого компьютера. Но я вспомнил, что у меня с собой был переходник USB -micro USB. Друг просто записал документы на свою флешку, а я потом забрал их оттуда прямо на телефон. Как это ни смешно, но USB -host в тот момент выручил.

Но если подключением к смартфону флешки, клавиатуры или мыши никого сейчас не удивить, то как вам подключение другого смартфона? На этот счет большинство даже знающих людей скажет, что нереально, поскольку это слишком мощное устройство, и аппарат его не распознает. И действительно это так. Но я вспомнил, что у меня есть кабель от внешнего жесткого диска, к которому можно подключить внешнее питание и китайский аккумулятор с солнечной батарейкой. И как ни странно, мои два смартфона уже через 30 секунд были подключены – и Galaxy R увидел их файлы на карте памяти!

Последняя картинка наводит на интересные мысли. Есть на Android специальная программа, которая позволяет писать под него софт прямо на смартфоне или на планшете (andJide). Отлаживать, к сожалению, можно только на самом устройстве, что чревато постоянными перезагрузками, если что-то не так напрограммировал. Но если будет написан ADB-драйвер на сам Android, то можно будет через USB-host подключать другие смартфоны и отлаживать на них. И если для смартфона такой сценарий использования надуманный, то для планшета с клавиатурой вполне реальный.

Следующий случай для смартфонов, по большому счету, не актуальный. А вот для планшетов и мини-планшетов без 3G-модуля очень даже естественный. Вот только модем нужно перевести в режим «только модем». И можно использовать 3G-интернет через модем. Особых настроек чаще всего не требуется. Для смартфонов же может быть актуально, если внутри стоит Sim-карта с дорогим Интернетом, а в модеме - с дешевым. Но насколько знаю, так делать особо никто не стремится.

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

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

Эмуляция

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

Лучше всего, как не сложно догадаться, научились эмулировать игровые приставки прошлого. И если эмуляцией NES (Dendy), Sega Mega Drive, Super Ninetendo никого не удивить, то как вам эмуляция Play Station 1 и Ninetendo 64?

Ладно, PS 1 можно было успешно эмулировать и на Windows Mobile коммуникаторах. Вот только там редко когда был емкостный сенсорный экран, и скорость эмуляции была далека от идеала. Кстати, как видите, можно для эмуляции через пресловутый USB-host подключить джойстик для более удобной игры. Но на фотографиях такой джойстик подключен для примера. На самом деле для смартфонов придуманы специальные джойстики, куда аппарат вставляется сверху. Играть удобно даже на ходу. К слову, для Android разрабатывается даже эмулятор Sega Dreamcast, альфа-версию которого уже можно найти на просторах Сети. Жаль, что из-за Tegra 2 на Galaxy R этот эмулятор работать отказался. Но с такими темпами уже можно помечтать и об эмуляции Play Station 2.

Но не одними приставками едина эмуляция на Android. Еще со времен Windows Mobile пришли к нам программы-эмуляторы систем Dos и даже полноценного X86 компьютера. Даже на тех слабых, по сегодняшним меркам, коммуникаторах мы умудрялись запускать Windows 95 и Windows XP. Но со всеми ядрами и гигагерцами в 2012 году это теперь доступно без особых трудностей самому обычному пользователю. Для программ BochS существуют готовые сборки с Windows 95, который на современных смартфонах работает с приемлемой скоростью.

Можно даже устанавливать софт внутрь этих систем. Я пробовал Matlab 6 установить. Не очень быстро, но работать можно. А вот Windows XP по-прежнему устанавливают для прикола, поскольку даже сейчас «Пуск» открывается за минуту, если не больше.

В один момент я пожалел, что у меня не самый современный четырехъядерник, такой как Samsung Galaxy S3. Когда запустил полноценных третьих «Героев» внутри Windows 95.

Нужно ли говорить, что работала игра настолько медленно, что играть никак невозможно? Даже вот этот вот старенький ноутбук 1997 года выпуска «тянет» ту же самую игру на полной скорости. А смартфон 2012 года едва ковыляет, как дохлая кляча. Справедливости ради стоит заметить, что даже 4 ядра тут не помогут, поскольку надо допиливать сам эмулятор или сборку игры для приемлемой скорости. Но после первых и вторых «Героев» на Windows Mobile в такой же эмуляции это явный прорыв. К слову, на Android существует портированный свободный движок VCMI, который позволяет запустить третьих «Героев» на нормальной скорости.

Так же на Android устройствах можно запускать полноценный Linux без эмуляции, как родную систему. Все эти манипуляции требуют Root прав и тема настолько обширна, что требует отдельного материала. Так что об этом в другой раз.

Заключение

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

Уже с десяток лет в наших компьютерах стоят многоядерные процессоры, и в настоящее время это норма. Вначале ядер стало два, потом четыре, а сегодня компании вроде Intel и AMD предлагают high-end процессоры для настольных компьютеров с 6 или 8 ядрами. Та же история и с процессорами в смартфонах. Двухъядерные энергоэффективные процессоры от ARM появились около 5 лет назад, а вслед за ними и 4, 6 и 8-ядерные процессоры на архитектуре ARM. Между тем, есть разница между 6- и 8-ядерными настольными процессорами от Intel и AMD и 6- и 8-ядерными процессорами, основанными на архитектуре ARM. У большинства относящихся ко второй категории процессоров с больше чем 4 ядрами используются как минимум две различных конструкции ядра.

С некоторыми исключениями, в целом, восьмиядерный ARM процессор использует систему, известную как Heterogeneous Multi-Processing (HMP), в которой «гетерогенность» означает неравноценность ядер. В современном 64-битном процессоре это значит, что кластер с ядрами Cortex-A57 или Cortex-A72 используется в сочетании с кластером ядер Cortex-A53. A72 – высокопроизводительное ядро, в то время как у A53 большая энергоэффективность. Такое сочетание известно как big.LITTLE, поскольку здесь «большие» ядра (Cortex-A72) объединены с «маленькими» Cortex-A53. Это сильно отличается от 6- и 8-ядерных процессоров для ПК от Intel и AMD, поскольку проблема энергопотребления в этом случае не так актуальна, как на мобильном устройстве.

Когда многоядерные процессоры впервые попали на ПК, возникло много вопросов касательно преимуществ двухъядерного процессора перед одноядерным. Двухъядерный 1.6ГГц процессор «лучше» одноядерного 3.2ГГц процессора или нет? А что Windows? Сможет ли она максимально реализовать потенциал двухъядерного процессора? А игры? Они правда идут лучше с двухъядерным процессором? И надо ли при написании приложений делать это особым образом, чтобы они могли использовать дополнительные ядра? И так далее.

О мультипроцессорной обработке

Эти вопросы вполне закономерны, и, конечно, такие же вопросы возникают по поводу многоядерных процессоров в смартфонах. Перед тем, как посмотреть на «взаимоотношения» многоядерных процессоров в смартфонах и Android приложений, давайте немного рассмотрим многоядерную технологию в целом.

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

Не углубляясь в частности, существует технология, известная как вытесняющая многозадачность, которая позволяет разделять доступное процессорное время между несколькими задачами. «Кусочек» процессорного времени отводится одной задаче, «кусочек» другой и так далее. В основе операционных систем, таких как Linux, Windows, OS X и Android, лежит та часть технологии, что известна как планировщик и определяет, какому процессу достанется следующий «кусочек» процессорного времени.


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

Когда ядер больше одного, планировщик может отвести для одного процесса кусочек времени процессору 0, в то время как другой процесс получает кусочек времени процессора 1. Так планировщик и двухъядерный процессор позволяют двум задачам выполняться одновременно. Чем больше ядер, тем больше процессов могут выполняться одновременно.

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

Некоторые задачи последовательны сами по себе. Чтобы испечь пирог, вам нужно разбить яйца, добавить муку, замесить тесто и так далее. Нельзя поставить пирог в духовку, пока не готово тесто. Так что даже если у вас на кухне два повара, сэкономить время на одной из задач не выйдет. Есть нерушимый порядок и последовательность действий. Можно решать несколько задач сразу и поручить одному повару пирог, а другому нарезку салата, но задачи с предопределенным порядком действий не выиграют ни от двухъядерного, ни даже от 12-ядерного процессора.

Не все задачи таковы, как описано выше. Многие операции, которые выполняет компьютер, можно разделить на несколько самостоятельных задач. Чтобы это произошло, основной процесс должен создать другой процесс и отдать ему на откуп часть работы. К примеру, если, используя алгоритм для вычисления простых чисел, вы не используете предыдущие результаты, не пользуетесь Решетом Эратосфена, можно разделить работу на две части. Один процесс вычисляет первые 50 млн чисел и второй – вторые 50 млн. Четырехъядерный процессор позволяет поделить работу на 4 части, и так далее.

Но для того, чтобы все это работало, программу надо написать особым образом. Другими словами, она должна быть разработана так, чтобы делить нагрузку на меньшие части, а не делать ее целиком. Для этого есть различные технологии программирования, и вы наверняка слышали слова вроде «однопоточный» или «многопоточный». Эти слова означают программы, которые написаны для выполнения одной задачи (однопоточная, все вместе) или программы с индивидуальными задачами (потоками), которым может быть отдельно назначено свое процессорное время. Подводя краткий итог, однопоточная программа ничего не выиграет от запуска на многоядерном процессоре, а вот многопоточная – напротив.


Итак, мы почти добрались до сути, и прежде чем перейти к Android, нужно еще одно. От того, как написана ОС, зависит то, что некоторые выполняемые программы могут быть изначально многопоточными. Часто отдельные части ОС сами по себе представляют собой независимые задачи, и когда ваша программа осуществляет ввод и вывод информации или выводит что-то на экран, это может быть отдельным процессом в системе. Использование того, что называется non-blocking calls может внести многопоточность в программу, не создавая потоков специально.

Это важный аспект для Android. Одна из задач системного уровня в архитектуре Android – SurfaceFlinger. Это основа процесса вывода графической информации на дисплей в Android. Это отдельная задача, которой должно быть выделено процессорное время. Что означает, что определенные графические операции для выполнения предполагают запуск нового процесса.

Android

Из-за процессов вроде SurfaceFlinger Android выигрывает от многоядерных процессоров без нужды в специальных многопоточных по сути приложениях. И поскольку множество вещей происходит в фоне, вроде синхронизации и виджетов, Android выигрывает от многоядерности и как единое целое. Эта ОС ожидаемо обладает способностью создавать многопоточные приложения. Чтобы узнать больше, посмотрите в раздел Процессы и Потоки в документации Android. Есть также многопоточные примеры от Google, а также имеется интересная статья от Qualcomm о программировании Android приложений для многоядерных процессоров.

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

Также может возникнуть вопрос относительно разницы между 4- и 8-ядерным процессором. В ПК или серверах восьмиядерные процессоры построены так, что чип состоит из одинаковых ядер. Для большинства восьмиядерных процессоров с архитектурой ARM существуют высокопроизводительные и энергоэффективные варианты ядер. И смысл в том, что более энергоэффективные ядра служат для выполнения более второстепенных задач, а высокопроизводительные – для работы в тяжелой весовой категории. Однако, как и в настольной версии, эти ядра могут использоваться одновременно.

Основное, что здесь стоит запомнить, это то, что восьмиядерный процессор big.LITTLE обладает восемью ядрами из соображений энергоэффективности, а не производительности.

Тестирование

В Android возможно получить сведения о том, сколько ядер система использовала в процессоре. Для подкованных, это можно посмотреть в файле /proc/stat. Был создан инструмент, который берет информацию об использовании ядер в Android, пока запущено приложение. Чтобы повысить его эффективность и уменьшить падение производительности, сведения собираются, только когда приложение активно. Анализ данных производится офлайн.

Используя этот инструмент, у которого пока нет названия, для теста запускали серии приложений разного типа (игры, веб-браузинг и т.п.) на телефоне с четырехъядерным процессором Qualcomm Snapdragon 801, а затем на телефоне с восьмиядерным Qualcomm Snapdragon 615. При сопоставлении данных получились графики использования процессора. Начнем с простого примера. Вот график работы ядер Snapdragon 801 при использовании браузера Chrome:


График показывает, сколько ядер использовали Android и браузер. Он не демонстрирует, насколько было задействовано ядро, только то, использовалось ли оно в принципе. Если бы Chrome был однопоточным, можно было бы ожидать, что задействуются одно или два ядра, может быть, третье или четвертое по случаю. Но мы этого не видим. Наоборот, задействованы четыре ядра, и только временами количество используемых ядер падает до 2. В тесте с браузингом не читались загруженные страницы, это не повлияло бы на использование процессора. Страницы просто прогружались, и можно было переходить к новым.

Вот график, который показывает, насколько задействовалось каждое ядро. Это усредненный график (в реальном путаницу вносит огромное количество линий). Это значит, что по меньшей мере, показаны пики использования. К примеру, пик на этом графике превышает 90%, однако изначальные данные показывали, что некоторые ядра достигали 100% много раз. Тем не менее, здесь хорошо видно, что происходило.


А что у нас с восьмиядерным процессором? Демонстрирует ли он ту же самую схему? Нет, как видно на графике ниже. Постоянно используется семь ядер, на пиках доходит до 8, иногда опускается до 6 и 4.


Также и средний показатель использования каждого ядра демонстрирует, что планировщик вел себя иначе, поскольку Snapdragon 615 – процессор big.LITTLE.


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

Мы можем спокойно говорить о том, что использование «андроидом» всего одного ядра – это миф. Это было ожидаемо с учетом того, что Chrome, как и Android, был разработан многопоточным, как и для настольных компьютеров.

Другие приложения

Итак, это был разработанный многопоточным Chrome, а что с другими приложениями? Вот, что получилось вкратце

Gmail – на 4-ядерном телефоне получились равные доли использования 2 и 4 ядер. Однако среднее использование ядра не поднималось выше 50% — ожидаемо для относительно легкого приложения. Восьмиядерный процессор давал скачки от 4 к 8 ядрам, но меньшее среднее использование ядра – менее 35%.

YouTube – на 4-ядерном процессоре использовались только 2 ядра, в среднем менее 50% загрузки. На 8-ядерном в основном 4 ядра, временами вырастало до 6 и падало до 3. Загрузка ядер в среднем была всего 30%. Интересно, что планировщик предпочитал большие ядра, а маленькие почти не использовал.

Riptide GP2 – 4 ядра – процессор Qualcomm большую часть времени использовал два ядра, а остальные два – очень мало. А в 8-ядерном варианте последовательно использовались 6-7 ядер, но основную работу выполняли только три.

Templerun 2 – эта игра – более яркий пример проблемы однопоточности, чем другие приложения в тесте. В 8-ядерном варианте задействовались 4-5 ядер последовательно с пиками до 7. И только одно ядро выполняло тяжелую работу. На телефоне с 4-ядерным Qualcomm Snapdragon 801 два ядра делили нагрузку примерно поровну, а двум другим доставалось очень мало. На телефоне с 4-ядерным процессором от MediaTek нагрузка распределялась между всеми четырьмя ядрами. Это показывает, насколько разные планировщики и разные ядра разительно меняют то, как используется процессор.

Вот выборка графиков для наглядности. График бездействия 8-ядерной системы добавлен в качестве отправной точки.

Восьмиядерный аппарат, активный экран, пользователь не совершает никаких действий:

YouTube, запущенный на 4-ядерном аппарате:

YouTube, запущенный на 8-ядерном аппарате:

TempleRun2, запущенный на 4-ядерном аппарате:

TempleRun2, запущенный на 4-ядерном аппарате с процессором MediaTek:

Gmail, запущенный на 4-ядерном аппарате:

Gmail, запущенный на 8-ядерном аппарате:

Riptide GP2, запущенный на 4-ядерном аппарате:

Riptide GP2, запущенный на 8-ядерном аппарате:

Интересный результат получился в AnTuTu на 8-ядерном процессоре.


Как видите, последняя часть теста полностью загружает все ядра. Понятно, что бенчмарк искусственно создает высокую нагрузку, и поскольку все ядра работают на полную, чипсеты с большим количеством ядер выигрывают. С обычными приложениями такого не наблюдалось. Бенчмарки искусственно раздувают преимущество восьмиядерных аппаратов в производительности (больше, чем в энергоэффективности).

Почему легкие приложения используют 8 ядер?

Если вы посмотрите на приложения вроде Gmail, вы заметите интересный феномен. На 4-ядерном аппарате использование ядер поровну распределено между двумя и четырьмя ядрами, а на 8-ядерном – между четырьмя и восемью. Как Gmail может работать на 2 – 4 ядрах на 4-ядерном телефоне, а на 8-ядерном требовать как минимум четырех ядер? Бессмыслица какая-то.

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


Посмотрите, вначале используются ядра big, а ядра LITTLE неактивны. Затем, около отметки 12 секунд, ядра big начинают использоваться меньше, и просыпаются ядра LITTLE. На 20 секундах big-ядра увеличивают активность снова, и LITTLE снижают ее почти до нуля. Это видно и на отметках 30, 45 и 52 секунды. В этих точках число использованных ядер колеблется. К примеру, в первые 10 с используются только 3 или 4 ядра (это ядра big), и на 12 с это число доходит до 6, затем снова падает до 4 и т.д. Так работает big.LITTLE. Этот процессор построен не так, как процессор для ПК. Дополнительные ядра позволяют планировщику выбирать для разных действий правильные ядра.

Все тесты, которые проводились, показали, что не нашлось ни одного реального приложения, которое использовало бы все 8 ядер на сто процентов. Так и должно было быть.

Подводим итоги

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

Затем, тесты еще не проводились для схемы Cortex-A53/Cortex-A57 или Cortex-A53/Cortex-A72. У Qualcomm Snapdragon 615 4-ядерный 1.7 ГГц ARM Cortex A53 кластер и четырехъядерный кластер 1.0 ГГц A53.

Интервал сканирования в этой статистике равен примерно трети секунды, т. е. около 330 миллисекунд. Если ядро сигнализирует об использовании на 25% в эти 300 миллисекунд и второе ядро – о том же самом, график покажет, что оба ядра используются на 25% одновременно, при этом одно ядро может задействоваться на 25% в течение 150 миллисекунд, то же и со вторым. Это означает, что ядра использовались последовательно, а не единовременно. В настоящее время меньшего интервала тест не предполагает.

При всем при этом, Android приложения очевидно способны использовать преимущества многоядерных процессоров и процессоры big.LITTLE позволяют планировщику выбрать наилучшую комбинацию ядер для текущей задачи. Поэтому если вы по-прежнему слышите от людей «Но смартфону не нужны 8 ядер!», вам остается только развести руками в отчаянии. Ничего-то эти люди не понимают.

Многие владельцы Android устройств на различных форумах и сайтах часто встречают упоминание о чем-то непонятном, что называют ядром, или по-английски kernel. Его можно поменять и упоминание о нем встречается в меню настроек устройства, в разделе «О планшете (телефоне)».

Если копнуть поглубже, то окажется, что ядро – это часть операционной системы, и оно есть не только у Android, но и у других операционных систем: Windows, iOS, MacOS и прочих. Но нас будет интересовать ядро Android, и что это такое я попытаюсь объяснить на уровне начинающих пользователей.

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

А ядро Android является, практически, самой главной частью операционной системы, которая отвечает за взаимодействие между всем «железом» и программной частью системы. Ядро состоит из набора драйверов всего имеющегося в устройстве оборудования и подсистемы управления памятью, сетью, безопасностью, и прочих основных функций операционной системы.
Например, когда вы касаетесь экрана, чтобы запустить какое-либо приложение, драйвер сенсорной панели экрана определяет место, в котором произошло нажатие и сообщает координаты другим программам, которые опять же с помощью ядра найдут в памяти устройства нужное приложение и запустят его. Это конечно, очень упрощенная модель, но суть работы операционной системы она отражает.

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

Ядро управляет абсолютно всем оборудованием: Wi-Fi, Bluetooth, GPS, памятью и прочими устройствами. Не является исключением и «сердце» устройства – его процессор. Ядро может управлять его частотой и энергоснабжением.
Ядро операционной системы Android, позаимствовано ее разработчиками, компанией Google, у операционной системы Linux.


Так как ядро управляет всем оборудованием, а оборудование у всех планшетов и телефонов разное, базовое ядро Android дорабатывается производителем для каждого устройства отдельно.

Как и прошивки , ядра бывают стоковыми (заводскими) и кастомными – альтернативными, созданные независимыми разработчиками.

Зачем нужны кастомные ядра? Стоковое ядро максимально оптимизируется производителем для конкретного устройства, но в нем обычно заблокированы такие важные функции ядра, как, например, управление частотой процессора. И если вам понадобится разогнать процессор своего планшета, вам нужно будет сменить ядро на кастомное, в котором функция управления частотой процессора разблокирована.

Кроме того, кастомные ядра, обычно основаны на более свежих версиях Linux ядер. Вот примерный перечень возможностей, которые нам дают кастомные ядра:

  • Изменение частоты процессора в широких пределах;
  • Разгон графической подсистемы (GPU);
  • Снижение частоты и напряжения питания процессора, что позволяет достичь более длительного времени работы от батареи;
  • Более свежие и качественные драйверы, например, ускоряющие работу GPS или добавляющие новые функции;
  • Широкие возможности по настройки и конфигурации звука и цветовой гаммы экрана;
  • Поддержка альтернативных файловых систем (XFS, ReiserFS и прочих).

Так как альтернативные ядра создаются независимыми разработчиками, нет никакой гарантии, что после установки кастомного ядра ваш планшет или телефон будут работать без сбоев. Поэтому перед прошивкой нового ядра желательно сделать полную резервную копию системы.

Многие владельцы смартфонов интересуются, что такое процессор в телефоне и какие его функциональные возможности. По аналогии с персональным компьютером, микрочип является сердцем мобильного устройства. Однако он используется вместе с другими компонентами (графическим ускорителем, прочими), образуя систему, которая выполняет функцию командного центра. Абсолютным лидером среди разработчиков архитектур для микропроцессоров является компания ARM Limited. Преимущественное большинство производителей, таких как , NVidia, Apple и другие, используют при изготовлении чипов технологию ARM.

Различные версии архитектур для процессора в телефоне.

Архитектура – одна из важнейших характеристик микропроцессоров. Благодаря развитию технического прогресса постоянно расширяются функциональные возможности смартфонов. Модернизация устройств требует более новых версий «начинки», которые позволяют оптимизировать их работу. Например, увеличить производительность, снизить затраты энергии, прочее. Однако вместе с преимуществами процессоры более новых версий имеют некоторые недостатки. Так, устройства на базе ARMv6 оказались не совместимыми с некоторыми приложениями, в частности, играми, разработанными для ARMv7. Это является не единственным доказательством, что разница между различными версиями одной архитектуры может быть такой же, как между совершенно разными архитектурами.

От чего зависят основные параметры процессора в телефоне.

Второй по значимости характеристикой после архитектуры является ядро. В технических параметрах каждого смартфона, как правило, указывается двух- либо четырехядерный процессор. Ядро определяет следующие параметры работы девайса: 1. Производительность. Для трехмерных игр, приложений для обработки видео-, мультимедийных файлов необходимо наличие 4 ядер. Иногда в коммуникаторах используют дополнительное 5 ядро для выполнений несложных задач таких, как экономия заряда батареи при высокой производительности. В целом, большее количество ядер не столько расширяет функциональные возможности системы, сколько увеличивает скорость выполнения задач. Оптимизация процесса производится за счет распределения нагрузки между элементами. 2. Энергопотребление. Для снижения энергозатрат ядра, которые не используются в процессе работы, автоматически отключаются. 3. Тактовая частота показывает, какое количество тактов выполняет микропроцессор за интервал времени (секунда). Единица измерения – ГГц, МГц. Величина тактовой частоты пропорциональна скорости работы устройства, а также значению энергопотребления. С целью снижения энергозатрат производители ставят ограничение на ТЧ. Чтобы обеспечить высокую производительность при низком энергопотреблении, рекомендуется приобретать коммуникаторы на базе 4х-ядерных процессоров. Однако с целью предотвращения перегрева устройства, необходимо устанавливать приложения последних версий.

Дополнительные характеристики мобильных процессоров.

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