Почему Android телефоны имеют больше ядер, чем компьютеры?

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

С другой руки, в мобильных телефонах, quadcores, hexacores и octacores кажутся. Почему? Какие задачи могут использовать их?

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

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

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

  • Игры могут быть производительность-голодные, но они, как правило, требуют производительности видеокарты, а не процессора, Дон't они?
  • Теоретически, несколько ядер может ускорить Android леденец/зефир AOT-компиляции при установке или при обновлении (т. е., этап “оптимизация приложений 3/121”). Я, однако, не уверен, если это может использовать несколько ядер. Насколько я помню код, только одно приложение компилируется, но может есть какой-то параллелизм в рамках самого процесса компиляции.
  • Также Android 7+ может использовать несколько ядер при компиляции. Но поскольку он якобы составляет в режиме ожидания и зарядка, выгода представляется довольно минимальным. По крайней мере, когда заряжает телефон на ночь – я действительно Дон'т волнует, если это займет 30минут или два часа в такой сценарий.
Комментарии к вопросу (8)
Решение

Как вы'вэ уже отмечалось, в биг.Маленький сочетание стратегии (технически, ГМЗ, вариант кластеры) является главной причиной для столь многих (а иногда и чрезмерно много) ядер. Мобильное устройство часто работает на несколько сценариев, как тяжелые нагрузки и легкие нагрузки в том числе.

Крайняя потребительского класса пример медиатек'с Хелио Х20, которых имеет 2 исполнения-ориентированного А72, 4 балансных А53 ядра и 4 энергоэффективных ядра А35. Что's очень гибкий в различных случаях использования. Однако, я думаю, что в <ы>по 8 ядер</с> 2 кластеры обычно достаточно.

Там's также другой рабочий стол, Как примеру, компания Qualcomm'С процессор Snapdragon 800 серии (с 800, с 801 и 805). Есть только 4 ядра той же микроархитектуры в каждой соц, 2 с тактовой частотой выше 2 и накрутил ниже. Компания Qualcomm сделала эти SoC, потому что они были очень уверены в своих собственных микроархитектуры (Krait 400, которая и Krait 450).

Для игр, даже если они, казалось бы, спрос на производительность GPU, а не CPU, в них еще положить большую нагрузку на процессор. Один процессор не может работать без чего-то еще, снабжая его данные обрабатывались, и что's один из основных рабочих мест, что процессор делает, пока вы'вновь игровой. В большинстве игровых случаев только GPU отрисовывает графики, а всех других заданий, как загрузка данных, ресурсов и активов, а также расчета игровой механики, как системы, среды и физики на ЦП. Вы выиграли'т соблюдать высокую частоту кадров, если вы обновите свой GPU придерживаясь низким уровнем конца процессор.

Вторая причина-это как Андроид использует ресурсы процессора. Андроид довольно много делает свои среды применения. Он не использует ничего, кроме кодов (и API) от Java, но он имеет свой собственный виртуальный автомат Далвик, который впоследствии был заменен искусства (уровень API 21). Апкс имеют свои исполняемые коды в на "нейтральной и" формат, очень нравится.класса файлы в Java. Прежде чем они'повторного запуска, коды компилируются еще раз в машину'родные с инструкциями<суп>[1]</SUP-серфинг>. Процесс компиляции многопоточных и может использовать несколько ядер для увеличения производительности. И когда приложение работает, есть несколько других процессов и механика (например, сборщик мусора), которые работают параллельно или параллельно приложения. Больше ядер может позволить вспомогательные процессы выполняются более эффективно, а также основные приложения. <суб>1. Если вы используете файл введите идентификатор, вы'll найти, что "оптимизировали" и Декс файлы в формате ELF формате, а в "нейтраль" и DeX файлы только в формате своей.</суб>

