Как устроены мобильные процессоры, и какие они бывают

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

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

Как устроены современные мобильные процессоры? Ради экономии электричества, в них нет такого большого множества специализированных блоков. Большая часть отдана на универсальные, или часто встречающиеся, типы счисления. В итоге, любую более-менее сложную задачу такой процессор будет решать гораздо дольше настольной архитектуры (х86). Зато ему не нужно даром кормить фигову тучу блоков, которые понадобятся раз в 100 лет.
Также, с целью экономии, в сам процессор интегрировали множество других элементов – видеокарту, модули связи, Bluetooth, GPS, Wi-Fi и пр. Как оказалось, с общей кормушки их кормить экономнее. Вот и все принципиальные отличия в их строении.

В мире мобильных процессоров нет борьбы нескольких компаний, как Intel vs AMD. Здесь только одна компания правит балом. Британская AMR (Advanced RISC Machines). Да, есть еще MIPS Technologies да Intel, но их доля на рынке ничтожна. Единолично разделяет и властвует здесь ARM. Правда, эта компания сама совершенно ничего не производит. Посчитав, что тягаться с силиконовыми гигантами бесполезно, она просто проектирует архитектуру процессоров и продает лицензии на их изготовление другим компаниям. И любой завод, обладающий соответствующими мощностями, может заплатить и сразу начать производить самые современные процессоры, без необходимости изобретать все с чистого листа. Ребята из Кембриджа (они в самом деле находятся в Кембридже) просят за свои услуги всего около 7 центов с каждого процессора, так что большинство производителей предпочитают работать с ними, а не кормить собственный штат инженеров.

Кроме того, лицензия AMR очень свободна. В силу того, что мобильные процессоры, как было сказано выше, это целые комбайны, где встроена и графика, и связь, и много всего прочего, то у производителей остается поле для маневра. ARM обязует строить по определенной схеме только процессорный блок и разводку к нему. Что производитель туда добавит – его личное дело. Более того, расширенная лицензия позволяет даже вносить изменения в разработки ARM. Т.е. компания может заплатить и без особых усилий сразу производить современный готовый продукт, а может заплатить чуть больше и усовершенствовать самые последние наработки ARM так, как считает нужным.

В итоге, все остались довольны. Производители победнее покупают лицензию и сразу выпускают готовый недорогой чип. Производители побогаче (в первую очередь Apple, Qualcomm и Samsung) добавляют в чипы собственные разработки и получают более мощное решение. ARM получает деньги, занимаясь только тем, что умеет (проектированием) и у нее даже конкурентов нет.
Кстати, обратите внимание, китайцы клонируют практически любое устройство, чтобы не платить лицензию. Но в случае с ARM им все равно выгоднее покупать лицензию.

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

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

У ARM существует несколько этапов развития. Для простоты (и попсовости) мы назовем их поколениями. Я не встречал такого названия больше нигде, поэтому не берите особо это в голову – это просто для упрощения изложения материала.

Поколения у ARM имеют приблизительно такой вид: ARMv6, ARMv7, ARMv8. Когда вы увидите в следующий раз где-то просто шильдик вида «процессор: ARMv7» — знайте: от вас хотят побыстрее отделаться и не сообщают вообще никаких подробностей. Потому что в каждом поколении десяток разных архитектур, по лекалам которых выпущены десятки процессоров отличающихся друг от друга в разы.

На момент написания статьи поколение ARMv7 находится в своем расцвете. Но уже совсем скоро оно придет сначала в упадок, а затем вовсе вымрет. Так со всем происходит. Ничто не вечно под луной. Вы, кстати, – тоже.

В каждом поколении есть свои классы. ARMv7 разделяется на Cortex-A5, Cortex-A7, Cortex-A8 и Cortex-A9. Они стоят приблизительно в порядке возрастания производительности. Но создали их не одновременно. Сначала выдумали архитектуры Cortex-A5 (как вариант попроще) и Cortex-A8 (как более навороченный). Потом создали Cortex-A9, который некоторое время был венцом производительности, где-то на 50% опережая по этому показателю Cortex-A8. Именно на него приходится начало эры многоядерных мобильных процессоров. Именно при нем мы смогли смотреть неконвертированное видео.

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

О том, что поколению ARMv7 близится конец, стало понятно давно. Дело в том, что, в силу их 32-битной архитектуры, в смартфоны нельзя установить более 3 Гб оперативной памяти (о, как это знакомо по Windows, не так ли?). И, если лет семь назад (когда все это только создавалось) инженеры, зная эту цифру, спали спокойно, то флагманы этого года уперлись в нее вплотную. Но есть у 64-бит преимущество и в производительности.

