Пользовательские ядра по сравнению с ядрами ARM, в чем все это?
Читая о конструкции ядер ЦП, вы, вероятно, встречали термин «настраиваемое ядро», особенно когда читали об Apple или Qualcomm. Так что же такое кастомное ядро? Почему люди так суетятся из-за них? И кто их проектирует? Что ж, давайте узнаем!
РУКА
Подавляющее большинство смартфонов Android (и всех iPhone) используют процессоры на базе архитектуры ARM. «Архитектура» в этом контексте означает набор команд и философию проектирования, лежащую в основе этого набора команд. Другие архитектуры процессоров для мобильных устройств включают Intel и MIPS.
Архитектура ARM известна как архитектура RISC (компьютер с сокращенным набором инструкций), где идея состоит в том, что при использовании упрощенного набора инструкций инструкции могут выполняться быстро, но вам может потребоваться выполнить более одной инструкции для достижения того же результата, что и одна инструкция на процессоре CISC (компьютер со сложным набором команд). Есть также некоторые другие конструктивные решения, которые являются фундаментальными для RISC, включая то, что вся обработка данных работает только с содержимым регистров, а не непосредственно с памятью.
Intel использует подход CISC, однако, по иронии судьбы, сегодня большинство конструкций ЦП берут инструкции (сложные или простые) и превращают их в микрокод перед их выполнением.
Бизнес-модель ARM отличается от модели Intel тем, что ARM лицензирует (продает) свои разработки ЦП (то есть интеллектуальную собственность или интеллектуальную собственность) своим клиентам, которые затем, в свою очередь, создают свои собственные микросхемы. ARM получает лицензионный сбор за каждый проданный чип, плюс лицензиаты должны сертифицировать свои чипы как ARM-совместимые. Intel, с другой стороны, проектирует, строит, производит и продает свои собственные чипы и только свои собственные.
Среди клиентов ARM такие компании, как Qualcomm, Apple, Samsung, MediaTek, Huawei, Rockchip и другие. Каждая из этих компаний поддерживает деловые отношения с ARM, что позволяет им создавать процессоры, совместимые с архитектурой ARM. Существует два основных уровня лицензии: лицензии на ядро и лицензии на архитектуру. Лицензия на ядро позволяет партнерам ARM использовать полную архитектуру ядра (например, Cortex-A72) и включать ее в систему на кристалле (Soc) вместе с графическим процессором, контроллером памяти и т.д. Компания имеет право использовать основной дизайн, как ему нравится, в любых конфигурациях, которые он хочет, однако не разрешается изменять основной дизайн. В настоящее время ARM лицензирует четыре отдельных 64-разрядных ядра: Cortex-A35, Cortex-A53, Cortex-A57 и Cortex-A72. В разработке находятся другие основные проекты,
Лицензиату архитектуры разрешается разрабатывать свои собственные ядра архитектуры ARM, а затем использовать эти ядра по своему усмотрению, в любой конфигурации, которую он желает, при условии, что конструкция ядра совместима с набором инструкций ARM. Владельцами архитектурной лицензии являются Qualcomm, Apple, Samsung, NVIDIA и Huawei.
Отсюда и термин «настраиваемое ядро», это конструкция ядра ЦП, созданная лицензиатами архитектуры ARM, совместимая с архитектурой ARM, но не являющаяся архитектурой ARM Cortex-A.
Большинство (если не все) лицензиатов архитектуры также являются лицензиатами ядра, а это означает, что компания будет иметь в своем ассортименте SoC, которые используют как ядра ARM Cortex-A, так и ядра, разработанные ее собственными командами.
Qualcomm
Qualcomm – это «классический» пример лицензиата ARM высшего уровня. Он имеет как архитектурные лицензии, так и лицензии на ядро. Если вы посмотрите на текущий ассортимент 64-битных SoC (я пишу это в самом начале 2016 года), вы увидите, что все они основаны на проектах ARM Cortex-A53 и Cortex-A57. Например, Snapdragon 810 использует четыре ядра Cortex-A53 и четыре ядра Cortex-A57 в конфигурации с гетерогенной многопроцессорной обработкой (HMP) с использованием технологии ARM big.LITTLE.
Однако Qualcomm также имеет свои собственные «нестандартные» конструкции ядра. Самым известным до сих пор был дизайн ядра Krait, присутствующий в SoC, таких как Snapdragon 801 и Snapdragon 805. Как я уже упоминал выше, все 64-разрядные процессоры Qualcomm используют дизайн ARM Cortex-A, однако для второго поколения. 64-битных процессоров Qualcomm будет использовать как разработки Cortex-A, так и собственные разработки. Snapdragon 650 и Snapdragon 652 будут использовать ядра Cortex-A53 и Cortex-A72, однако Snapdragon 820 будет использовать собственное ядро Kryo от Qualcomm .
Qualcomm уже отправила разработчикам свои первые устройства на базе Snapdragon 820 в рамках программы MDP (Mobile Development Platform), а также доступны некоторые начальные результаты тестов. Что мы знаем о 820, так это то, что он имеет четыре ядра Kryo, скомпонованных в гетерогенную многопроцессорную конфигурацию (HMP), причем два высокопроизводительных ядра имеют более высокую тактовую частоту и соединены с большим объемом кеш-памяти L2, а также два ядра с низким энергопотреблением, которые имеют более низкая тактовая частота и меньший размер кэшей L2.
Также кажется, что Qualcomm также работал над улучшением пропускной способности памяти 820. Согласно Geekbench 3, он имеет вдвое большую пропускную способность, чем Snapdragon 810. Улучшения, вероятно, связаны с улучшениями в контроллере памяти и общей архитектуре, управляющей передачей памяти. позволяя чипу оптимально использовать теоретическую пропускную способность, предлагаемую двумя контроллерами памяти LPDDR4, которые предлагают теоретическую пропускную способность 28,8 ГБ / с. Самая быстрая скорость, зафиксированная в ходе тестов, показала пиковую пропускную способность 17,4 ГБ / с на 820 по сравнению с 7,5 ГБ / с для Snapdragon 810.
яблоко
Хотя Qualcomm может представлять собой типичного лицензиата архитектуры ARM, Apple – нетипичный пример. Qualcomm (и другие) создают SoC, которые затем продаются производителям смартфонов. Qualcomm не производит никаких потребительских устройств. Apple, с другой стороны, разрабатывает SoC, которые используются исключительно в iPhone и никому больше не продаются.
Все iPhone, от оригинального iPhone до последнего, используют процессоры на базе ARM. На протяжении многих лет Apple использовала разработки ARM Cortex-A – в iPhone 4S использовалась двухъядерная SoC Cortex-A9 (Apple A5), а также собственные разработки. В iPhone 5 использовалась SoC Apple A6 с двумя ядрами Swift. Swift был первым разработанным Apple пользовательским ядром. Это 32-битный ARMv7-совместимый дизайн, который улучшает Cortex-A9, добавляя поддержку таких функций, как Advanced SIMD v2 и VFPv4.
Решение Apple перейти с ядер Cortex-A, поставляемых ARM, на собственные ядра стало результатом покупки Apple в 2008 году PA Semi, компании по разработке микросхем, основанной Дэниелом В. Добберпулем, ведущим разработчиком процессоров DEC Alpha 21064 и StrongARM.. Прошло несколько лет, прежде чем команда была готова выпустить свой первый дизайн SoC с чистого листа, однако, как только это произошло, Apple никогда не возвращалась к дизайну ядра ARM.
После Swift появился Cyclone, дизайн с 64-битным ядром, который застал остальную часть разработчиков чипов на базе ARM, спящих на работе. SoC Apple A7 была выпущена в сентябре 2013 года для использования в iPhone 5S (и различных моделях iPad). Примерно за 12 месяцев до этого ARM анонсировала свои разработки Cortex-A53 и Cortex-A57 и внесена в список компаний-первых лицензиатов, таких как Samsung и Huawei. Однако упоминания о Qualcomm не было. При запуске iPhone 5S ни один из других производителей SoC не объявил о каких-либо планах относительно 64-битных процессоров.
После выпуска A7 старший вице-президент Qualcomm назвал чип A7 «маркетинговым трюком», однако позже Qualcomm опубликовала заявление, в котором говорилось, что комментарии были неточными и что «экосистема мобильного оборудования и программного обеспечения уже движется в направлении 64 -немного; и переход к 64-битной версии предоставляет возможности класса настольных компьютеров и пользовательский интерфейс для мобильных устройств, а также позволяет мобильным процессорам и программному обеспечению запускать новые классы вычислительных устройств ».
Однако у Apple теперь было 18 месяцев впереди Qualcomm с точки зрения 64-битных вычислений и три года с точки зрения пользовательских 64-битных ядер. Примером тому служат Typhoon и Twister, 64-разрядные ядра ARM второго и третьего поколения от Apple.
С каждым поколением пользовательского ядра Apple могла настраивать дизайн, чтобы добиться все большей и большей производительности. Считается, что последний прирост производительности Apple A9 SoC связан с увеличением тактовой частоты, изменением способа использования кэшей уровней 1, 2 и 3 и улучшением микроархитектуры.
Samsung
Samsung был последним, кто присоединился к партии кастомного ядра. До сих пор все его процессоры на базе ARM, как 32-разрядные, так и 64-разрядные, использовали дизайн ARM Cortex-A. Например, Exynos 7420 использует четыре ядра Cortex-A53 и четыре ядра Cortex-A57, как и Qualcomm Snapdragon 810. Однако в 2013 году начали появляться слухи о том, что Samsung разрабатывает собственное ядро ARM.
Компания Samsung под кодовым названием Mongoose недавно подтвердила, что следующее поколение процессоров Exynos будет использовать собственные ядра ЦП на основе 64-битной архитектуры ARMv8. Фактически, Exynos 8 Octa будет использовать четыре пользовательских ядра и четыре ядра ARM Cortex-A53 в конфигурации big.LITTLE.
На данный момент мало что известно о конструкции ядра Mongoose, однако ожидается, что Exynos 8 SoC будет включать графический процессор ARM Mali-T880 и будет использоваться в некоторых моделях Samsung Galaxy S7.
NVIDIA
Вероятно, будет справедливо сказать, что стратегия NVIDIA в отношении SoC в лучшем случае несвязна, после относительного успеха Tegra 3 (выпущенного в 2011 году) компания приступила к разработке Tegra 4. Однако инсайдеры отрасли говорят, что процесс разработки был упорным. с проблемами и изменениями требований, даже на поздних стадиях жизненного цикла разработки. Полученные в результате чипы Tegra 4 – SoC на базе Cortex-A15 и Tegra 4i – SoC на базе Cortex-A9 не имели большого коммерческого успеха.
Затем последовала Tegra K1, смесь дизайна, которая выпускалась либо в 32-битной четырехъядерной (плюс один) версии на базе Cortex-A15, либо в 64-битной двухъядерной версии, основанной на пользовательском дизайне ядра Denver от NVIDIA. Первоначально проект Denver задумывался как ядро ЦП общего назначения, которое запускало бы программное обеспечение как для процессоров Intel x86, так и для процессоров ARM, используя двоичную трансляцию и морфинг кода. Идеи были похожи на идеи, использованные Transmeta, злополучной полупроводниковой компанией, в которой когда-то работал Линус Торвальдс. По словам Чарли Демерджяна из SemiAccurate, ЦП Project Denver изначально предназначался для поддержки машинного кода ARM и x86, но поддержка x86 была прекращена, поскольку NVIDIA не могла получить лицензию от Intel.
Единственным устройством, на котором использовалась Tegra K1, был планшет HTC Nexus 9. В прошлом NVIDIA включала проект, известный как Parker, в свои дорожные карты продукта, SoC, который также должен был быть основан на Денвере. Однако вполне вероятно, что Паркер и Денвер мертвы. Основная проблема заключается в том, что Transmeta пыталась и не смогла коммерциализировать процессоры морфинга кода, и для NVIDIA было высокомерием думать, что она может добиться успеха там, где Transmeta потерпела неудачу.
После Tegra K1 появился Tegra X1, SoC, основанный на архитектуре ядра ARM Cortex-A, четыре ядра Cortex-A53 и четыре ядра Cortex-A57, если быть точным. Отказавшись от собственных разработок ядра, похоже, что NVIDIA на данный момент будет придерживаться дизайна ядра ARM.
Кастомные ядра лучше?
Итак, вот вопрос, лучше ли кастомные ядра, чем ядра ARM? Ну, это зависит от того, что вы имеете в виду под словом «лучше». Существует несколько способов охарактеризовать ядро ЦП, некоторые из которых не являются техническими. Помимо производительности и эффективности (две технические характеристики), вам также необходимо учитывать стоимость, маркетинг, разнообразие и цель.
В настоящий момент существует, вероятно, 4, может быть, 5 команд инженеров по всему миру, проектирующих ядра процессоров для смартфонов на основе архитектуры ARM. Одна команда принадлежит самой ARM, другая – Apple, Qualcomm и Samsung. Как и во всех отраслях (например, автомобили, текстиль, биологические исследования и т.д. ), Одна команда будет опережать другую в том или ином аспекте.
Что касается того, кто делает ядра с максимальной производительностью, это может быть Apple. Я говорю может бытьпо трем причинам. Во-первых, смартфоны с Snapdragon 820 еще недоступны для потребителей (на момент написания), равно как и устройства с процессором Samsung Exynos 8-й серии или другими процессорами с Cortex-A72. Во-вторых, тестирование чистой производительности ЦП в двух разных операционных системах опасно. Например, Geekbench 3 на iOS делает то же самое, что и Geekbench 3 на Android? В-третьих, очевидная производительность SoC Apple может быть связана с другими внешними факторами, включая тот факт, что Apple «владеет» всей экосистемой, начиная с нижних уровней 1 и 0, работающих в ЦП, вплоть до iOS и компилятора, и до сам телефон. Для Android это совсем другая история: дизайн ядра может исходить от ARM, физического чипа от Qualcomm, ОС от Google и телефона от Samsung. Такая система имеет преимущества,
Поскольку Apple контролирует все, от SoC до устройства, включая ОС и компиляторы, есть много предположений о том, какие дополнительные функции Apple включает в свои процессоры, которые доступны только самой Apple. Например, набор инструкций ARMv8 включает специальные инструкции для аппаратного шифрования. Эти инструкции доступны для всех 64-битных ARM-совместимых ядер, включая ядра Apple. А что, если бы Apple обнаружила, что iOS выполняет определенные операции в программном обеспечении, которые можно улучшить, добавив поддержку оборудования? Он мог бы реализовать эту поддержку, добавляя новые инструкции к ядрам своего ЦП или добавляя другие части дискретного оборудования к SoC, которые затем используются ОС. Другие производители SoC добавляют в свои чипы процессоры изображений или DSP, и известно, что Apple добавляет такие компоненты, как сопроцессоры движения, но Apple очень умалчивает о том, что еще она добавляет. Такие компании, как Qualcomm, должны быть более открытыми в отношении того, что входит в SoC, поскольку они хотят продавать свои чипы производителям телефонов. Но Apple совсем не обязательно быть открытой, на самом деле Apple известна тем, что очень скрывает эти вещи, если нет маркетингового преимущества. Новый Helio X20 от MediaTek, который использует ядро Cortex-A72, также включает микроконтроллер Cortex-M4 (с DSP). Это используется чипом для поддержки различных постоянно включенных приложений, таких как воспроизведение MP3 и голосовая активация. Вместе с пользовательскими ядрами возникает вопрос, что Apple добавила в свои SoC? на самом деле Apple известна тем, что очень умалчивает об этих вещах, если нет маркетингового преимущества. Новый Helio X20 от MediaTek, который использует ядро Cortex-A72, также включает микроконтроллер Cortex-M4 (с DSP). Это используется чипом для поддержки различных постоянно включенных приложений, таких как воспроизведение MP3 и голосовая активация. Вместе с пользовательскими ядрами возникает вопрос, что Apple добавила в свои SoC? на самом деле Apple известна тем, что очень умалчивает об этих вещах, если нет маркетингового преимущества. Новый Helio X20 от MediaTek, который использует ядро Cortex-A72, также включает микроконтроллер Cortex-M4 (с DSP). Это используется чипом для поддержки различных постоянно включенных приложений, таких как воспроизведение MP3 и голосовая активация. Вместе с пользовательскими ядрами возникает вопрос, что Apple добавила в свои SoC?
Это подводит нас к концепции гетерогенных вычислений (HC). Не путать с гетерогенной многопроцессорной обработкой (HMP), HC позволяет распределять задачи между CPU, GPU, DSP, ISP или любым другим процессором, который может справиться с задачей наиболее эффективно. Видите ли, процессоры могут быть разработаны для более эффективного выполнения определенных задач, но единая конструкция изо всех сил пытается быть успешной во всем. Ваш типичный ЦП может хорошо справляться с последовательной обработкой, тогда как графический процессор может обрабатывать потоки параллельных данных, а ЦСП лучше оптимизирован для обработки чисел с высокой точностью в реальном времени.
Гетерогенные вычисления распространяются на более широкий круг компонентов обработки, чем только на ЦП.
Одна из вещей, которые Qualcomm продвигает в Snapdragon 820, – это возможности HC и Qualcomm Symphony System Manager. С помощью Symphony System Manager задачи могут быть разделены между любым из его процессорных ядер Kryo, его графическим процессором Adreno 530, Hexagon 680 DSP и провайдером камеры Spectra. Конечно, ключевым моментом является поддержка программного обеспечения, способ для разработчика приложения сообщить базовой ОС, что определенная деятельность подходит для определенного типа процессора.
Возвращаясь на мгновение к производительности, первоначальные данные тестов показывают, что Snapdragon 820 и Exynos 8 будут предлагать уровни производительности, аналогичные Apple A9 SoC, однако они не превзойдут его. Поскольку Apple использует 64-разрядный процессор третьего поколения, Qualcomm и Samsung – первые, а ARM – второй (Cortex-A57, за которым следует Cortex-A72), то кажется логичным, что Apple будет опережать конкурентов. поле пока.
Итак, сегодня вполне вероятно, что команда Apple опережает по производительности, в следующем году может быть другая команда. При этом каждая из этих команд состоит из высококвалифицированных разработчиков процессоров, и хотя разница в производительности измерима, она не сильно отличается.
Когда дело доходит до эффективности, ARM – явный победитель по двум причинам. Компания First ARM построила весь свой бизнес на разработке энергоэффективных ядер ЦП, и такие ядра, как Cortex-A35, демонстрируют возможности компании в этой области. Однако он также имеет то преимущество, что никто другой не разрабатывает ядра ARM, ориентированные специально на энергоэффективность. Вы видите, что все остальные «нестандартные» разработчики ядра нацелены на производительность в первую очередь, а во вторую – на эффективность. ARM не просто делает одно ядро, как Apple, у него есть Cortex-A35 на конце шкалы с высокой эффективностью и Cortex-A72 с высокой производительностью, с Cortex-A53 и Cortex-A57, зажатыми между ними.. Ни Apple, ни Samsung, ни Qualcomm не охватывают такой диапазон.
Это подводит нас к «почему», как мог бы сказать Меровингиан. В чем смысл разработки собственного ядра ARM? Чтобы разработать собственное ядро дорого, вам нужно нанять команду высококвалифицированных инженеров ЦП в течение длительного периода (несколько лет) для создания ядра ЦП, которое в лучшем случае на несколько процентных пунктов быстрее, чем у вашего конкурента, плюс оно станет устаревает за считанные месяцы. Никто сегодня не говорит о высокой производительности ядра Apple Swift, ее превзошли все, в том числе и сама Apple. «Почему» – это маркетинг. Рынок смартфонов очень, почти безумно конкурентный. Рынок смартфонов – это тоже большой бизнес. Доходы Apple от iPhone больше, чем доходы Intel и Google вместе взятых!
Если такая компания, как Apple или Samsung, может выделиться среди конкурентов с помощью пользовательских ядер, то (на данный момент) кажется (на данный момент) экономически целесообразным для них разрабатывать собственные ядра. Конечно, есть риск, что если ядро окажется «рваным», это может серьезно навредить бизнесу. Что касается других производителей смартфонов, им необходимо покупать свои SoC у производителя микросхем, такого как Qualcomm, и им также требуются высокопроизводительные SoC. Интересно отметить, что, когда Samsung и Qualcomm нуждаются в базовом дизайне для не флагманских телефонов, они оба выбирают базовый дизайн ARM, вы видите, что нет никакого похвалы в наличии телефона среднего класса с SoC среднего уровня, который имеет пользовательский основной дизайн. Единственное возможное исключение – если у вас есть проверенный дизайн, который был лучшим ядром прошлого года, но был заменен. Чтобы получить большую отдачу от инвестиций, этот основной дизайн можно переназначить для среднего уровня. Именно это сделала Qualcomm со своим 32-битным дизайном Krait.
Заворачивать
Итак, что все это значит для потребителя? На самом высоком уровне это означает, что инновации и прогресс очень живы и здоровы в экосистеме ARM. Это подогревается конкуренцией и соперничеством между такими компаниями, как Apple, Samsung и Qualcomm. ARM также вовлечена в это соревнование и продолжает свои инновации.
Это также означает, что есть большой выбор, особенно в high-end. Какой основной дизайн вам нужен? Kryo, Mongoose, Cortex-A72 или Twister? Выбор за вами! Для телефонов премиум-класса среднего и низкого уровня есть еще больший выбор: Cortex-A57, Cortex-A53, Krait и вскоре Cortex-A35. Кроме того, все эти ядра имеют множество различных конфигураций: двухъядерные, четырехъядерные, шестиядерные и восьмиъядерные, все с HMP или без него.
Такая конкуренция и разнообразие также доказали, что не существует единственного «правильного пути». SoC Apple A9 – двухъядерный. Snapdragon 820 – четырехъядерный процессор с HMP. Exynos 8 – восьмиядерный, также с HMP. Helio X20 от MediaTek – это десятиъядерный чип с двумя ядрами Cortex-A72 и восемью ядрами Cortex-53, а также HMP. У каждой конфигурации есть свои преимущества и недостатки.
Читайте дальше:
- Кто делает лучшие SoC: Intel против Qualcomm против Samsung
- ARM против X86 – объяснение основных различий!
Наконец, это показывает нам, что на самом деле ядра ARM сами по себе являются «кастомными» ядрами, «кастомными» ядрами, которые созданы теми же людьми, которые разработали архитектуру. Но так же, как Apple, Qualcomm или Samsung, инженеры ARM работают над созданием ядер для разных целей, но не только для high-end, но и для рынка сверхэффективного энергопотребления или для рынка бюджетных смартфонов.
Источник записи: https://www.androidauthority.com