Еще меньшая причина в том, что сердечниками рукоятки может'т работать так же быстро, как процессор Intel с архитектурой x86. В микроархитектуре Intel x86 может быть датировано 1976 года, когда Интел 8086 чип начал быть спроектированы, что означает, что для платформы x86 сложилась в течение длительного времени. Один современный высокая-конец рукоятки Cortex-А73 ядра также могущественны, как Intel Clarkdale в ядро, принимая сердечник i5-660 в качестве примера (Geekbench, в одножильных). Это потому, что x86 это ЦИПУ микроархитектуры пока рукоятка РИНЦ микроархитектуры. Вы, конечно, Дон'т хотите телефон, который будет тормозить только с двумя или так и активными приложениями. Больше ядер поможет снизить давление. Что's, почему двухъядерном Кристалле являются довольно популярными только на смарт-часы. Кому нужна производительность на смарт-часы?

Интересно, больше ядер в результате меньше энергии, чем одно ядро на той же нагрузке. Взаимосвязь между частотой процессора и потребляемая мощность больше, чем линейная, так что в два раза выше частоты будет всегда приводить в требовании более чем в два раза, или даже 3 или 4 раза больше энергии, обеспечивая при этом менее чем в два раза производительность (за счет других ресурсных ограничений как кэш). Так что 4 ядра легко может обыграть одного ядра на ту же нагрузку, обеспечивая лучшую производительность и одновременно требует меньше энергии.

Для Дальнейшего Чтения:

Комментарии (15)

Причина так же проста, как усложнять.

Короткий ответ является "потому что рынок мобильных телефонов никогда не было и не зависит от Intel и".

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

Имея тотальный контроль рынка позволило Intel раздувать процессора ценам при искусственно решить, какие характеристики и сколько вычислительной мощности пользователи должны иметь хотел, и если ты посмотришь немного Интел истории вы'заметите, что его главная сила заключается в основном в увеличении частоты ЦП, поэтому его в основном никогда не пытался сделать что-то умное или инновационные; и ничего'т это нужно, ведь он может просто сказать людям "Вы не'нужно больше ядер, но у меня есть этот сочный новых процессоров, который работает 100 быстрее и quot МГц;. В то же время она могла бы продавать многоядерных процессоров на рынке серверов по несуразно высоким ценам <суб>(потому что сервера всегда нужен тонн параллельной власти, к тому, что есть современная тенденция в попытке реализовать серверов, которые используют...угадайте, что? Сотню ваш дешевый телефон процессоров, работающих параллельно)</суб>

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

Вместо того, чтобы, наконец, на мобильном рынке никогда не видел успеха Intel; совсем наоборот, на самом деле, как это происходит в большинстве случаев, что Intel пытается сделать что-то отличается от обычной архитектуры x86. Так, не хватает влияния и контроля рынка, другие процессоры производителя пошли в направлении, которое стало привычным явлением для возраста за пределами рынка ПК: параллельные вычисления.

Комментарии (15)

Есть два фактора, происходит одна очень практичная и других исторических.

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

Другая причина-в основном исторические. До 2005 года или около того, процессоры столе были все одного ядра. Повышение производительности рабочего стола ЦП состояла почти исключительно в ядре, что может выполнять столько операций в секунду, как это возможно. Даже сегодня, столько настольное программное обеспечение не может полностью использовать преимущества нескольких ядер, что многие предпочли процессор с 4 ядрами за 8-ядерный процессор с ядрами 20% медленнее.

Получить как можно больше производительности одного ядра, как это возможно требует огромного количества ЦП недвижимости. Это недвижимого имущества, которые могли бы быть использованы для обеспечения более ядер. Именно поэтому Intel'новейшая кабы озеро ЦП на 4 ядра и люди покупают их, потому что каждое ядро работает быстрее, чем предшественник'ов ядер. Для многих, их обновления, даже от процессоров с большим количеством ядер.

С течением времени, мы ожидаем увидеть гораздо более настольного программного обеспечения, полностью оптимизированной для поддержки более ядер. Как это происходит, инженерный компромисс приступит в пользу более ядер более быстрее ядер на компьютерах. В то время как ядра почти наверняка еще быстрее, вы'МР начинаете видеть людей, предпочитая все 8 ядер процессора 4 ядро процессора, даже если каждого ядра составляет 20% медленнее. Дизайнеры чип будет следовать за рынком.

Комментарии (0)