Поколение ARMv8 64-битное. В телефон можно засунуть терабайты оперативки. Правда, скорее всего, это никогда не случится. Кроме того, в них есть множество «плюшек», например, реализованная в архитектуре возможность запускать 32-битный код в 64-битной системе прозрачно для оного. Или интересная реализация идеология big LITTLE. Суть big LITTLE предельно проста. У нас есть многоядерный процессор. Но кто сказал, что все ядра должны быть одинаковыми? В одном процессоре может быть сразу несколько архитектур. Например, два ядра Cortex-A15 и два – Cortex-A7. Когда телефон заблокирован, или вы просто читаете книгу, работает ядро или два Cortex-A7. А если вы запускаете свою любимую онлайн-гоцалку, оживают прожорливые и мощные Cortex-A15.

Кстати, Cortex-A15 на данный момент является единственным представителем этого поколения процессоров. Существуют еще несколько, но пока что только в спецификациях. Это ядро почти вдвое мощнее, чем Cortex-A9. И дальше у него, по-видимому, великое будущее. Архитектура Cortex-A7 в некоторой степени сходна с архитектурой Cortex-A15. Это позволяет наиболее просто комбинировать эти две архитектуры на одном кристалле.

Пару слов о графике

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

На рынке графических решений все обстоит по-другому. Есть множество компаний, проектирующую встроенную графику. Из всех них вы, скорее всего, знаете только nVidia. Но, в отличие от настольной графики, их мобильные решения — полный отстой. Может, скоро все изменится, но пока что – это провал. Даже несмотря на агрессивный маркетинг и эксклюзивные игры. Ну, да бог с ним. Итак:

Adreno. Наверное, самый популярный набор логики. Существуют как радикально старые и очень убогие варианты, типа 230, так и крайне навороченные, возможно, лучшие на рынке, типа 320. В силу своей массовости, под него все хорошо адаптировано. В них хорошо реализованы плюшки вроде шейдеров, частиц, OpenGL и прочих дополнений, делающих картинку особенно хорошей. Собственно, это все не с пальмы упало. Adreno — это Radeon, если переставить буквы. Когда AMD выкупила компанию ATI, которая производила хорошие видеокарты для компьютеров, у нее появились проблемы с деньгами. Так как AMD мобильный рынок не интересовал, она продала это подразделение компании Qualcomm. И тайванцы сумели довести их разработки до эталона в отрасли. Но есть и минус — графика Adreno встречается исключительно в процессорах Qualcomm.

PoverVR. У этой компании интересное прошлое. В ветхие времена они делали графические карты для настольных компьютеров. Но не выдержали конкуренции с той самой nVidia и, ныне почившей, 3dfx, и ушли во встраиваемую графику. В то время это был маленький маргинальный рынок, где денег было немного, поэтому ни nVidia, ни 3dfx туда не полезли. Но прошло время и сейчас наступил просто расцвет мобильных устройств. Теперь у PoverVR есть возможность расквитаться с nVidia, что она и делает. Именно PoverVR стоит на всех iPhone, iPod и iPad. При этом Apple иногда ставят не самый производительный процессор, но максимально производительную графику. Как по мне, мудрый подход. А еще, именно они делали первую графику для Intel. Но теперь, насколько известно, Intel этим занимается самостоятельно. Возможно, на основе некоторых технологий PoverVR. По популярности PoverVR находится на втором месте. По производительности у них также есть выбор от самых слабых решений до крайне продуктивных. Но на рынке очень часто встречаются их старые разработки. Почему – я не знаю.

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

nVidia (линейка Tegra). Когда этот гигант графики заявил, что выпустит графику для архитектуры ARM, у геймеров повысилось слюноотделение. В итоге, компания совершенно бездарно урезала блоки, которые сочла ненужными, и создала большое фиаско. Вместо самой крутой графики на рынке получилась одна из самых слабых. Маркетинг был очень быстро развенчан. Самая сильная карта компании, на которую было потрачено немало денег – договор на эксклюзивные игры. Если такие игры и шли на чипах с другой графической картой, то качество картинки ухудшалось. Этот бастион также упал практически сразу. Достаточно было самую малость изменить код игры (пропатчить), и она переставала проверять графическую карту. И пошли эксклюзивы на всех чипах с хорошей графикой. Единственное, прямо из Play Маркета невозможно было так сделать. Компания выпустила несколько поколений графики, но особо не преуспела. И сейчас эту линейку практически полностью свернули.

И громадное количество китайской графики. Бывают такие названия, каких никогда до этого не слышал и более никогда не услышишь. Часто они и называются в китайском стиле, например «Pover Graphics». Такой чип – худшая ситуация для пользователя. Потому что, как бы ни был производителен такой чип, в 90% случаев у них очень сырые дрова, что приводит как к вылету игр, так и странным артефактам во время игры. Да и встраивают такую графику только с одной целью – сэкономить. Так что орла из этой курицы никак не выйдет. И будь у вас хоть восемь ядер, у вас вполне может подтормаживать Рабочий стол.

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

О производителях процессоров.

По лицензии процессоры производят многие компании. Фактически, любая компания, обладающая соответствующими заводами, может выпускать процессоры. Вкупе с низкой стоимостью лицензии, это объясняет наличие на рынке и китайских компаний.

Qualcomm. Компания занимается исключительно полупроводниками. В пределах лицензии ARM улучшили архитектуру. Сейчас являются лидерами в области, их чипы, пожалуй, лучшие на рынке. Продукция компании называется Snapdragon. В 2013 году ввели новую систему номенклатуры. Теперь чипы маркируются трехзначным числом, чем больше число – тем производительней чип. Соответственно, есть самая примитивная линейка 2xx, есть чуть мощнее Snapdragon 4xx, есть хорошая по производительности Snapdragon 6xx а самая производительная именуется Snapdragon 8xx. Поддерживают практически все стандарты связи – LTE, Wi-Fi ac, GPS, ГЛОНАСС и пр.

Samsung. Компания занимается всем, в том числе и производством процессоров. Также улучшили архитектуру ARM на свой манер, только сделали это менее удачно. Отличительная черта – не могут засунуть теперь в свои чипы модуль связи LTE. В итоге должны в часть своих смартфонов закупать чипы у конкурентов. Их последние 8-ядерные монстры построены по архитектуре bigLITTLE, т.е. 4 производительных ядра + 4 энергоэффективных. За счет этого их устройства живут от одного заряда батареи, как правило, дольше. Продукция называется Exynos, номенклатура которых содержит четыре цифры, по той же логике — чем больше число — тем производительнее чип. Иногда в конце добавляется приставка Quad, Hexa или Octa, чтобы было понятно, сколько ядер содержит.

Apple. Сами ничего не производят. По крайней мере, пока что. Их инженеры изменяют архитектуру по своему разумению и заказывают изготовление у Samsung или TSMS. Первыми перешли на 64-битные ARM-процессоры. В силу того, что добавили в архитектуру некоторые элементы из настольной архитектуры х86, часто показывают синтетическую производительность выше, чем у конкурентов. Продукция имеет маркировку вида A3, A4, A5 и т.д. – собственно по поколениям. Правда, эти поколения совершенно не зависят от поколений ARM, и начала их исчисления начинается с ARMv6. Обычно iPhone и iPad одного года выходят с процессорами одного поколения, но в iPad повышаются тактовые частоты.

MediaTeck. Китайцы. Хотя в последнее время начали внедрять какие-то собственные разработки, заслужили популярность в основном низкой ценой. Продукция в основном отличается минимальными изменениями по сравнению с эталонными разработками ARM и использованием графики Mali.

Texas Instruments (TI). Выпускали не самые мощные, но тоже очень неплохие чипы. Вытеснены компанией Qualcomm. С 2012 года ушли с рынка.

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

Rockchip и прочие noname-китай с супер-названиями. Общие черты: выпускают множество чипов на старой (более прожорливой и менее производительной) архитектуре Cortex-A8, почти всегда у них отсутствует GPS или Bluetooth или и то и другое (я молчу о LTE). В редких случаях это даже не архитектура ARM вовсе. И в последнем случае вы познаете все преимущества ARM, ведь у вас даже многие приложения из Play Маркета не установятся.

Intel. Это особый случай. К этой компании не относится ничего из этой статьи. Они не стали унижаться и покупать лицензию у ARM, зато решили запихивать обычные настольные процессоры в телефоны. Для этого стараются сделать свою настольную логику менее прожорливой. Эту компанию я здесь указал только для того, чтобы вы знали, что их чипы в телефонах тоже встречаются. Кстати, когда-то давно Intel все же покупала лицензию у ARM и производила свои мобильные процессоры XScale. Однако очень быстро этот бизнес был свернут и отделение продано. В эру пост-ПиСи, когда большие настольные компьютеры уходят на задний план, а остаются маленькие переносные устройства, в компании поняли, что очень скоро могут превратиться из лидера и гиганта в провинциальную компанию, продающую продукцию для научных лабораторий. Поэтому и заварился этот сыр-бор. Так как в лагере ARM все уже поделено, компания решила поставить на кон все. Если на мобильных устройствах победит архитектура ARM, то Intel все-таки превратится в небольшую узкоспециализированную компанию. Но если победит х86, то Intel еще больше укрепится на рынке, и ей станут больше не страшны ни AMD, ни ARM.