Это'ы важно для телефона, чтобы иметь возможность предоставлять вычислительные мощности в короткие промежутки (нужны определенные приложения, чтобы быть быстрым), а также избегать перегрева (тепловыделение гораздо сложнее для телефонов, чем для ноутбуков или компьютеров). Для того, чтобы достичь этого, дизайн архитекторов телефонов для использования одного ядра, когда нагрузка свет и обеспечивают дополнительную ядер, чтобы повысить производительность, когда это необходимо. Если телефоны были в использовании менее крупных ядер, перегревание стало бы проблемой даже тогда, когда нагрузка достаточно света.

Источник: выпускник уровне компьютерной архитектуры поле.

Комментарии (3)

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

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

Наконец, там'ы маркетинга. Не многие пользователи могут оценить, могут ли они выиграют от 8 ядер, а 8-ядерный смартфон, конечно, звучит дороже, чем 2 или 4 ядра один.

Комментарии (10)

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

Разработчики Андроида авантюра, когда решив выбрал программирования Java и, как следствие, JVM как во время выполнения приложений. Ява, из-за его принципов проектирования решает проблему необходимости компиляции и сборки кода для каждой архитектуры процессора, прежде чем он мог быть запущен на его производительность. Ява вводит тяжеловесного и крупногабаритного виртуальная машина обычно называется JVM-машины. В JVM на самом деле эмулирует работу процессора на уровне программного обеспечения, чтобы избежать необходимости компилировать код отдельно для каждого устройства. Думаю, что в JVM как виртуальный процессор, который имеет те же свойства, независимо от устройства, работает она так, что код нужен только при компиляции для JVM, а затем может быть запущен на любом устройстве. Это позволяет производителям, чтобы бросить любое оборудование, они хотят, прежде чем не нужно беспокоиться о совместимости приложений. Это также позволяет устройств для них, чтобы заполнить рынок как с паршивой низких конечных устройств и качество высокого класса и в конечном итоге доминировать в нем.

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

Теперь в чем проблема на JVM? Это тяжелый кусок программного обеспечения, которое потребляет много вычислительных ресурсов. Добавьте к этому некоторые другие свойства языка Java, таких как сбор мусора и JVM'потребления ресурсов просто становится слишком много для устройства со скромными аппаратными питания. Каждое приложение и система обслуживания работает на вашем устройстве является самой экземпляра искусства JVM и теперь можно сделать вывод, что управление им требует некоторых действительно мощного оборудования. Что еще хуже, когда есть необходимость разработки пользовательских интерфейсов.

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

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

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

Комментарии (7)

Возобновить все вышесказанное, я могу сказать, что случаи использования компьютера и телефонов совершенно разные. В большинстве случаев компьютер используется в одном или нескольких приложений (конечно, браузер с кучей вкладок требуют много процессорных ядер, могут отставать даже на вершине я-3), телефонов в многозадачном режиме. По крайней мере, сетевого подключения, нарисовать интерфейс, система триггеров, оповещений. Если открыть Диспетчер задач на ПК есть слишком много процессов, но они использовать менее несколько % мощности процессора даже на старом КОР 2 дуо. 4 ядра-это довольно дешево (МТК 65x2 был стоить 1$ на старт для OEM) это тоже риск против ЦИПУ, когда последний недостаток в производительности на ядро. Энергоэффективные != мощный, [как мы видим здесь][1]. Multi-сердечника идеально подходит для мобильного,потому что никакой серьезной тяжелой одиночной нагрузки протектора, и мульти-задачи, направленные опыта (но мы видим, что айфоны нужно меньше ядер и оперативной памяти из-за хорошего программного обеспечения [как в этом видео или других][2] )

[1]: http://cpuboss.com/cpus/Intel-Pentium-N3700-vs-Intel-Pentium-3805U и"как мы видим, что"

Комментарии (2)

Я думаю, что одним из основных факторов, за 4 или 8 (по-крупному:мало конфигураций), это просто маркетинговый ход на данный момент.

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

Этого не произошло потому, что оперативная память стоит очень дорого (особенно в 2017/2018 ОЗУ кризисной ситуации). Отдел маркетинга хочет больших количествах, но контролировать хотят сократить на составляющую цены. Если вы видите баланс, который менее чем 1 ГБ оперативной памяти на ядро, то вы увидите искусству компромисса.

Комментарии (0)