Кроме проблемы, как заставить х86 кушать меньше, Intel приходится решать и ряд других задач. Ведь материнские платы для их чипов также нужно создавать с ноля самостоятельно. И куда-то нужно запихнуть модули связи и передачи данных, ведь в кристалле их нет. Еще и производители приложений не спешат внедрять поддержку х86, а без приложений жизни нет.
В общем, впереди большая битва, и будут лететь щепки. Кто победит, неясно. Какими будут новые чипы – также неизвестно. Может быть, х86 избавится от некоторых блоков и станет похож на ARM? Вряд ли. Intel старается сделать так, чтобы все чипы для всех платформ делались на одной логике. Разрабатывать отдельно ветку для настольных компьютеров, а отдельно для мобильных – не их стиль. И упрощать х86 – подставлять спину AMD, которая очень обрадуется такому ходу. Ей будет достаточно лидерства на настольном рынке, ей много не нужно.
Может, ARM станет более сложной и похожей на х86? Это и так происходит, но похожей на х86 она не станет никогда.

Может, ARM станет немного похожей на х86, а х86 упростится навстречу ARM? Это все равно не решает главной проблемы – кто будет лидером. Ведь Intel будет не довольна даже вторым местом, не то, что «одним из».

А может быть, Intel перекупит лучших инженеров ARM, начнет вставлять палки в колеса, вести нечестную игру? Может, они пустят эту компанию по ветру, как в свое время nVidia сделала с 3dfx? Все это базарная аналитика, и никто не знает, что произойдет дальше. На кону большой куш. Огромные деньги. На кону безоблачное будущее.

Хочется еще пару слов сказать о частотах. Почему-то многие, воображающие себя «крутыми компьютерщиками», любят меряться частотами. Это верх глупости. Ведь что такое «частота»? Это количество операций, выполняемое процессором в единицу времени. Количество операций, понимаете? Сколько раз он свою мощь за секунду прогонит по полному циклу. Это все равно, что сказать, что ведром вы перенесете больше воды, чем водовозом, потому что за час сделаете двадцать ходок, а водовоз – две.

Понятное дело, что чем больше транзисторов в процессоре, тем больше информации он обработает за один такой такт. А еще на это влияет количество встроенной кеш-памяти. А еще – архитектура. А еще много чего. Например, кольцевая архитектура шины в процессорах Intel очень помогает их многоядерным монстрам. Или вы всерьез думаете, что двухядерный телефонный процессор на 2 ГГц сравнится с двухядерным Intel Core i3 на архитектуре Haswell? Все, для чего нужна маркировка гигагерц, – чтобы сравнить между собой процессоры одного поколения одного производителя. Все. Но так, как иначе пользователям сложнее впарить новый камень, приходится выносить частоту в рекламный проспект.

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

Более того, вы заметили, что в мобильных процессорах чаще всего больше ядер, чем в настольном? Что сейчас у настольников? Очень много 2-ядерных моделей, есть 4-ядерные. 6-ти и 8-ядерные продаются гораздо реже. Зато в телефонах 8 ядер — это стандарт. И это не спроста. Дело в том, что регулировать частоту очень сложно. Зато включить/выключить ядро крайне просто — утрируя, достаточно одного выключателя. Поэтому чаще всего большое количество ядер нужно для энергоэффективности. Телефон заблокирован — работает одно ядро. Вы проверяете почту — работает два-три ядра. Вы заходите в игру — включаются все возможные. Не обязательно 8 из 8 ядер. Чаще всего они работают по кластерам. Есть кластер из 2-4 очень производительных ядер, в которых банально больше транзисторов и выше частота. Но они включаются только когда нужна высокая производительность. Все остальное время работает второй кластер из 2-4 ядер попроще, но и кушают они меньше. А вместе они не работают потому что разные — мощные ядра выполняют работы раза в 2 больше, чем слабые — проще слабые вовсе отключить, чем пытаться задачи на них равномерно разделить.

Вот и представьте, в вашем супер-крутом смартфоне, которым вы так хвастаетесь, четыре ядра по 1,6 ГГц, ядра включаются только по надобности, и в этот самый момент, может быть запущенно только одно ядро на частоте 800 МГц. Да еще и Cortex-A7…

P.S.: Эта тема довольно обширная, так что если вы нашли неточность, или неправильное понимание материала — напишите в комментариях, я буду очень признателен.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *