Устройства arm64 – Android NDK. Очень много ABI: armeabi, armeabi-v7a, arm64-v8a… Под какую из них реально стоит строить нативные .so-либы?

Содержание

2.1. Поддерживаемое оборудование

2.1. Поддерживаемое оборудование

Для Debian не требуется от оборудования сверх того, что требуют ядро Linux или kFreeBSD и утилиты GNU. Таким образом, любая архитектура или платформа, на которую были перенесены ядро Linux или kFreeBSD, libc, gcc и т.д. и на которую перенесён Debian, может работать под Debian. Сверьтесь со страницами переносов http://www.debian.org/ports/arm/, какие системы на архитектуре 64-bit ARM были протестированы с Debian GNU/Linux.

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

2.1.1. Поддерживаемые архитектуры

Debian GNU/Linux 8 поддерживает восемь основных архитектур и несколько вариаций каждой архитектуры, известных как «варианты (flavors)».

Архитектура Обозначение в Debian Субархитектура Вариант
основанные на Intel x86 i386    
AMD64 & Intel 64 amd64    
ARM armel Intel IXP4xx ixp4xx
Marvell Kirkwood kirkwood
Marvell Orion orion5x
Versatile versatile
ARM с аппаратным FPU armhf multiplatform armmp
multiplatform для систем с поддержкой LPAE armmp-lpae
64-битные ARM arm64    
MIPS (с прямым порядком байтов) mips SGI IP22 (Indy/Indigo 2) r4k-ip22
SGI IP32 (O2) r5k-ip32
MIPS Malta (32-битная) 4kc-malta
MIPS Malta (64-битная) 5kc-malta
MIPS (с обратным порядком байтов) mipsel MIPS Malta (32-битная) 4kc-malta
MIPS Malta (64-битная) 5kc-malta
IBM/Motorola PowerPC powerpc PowerMac pmac
PReP prep
Power Systems ppc64el IBM POWER8 or newer machines  
64-битный IBM S/390 s390x IPL с VM-reader и DASD generic

Этот документ содержит описание установки на архитектуру 64-bit ARM. Если вы ищете информацию по любой другой архитектуре, поддерживаемой Debian, посмотрите на странице переносов Debian.

Это первый официальный выпуск Debian GNU/Linux для архитектуры 64-bit ARM. Мы его готовым к выпуску. Однако, поскольку эта архитектура не так сильно распространёна (и, следовательно, не протестирована пользователями), как другие, вы можете встретить некоторые ошибки. Используйте нашу Систему отслеживания ошибок, чтобы сообщить о любой проблеме; убедитесь, что вы упомянули тот факт, что ошибка возникла на архитектуре 64-bit ARM, использующей ядро Linux. Возможно, также придётся воспользоваться списком рассылки debian-arm.

2.1.2. Three different ARM ports

The ARM architecture has evolved over time and modern ARM processors provide features which are not available in older models. Debian therefore provides three ARM ports to give the best support for a very wide range of different machines:

  • Debian/armel targets older 32-bit ARM processors without support for a hardware floating point unit (FPU),

  • Debian/armhf works only on newer 32-bit ARM processors which implement at least the ARMv7 architecture with version 3 of the ARM vector floating point specification (VFPv3). It makes use of the extended features and performance enhancements available on these models.

  • Debian/arm64 works on 64-bit ARM processors which implement at least the ARMv8 architecture.

Технически, некоторые процессоры ARM могут работать с любым порядком адресации памяти (прямым или обратным). Однако, почти каждая современная реализация системы использует режим little-endian. Архитектуры Debian/armhf и Debian/armel поддерживают только адресацию little-endian.

2.1.3. Variations in ARM CPU designs and support complexity

ARM systems are much more heterogeneous than those based on the i386/amd64-based PC architecture, so the support situation can be much more complicated.

Системы ARM намного разнообразнее, чем архитектура ПК на основе i386/amd64, в которой все машины имеют однообразную системную микропрограмму (BIOS или/и UEFI), инициализирующую основные аппаратные компоненты стандартным образом. В архитектуре ARM используется так называемая «система на кристалле» (SOC). Эти SOC, разрабатываемые многими разными компаниями, содержат сильно отличающиеся компоненты, используемые даже для основных задач, которые нужны для запуска системы. Машины, использующие их, не содержат основной системной микропрограммы и в результате в системах ARM ядро Linux выполняет множество системо-зависимых низкоуровневых задач, которые выполняются BIOS материнской платы в мире ПК PC.

Server versions of ARMv8 hardware are typically configured using the Unified Extensible Firmware Interface (UEFI) and Advanced Configuration and Power Interface (ACPI) standards. These two provide common, device-independent ways to boot and configure computer hardware. They are also common in the x86 PC world.

2.1.4. Платформы, поддерживаемые Debian/arm64

Arm64/AArch64/ARMv8 hardware became available quite late in the Debian Jessie release cycle so not many platforms had support merged in the mainline kernel version by the time of this release; this is the main requirement to have debian-installer working on them. The following platforms are known to be supported by Debian/arm64 in this release. There is only one kernel image, which supports all the listed platforms.

Applied Micro (APM) Mustang/X-Gene

The APM Mustang was the first Linux-capable ARMv8 system available. It uses the X-gene SoC, which has since also been used in other machines. It is an 8-core CPU, with ethernet, USB and serial. A common form-factor looks just like a desktop PC box, but many other versions are expected in the future. Most of the hardware is supported in the mainline kernel, but at this point USB support is lacking in the Jessie kernel.

ARM Juno Development Platform

Juno is a capable development board with a 6-core (2xA57, 4xA53) ARMv8-A 800Mhz CPU, Mali (T624) graphics, 8GB DDR3 RAM, Ethernet, USB, Serial. It was designed for system bring-up and power testing so is neither small nor cheap, but was one of the first boards available. All the on-board hardware is supported in the mainline kernel and in Jessie.

При использовании debian-installer на таких системах вам придётся вручную сделать систему загрузочной в конце установки, например запустив необходимые команды и оболочки , запущенной из debian-installer.

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

2.1.5. Несколько процессоров

На этой архитектуре поддерживается нескольких процессоров — так называемая «симметричная многопроцессорная обработка (symmetric multi-processing)» или SMP. Раньше, несколько процессоров имелось только в высокопроизводительных серверных системах, но в настоящее время так называемые «многоядерные»процессоры встраивают почти по всё. В них содержится один ЦП с двумя и более вычислительными блоками, называемыми «ядрами».

Стандартный образ ядра Debian 8 собран с поддержкой SMP. Он также без проблем работает в системах без SMP.

2.1.6. Поддержка видеокарт

Поддержка графического интерфейса в Debian полностью зависит от поддержки этого интерфейса системой X.Org X11. Графические карты современных ПК, обычно, работают без дополнительной настройки. Поддержка аппаратного ускорения 3D-графики или проигрывания видео зависит от самой карты, установленной в системе, и, иногда, требует установки дополнительных образов «микропрограмм» (см. Раздел 2.2, «Устройства, которым требуются микропрограммы»). Были единичные сообщения об ошибках по картам о том, что установка дополнительных микропрограмм требовалась даже для поддержки основных графических функций, но это скорее исключение.

Nearly all ARM machines have the graphics hardware built-in, rather than being on a plug-in card. Some machines do have expansion slots which will take graphics cards, but that is a rarity. Hardware designed to be headless with no graphics at all is quite common. Whilst basic framebuffer video provided by the kernel should work on all devices that have graphics, fast 3D graphics invariably needs binary drivers to work. The situation is changing quickly but at the time of the jessie release free drivers for nouveau (Nvidia Tegra K1 SoC) and freedreno (Qualcomm Snapdragon SoCs) are available in the release. Other hardware needs non-free drivers from 3rd parties.

Список поддерживаемых графических шин, карт, мониторов и устройств ввода можно найти на http://xorg.freedesktop.org/. Debian 8 поставляется с X.Org версии 7.7.

2.1.7. Аппаратура для подключения к сети

Почти любая сетевая плата (NIC), поддерживаемая ядром Linux, должна поддерживаться системой установки; драйверы модулей должны загрузиться автоматически.

На 64-bit ARM поддерживается большинство встроенных устройств Ethernet и предоставляются модули для дополнительных устройств PCI и USB.

2.1.8. Периферия и другое оборудование

Linux поддерживает много разных устройств, таких как мыши, принтеры, сканеры, PCMCIA/CardBus/ExpressCard и USB устройства. Однако, большинство этих устройств не требуется для установки системы.

Процессоры ARMv8: в чем преимущества 64-битной архитектуры?

В 2011 году компания ARM Limited анонсировала новое семейство процессоров под названием ARMv8. А в 2013 году компания Apple выпустила первый ARMv8-процессор – однокристальную систему А7, которая применяется в iPhone 5S, iPad Air и iPad mini Retina. Архитектура ARMv8 получила 64-битный набор команд, но это далеко не единственное её преимущество над предшественницей ARMv7. Как устроены и какими бывают 64-битные процессоры ARMv8, читайте в статье.

Об истории архитектуры ARM, специфике деятельности компании ARM Limited и поколениях процессоров ARMv5, ARMv6 и ARMv7 вы можете прочитать в статье «Процессоры ARM: особенности архитектуры, отличия и перспективы». А про популярные модели ARMv7-чипов производства Qualcomm, NVIDIA, Samsung, Apple, MediaTek и др. подробно рассказано в статьях «Процессоры ARM: производители и модели» и «Процессоры ARM: обновление модельного ряда».

Нововведения ARMv8

Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила 64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4 Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch42). Другими важными нововведениями ARMv8 стали:

— 31 регистр общего назначения, каждый длиной 64 бита, тогда как SP и PC не являются регистрами общего назначения. Чем выше разрядность регистров, тем больше числа можно в них хранить. А чем больше количество регистров, тем больше данних в них помещается одновременно. Как результат, за одну инструкцию можно обработать больший объем данних и весь алгоритм выполнится быстрее;
— трансляция виртуальных адресов из 48-битного формата работает с помощью механизмов LPAE, позаимствованных у ARMv7;
— новый набор инструкций с фиксированной длинной. Инструкции имеют размер 32 бита и многие совпадают с командами AArch42, хотя условных инструкций стало меньше;
— увеличено с 16 до 32 количество 128-битных регистров (совместимы с 64-битными регистрами), доступных сопроцессорам SIMD NEON и VFP, а также добавлены новые криптографические инструкции AES и SHA. Набор инструкций SIMD NEON ускоряет работу приложений, отвечающих за обработку медиаданных и сигналов. В свою очередь VFP отвечает за малоэнергозатратные вычисления над числами с плавающей запятой;
— поддержка вычислений над числами с плавающей запятой двойной точности и стандарта IEEE 754, который является общепринятым форматом представления чисел с плавающей запятой, используемый в программных реализациях арифметических действий.

Референсные ядра ARM Limited

Первыми процессорными ядрами ARMv8, разработанными непосредственно компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что находится примерно по середине между нынешними Cortex-A7 (1,9 DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент, ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).

Помимо лицензирования референсных процессорных ядер компания ARM Limited продает расширенные лицензии, позволяющие чипмейкерам по своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть, к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает производителям процессоров создавать собственные решения на базе ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.

Apple A7

Первым и пока единственным 64-битным ARM-процессором, который уже применяется в смартфонах и планшетах, является Apple A7. Построен он на фирменной архитектуре Apple Cyclone, совместимой с ARMv8. Это вторая разработанная внутри компании процессорная архитектура; первой же была Swift (чипы A6 и A6X, семейство ARMv7).

Процессорных ядер у однокристальной системы A7 только два (частота до 1,4 ГГц), но присутствует графический ускоритель PowerVR G6430 с четырьмя кластерами ядер. Быстродействие чипа A7 в процессорозависимых задачах выросло примерно в полтора раза по сравнению с А6, тогда как в различных графических тестах прирост составляет от двух до трех раз.

А вот теоретическую возможность работать с большим объемом оперативной памяти благодаря 64-битной архитектуре процессора A7 устройства под управлением iOS пока не ощущают. У iPhone 5s, iPad Air и iPad mini Retina всего лишь 1 Гбайт оперативки; и вряд ли в новом поколении мобильных устройств Apple объем ОЗУ вырастит больше чем вдвое.

Qualcomm Snapdragon 410, 610, 615, 808 и 810

Вслед за Apple свои 64-битные ARM-процессоры поспешила анонсировать компания Qualcomm, причем сразу пять моделей. Правда, пока ни одна из них в коммерческих смартфонах или планшетах не применяется. Скорее всего, расцвет эпохи 64-битных Android-устройств состоится в начале 2015 года на выставках CES и MWC.

Однокристальная система Snapdragon 410 (MSM8916) – младшая из анонсированной 64-битной линейки Qualcomm. Она включает в себя четыре ядра Cortex-A53 с частотой от 1,2 ГГц, графический ускоритель Adreno 306 и, что интереснее всего, навигационный модуль с поддержкой спутниковых сетей GPS, ГЛОНАСС и даже китайской Beidou. Применять Snapdragon 410 планируют в недорогих смартфонах на базе Android, Windows Phone и Firefox OS.

Те же четыре ядра Cortex-A53, что у 410-того, содержит чип Snapdragon 610 (MSM8936), вот только графика у него улучшенная Adreno 405. Тогда как Snapdragon 615 (MSM8939) схож с 610-тым графикой, но процессорных ядер Cortex-A53 у него вдвое больше – восемь Cortex-A53.

В отличие от 410, 610, 615 моделей, выполненных по 28-нм техпроцессу, чипы Snapdragon 808 (MSM8992) и 810 (MSM8994) будут производиться по передовым 20-нм технологическим нормам. Они оба строятся по схеме big.LITTLE: два (модель 808) или четыре (810) мощных ядра Cortex-A57 и четыре энергоэффективных Cortex-A53. Графика представлена Adreno 418 и Adreno 430 соответственно. Кроме того, старший Snapdragon 810 имеет встроенный контроллер оперативной памяти стандарта LPDDR4.

Но главный вопрос: когда именно компания Qualcomm представит собственную процессорную архитектуру на основе ARMv8, как это было со Scorpion и Krait (модифицированные ARMv7)?

MediaTek MT6732, MT6752, MT6795

Не могла долго оставаться в стороне 64-битной гонки и компания MediaTek, всего за несколько лет превратившаяся из мелкого производителя процессоров для китайских клонов iPhone в одного из крупнейших в мире чипмейкеров, пусть и безфабричного. Впрочем, Apple и Qualcomm собственных производственных линий по «штамповке» полупроводников тоже не имеют.

Однокристальные системы MediaTek MT6732 и MT6752 должны составить конкуренцию чипам Snapdragon 610 и 615. У них четыре и восемь процессорных ядер Cortex-A53 (частота 1,5 и 2 ГГц соответственно) и одинаковая графика Mali-T760 (разработка ARM Limited). Старший же чип MT6795 стал ответом Snapdragon 810: архитектура big.LITTLE, по четыре ядра Cortex-A57 и A53 с частотой 2,2 ГГц, а также графический ускоритель PowerVR G6200.

NVIDIA Tegra K1 (Project Denver)

Компания NVIDIA решила перевести на 64-битную процессорную архитектуру свой уже существующий чип Tegra K1. Графическая составляющая у него и раньше была едва ли не лучшей среди конкурентов – GK20A с 192 ядрами Kepler, производительностью 365 GFLOPS и поддержкой ПК-стандартов графики DirectX 11.2 и OpenGL 4.4 (а не их мобильных аналогов).

Вместо же четырех 32-битных ядер Cortex-A15 (плюс пятое энергоэффективное ядро) обновленная однокристальная система Tegra K1 получит два ARMv8-совместимых ядра фирменной архитектуры NVIDIA Project Denver. Тактовая частота процессора вырастет до 2,5 ГГц, увеличится и объем кеша. Интересный факт: графика Tegra K1 примерно в пятьдесят раз мощнее Tegra 2.

Выводы

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

Естественно, пользу от архитектуры ARMv8 получат только те приложения для iOS и Android, которые способны задействовать все ресурсы новых процессоров. Оптимизация программ под новую архитектуру может быть как ручной, так и автоматической, на уровне компилятора.
Первое же Android-устройство с 64-битным ARM-процессором и 4 Гбайт ОЗУ – фаблет Samsung Galaxy Note 4 (чип Exynos 5433: по четыре ядра Cortex-A57 и A53) – представят уже 3 сентября. А вторым, возможно, станет планшетный компьютер HTC серии Google Nexus c процессором Tegra K1 Denver.

Архитектура процессора — Xamarin | Microsoft Docs



  • Время чтения: 3 мин


В этой статье

Xamarin. Android поддерживает несколько архитектур ЦП, включая 32-разрядные и 64-разрядные устройства. В этой статье объясняется, как выбрать для приложения одну или несколько архитектур ЦП, поддерживаемых Android.Xamarin.Android supports several CPU architectures, including 32-bit and 64-bit devices. This article explains how to target an app to one or more Android-supported CPU architectures.

Обзор архитектуры ЦПCPU Architectures Overview

При подготовке приложения к выпуску необходимо указать архитектуру ЦП платформы, которую поддерживает ваше приложение.When you prepare your app for release, you must specify which platform CPU architectures your app supports. Один APK-файл может содержать код для нескольких различных архитектур.A single APK can contain machine code to support multiple, different architectures. Каждая коллекция кода, зависящего от архитектуры, связана с двоичным интерфейсом приложения (ABI).Each collection of architecture-specific code is associated with an Application Binary Interface (ABI). Каждый интерфейс ABI определяет, как должен взаимодействовать этот машинный код с Android во время выполнения.Each ABI defines how this machine code is expected to interact with Android at run time.
Дополнительные сведения о том, как это работает, см. в статье многоядерные устройства & Xamarin. Android.For more information about how this works, see Multi-Core Devices & Xamarin.Android.

Указание поддерживаемых архитектурHow to Specify Supported Architectures

Как правило, при настройке приложения для выпускавы явно выбрали архитектуру (или архитектуры).Typically, you explicitly select an architecture (or architectures) when your app is configured for Release. Если приложение настроено для отладки, для параметра использовать общую среду выполнения и используются параметры быстрого развертывания , что отключает явный выбор архитектуры.When your app is configured for Debug, the Use Shared Runtime and Use Fast Deployment options are enabled, which disable explicit architecture selection.

В Visual Studio щелкните правой кнопкой мыши проект в Обозреватель решений и выберите пункт свойства.In Visual Studio, right-click on your project under the Solution Explorer and select Properties. На странице Параметры Android проверьте раздел Свойства упаковки и убедитесь, что параметр использовать общую среду выполнения отключен (отключение позволяет явно выбрать, для какой ABI требуется поддержка).Under the Android Options page check the Packaging properties section and verify that Use Shared Runtime is disabled (turning this off allows you to explicitly select which ABIs to support). Нажмите кнопку Дополнительно и в разделе Поддерживаемые архитектурыпроверьте архитектуры, которые требуется поддерживать.Click the Advanced button and, under Supported architectures, check the architectures that you want to support:

Как правило, при настройке приложения для выпускавы явно выбрали архитектуру (или архитектуры).Typically, you explicitly select an architecture (or architectures) when your app is configured for Release. Если приложение настроено для отладки, включаются параметры использовать совместное использование среды выполнения Mono и быстрое развертывание сборок , что предотвращает выбор явной архитектуры.When your app is configured for Debug, the Use shared Mono runtime and Fast assembly deployment options are enabled, which prevent explicit architecture selection.

В Visual Studio для Mac выберите проект на панели решения , щелкните значок шестеренки рядом с проектом и выберите Параметры.In Visual Studio for Mac, locate your project in the Solution pad, click the gear icon next to your project and select Options. В диалоговом окне Параметры проекта щелкните Сборка Android.In the Project Options dialog, click Android Build. Перейдите на вкладку Общие и убедитесь, что параметр использовать общую среду выполнения Mono отключен (отключить этот параметр позволяет явно выбрать, для какой ABI поддерживать).Click the General tab and verify that Use shared Mono runtime is disabled (turning this off allows you to explicitly select which ABIs to support). Перейдите на вкладку Дополнительно и в разделе Поддерживаемые ABIпроверьте ABI для архитектур, которые требуется поддерживать.Click the Advanced tab and, under Supported ABIs, check the ABIs for the architectures that you want to support:

Xamarin.Android поддерживает следующие варианты архитектуры:Xamarin.Android supports the following architectures:

  • armeabi – процессоры на базе ARM, поддерживающие по меньшей мере набор инструкций ARMv5TE.armeabi – ARM-based CPUs that support at least the ARMv5TE instruction set. Обратите внимание, что armeabi не является потокобезопасным и не следует использовать на многопроцессорных устройствах.Note that armeabi is not thread-safe and should not be used on multi-CPU devices.
  • ARMEABI-v7a – процессоры на базе ARM с аппаратными операциями с плавающей запятой и устройствами с несколькими ЦП (SMP).armeabi-v7a – ARM-based CPUs with hardware floating-point operations and multiple CPU (SMP) devices. Обратите внимание, что armeabi-v7a машинный код не будет выполняться на устройствах ARMv5.Note that armeabi-v7a machine code will not run on ARMv5 devices.

  • arm64-v8a – процессоры на основе архитектуры 64-bit ARMv8.arm64-v8a – CPUs based on the 64-bit ARMv8 architecture.

  • Процессоры x86 –, поддерживающие набор инструкций x86 (или IA-32).x86 – CPUs that support the x86 (or IA-32) instruction set. Этот набор инструкций эквивалентен инструкциям Pentium Pro, включая MMX, SSE, SSE2 и SSE3.This instruction set is equivalent to that of the Pentium Pro, including MMX, SSE, SSE2, and SSE3 instructions.

  • x86_64 Процессоры, поддерживающие 64-разрядный x86 (также называемый x64 и AMD64).x86_64 CPUs that support the 64-bit x86 (also referred as x64 and AMD64) instruction set.

Для Xamarin. Android по умолчанию используется armeabi-v7a для сборок выпуска .Xamarin.Android defaults to armeabi-v7a for Release builds. Этот параметр обеспечивает значительно большую производительность, чем armeabi.This setting provides significantly better performance than armeabi. Если вы нацелены на платформу 64-разрядной ARM (например, в табличное размещение 9), выберите arm64-v8a.If you are targeting a 64-bit ARM platform (such as the Nexus 9), select arm64-v8a. Если вы развертываете приложение на устройстве x86, выберите x86.If you are deploying your app to an x86 device, select x86. Если целевое устройство x86 использует архитектуру с 64-разрядным ПРОЦЕССОРом, выберите x86_64.If the target x86 device uses a 64-bit CPU architecture, select x86_64.

Нацеливание на несколько платформTargeting Multiple Platforms

Чтобы ориентироваться на несколько архитектур ЦП, можно выбрать несколько интерфейсов ABI (за счет увеличения размера файла APK).To target multiple CPU architectures, you can select more than one ABI (at the expense of larger APK file size). Можно использовать параметр создать один пакет (. apk) для каждого выбранного параметра ABI (см. описание в разделе Установка свойств упаковки), чтобы создать отдельный APK для каждой поддерживаемой архитектуры.You can use the Generate one package (.apk) per selected ABI option (described in Set Packaging Properties) to create a separate APK for each supported architecture.

Вам не нужно выбирать arm64-v8a или x86_64 для целевых 64-разрядных устройств. 64-разрядная поддержка не требуется для запуска приложения на 64-разрядном оборудовании.You do not have to select arm64-v8a or x86_64 to target 64-bit devices; 64-bit support is not required to run your app on 64-bit hardware. Например, 64-разрядные устройства ARM (например, в виде хранилища 9) могут запускать приложения, настроенные для armeabi-v7a.For example, 64-bit ARM devices (such as the Nexus 9) can run apps configured for armeabi-v7a. Основное преимущество поддержки 64-разрядной версии заключается в том, чтобы предоставить приложению возможность обращаться к большему объему памяти.The primary advantage of enabling 64-bit support is to make it possible for your app to address more memory.

Дополнительные сведенияAdditional Information

В некоторых ситуациях может потребоваться создать отдельный APK для каждой архитектуры (чтобы уменьшить размер APK, или потому, что приложение имеет общие библиотеки, характерные для конкретной архитектуры ЦП).In some situations, you may need to create a separate APK for each architecture (to reduce the size of your APK, or because your app has shared libraries that are specific to a particular CPU architecture).
Дополнительные сведения об этом подходе см. в разделе Build ABI-пакетов apk.For more information about this approach, see Build ABI-Specific APKs.



Почему перевод компьютеров на ARM-процессоры — неудачная идея

ARM-vs-X86.jpg
В последнее время появляется все больше информации о том, что крупные игроки на рынке компьютеров снова начинают смотреть в сторону ARM-процессоров: к примеру, Microsoft смогли заставить на них работать полноценную (почти) Windows 10, более того — планшеты с ними скоро поступят в продажу. Есть слухи, что Apple начнет переводить Mac на свои процессоры к 2020 году — а ведь они тоже основаны на архитектуре ARM. Но, как говорится в Библии, «нет ничего нового под солнцем» — попытки отказаться от архитектуры x86 были и до этого, и что из этого вышло, и почему шанс того, что сейчас все пойдет по тому же сценарию, велик — мы и поговорим в этой статье.

История попыток отказаться от х86


Перенесемся мысленно в 1996 год. Тогда на рынке уже четко определились два конкурента — Microsoft с Windows 95 и Apple с Mac OS 7 (или же System 7). И, дабы завоевать большую долю рынка, каждый из них пытался придумать что-то оригинальное. У Apple это был планшет Newton — и, хотя он и провалился из-за отвратительно работающего рукописного ввода, продукт был достаточно инновационным в то время (и работал, кстати, под управлением ARM-процессора). Microsoft идея планшетом понравилась, но пойти они решили по своему собственному пути — «железом» пусть занимаются сторонние разработчики, компания же займется софтом — так и появилась Windows CE (прожившая аж до 2013 года — то есть 17 лет).

Суть системы была проста: она должна выглядеть как Windows, работать максимально похоже на Windows, запускать программы, написанные на Win32 API, но при этом иметь поддержку процессоров на архитектурах, отличных от x86. Идея была классная, но реализация подкачала: и хотя CE 1.0 и 2.0 действительно были похожи на Windows 95, функционально они здорово проигрывали последней: были проблемы по обмену данными с другими устройствами, не было поддержки мультимедийных функций, и, что самое главное — эту ОС не оценили разработчики, поэтому количество сторонних приложений было мизерное. И с учетом того, что на рынке была такая система, как Palm OS, работающая и быстрее, и интуитивно понятнее, с большим количеством софта и лучшим функционалом — продажи устройств на CE были неважными. В 2000 году Microsoft пытается улучшить ситуацию, выпустив версию CE 3.0, где добавлена возможность выхода в Интернет и проигрывания MP3 и видеороликов, но момент был уже упущен.

4872771567_1195620456_b.jpg

Окончательно «похоронила» Windows CE для планшетов сама же Microsoft, представив в 2002 году Windows XP Tablet Edition — по сути обычную XP, но с наэкранной клавиатурой и другими оптимизациями для работы пальцем или стилусом. Понятное дело, что планшеты на ней были по сути обычными компьютерами с x86-процессорами, которые поддерживали весь софт для XP. Так что этот момент можно считать первой победой x86-процессоров.

Переместимся еще на 4 года вперед — в 2006. Уже было очевидно, что эра одноядерных процессоров подходит к концу: у AMD уже есть двухядерные процессоры, Intel тоже готовит к выпуску двухядерные Core 2 Duo. А что же в этом время происходит на Mac? Увы — все плохо: компания в 90-ых сделала ставку не на x86, а на процессоры архитектуры PowerPC, разработанной IBM. Тогда они были если не лучше, то, как минимум, конкурировали на равных с решениями от Intel. Но тут в игру вмешалась AMD, и в стане x86 началась гонка за частотой — она росла вдвое чуть ли не раз в два года, и в итоге к 2004 году частоты процессоров доросли до вполне современных 3 ГГц. А вот с PowerPC так не получилось сразу по двум причинам: более «толстый» техпроцесс и нежелание отказаться от старых наработок привели к тому, что к тому же году частоты топового PowerPC G5 были лишь на уровне 2 ГГц, а производительность Pentium 4 с 3 ГГц была местами вдвое выше. 

К счастью, в Apple быстро поняли, что «лодка» IBM тонет, и вовремя перешли на решения от Intel. Но у читателя наверное возникнет вопрос — а что с программами? Ведь эти две архитектуры сильно различаются, так что люди, купившие новые Mac с процессорами от Intel, должны были остаться без софта. Ответ прост — был написан эмулятор, который позволял на процессорах от Intel запускать софт для PowerPC. С учетом того, что Core 2 Duo были местами в 3-4 раза быстрее, даже с учетом эмуляции программы зачастую работали даже быстрее, чем на «родной» архитектуре, так что конечные потребители или не заметили разницы, или были даже довольны приростом производительности. Ну а через год большинство разработчиков программ оптимизировало их под x86, а еще через год Apple убрала из системы эмулятор PowerPC за ненадобностью. Так что это можно считать второй победой x86.

screen-shot-2015-10-17-at-2-01-17-am.png

Переместимся в совсем уж недалекое прошлое — 2012 год: Microsoft представляет две системы, Windows 8 и Windows RT. Про первую думаю рассказывать нет смысла: обычная Windows, работающая только на x86-64, с несколько видоизмененным интерфейсом. А вот вторая ОС была несколько интереснее: с виду она выглядела как Windows 8, и даже имела бесплатный предустановленный Office 2013. Но работало первое устройство на этой ОС — планшет Surface — на ARM-процессоре Tegra 3. Ничего не напоминает? Да, история с Windows CE повторяется. Достаточно большому количеству пользователей захотелось попробовать и новую ОС, и сам планшет Surface от ее создателя.

Увы — всех быстро постигло разочарование: и хотя система даже работала на ядре от Windows 8, возможность установки ПО была жестко ограничена Магазином Windows, где 90% программ до сих выглядят так, как будто написаны школьниками на переменке. И даже это не было бы большой проблемой, если бы Microsoft продавали свой планшет по цене популярных нетбуков — тогда бы его хотя бы брали как печатную машинку с выходом в интернет. Но, увы, ценник на Surface был на уровне планшетов на Windows 8 с процессорами Intel Atom. Да, производительность Atom была на уровне Tegra 3 в Surface, но вот полноценная ОС позволяла ставить любой нужный софт, так что в итоге продажи Surface на Windows RT были крайне низкими. Microsoft через год обновила ее до Windows 8.1 RT и даже выпустала неплохой планшет Lumia 2520, но, увы, ситуацию это не спасло, и до Windows 10 эта версия ОС не обновилась — так что планшеты на x86 опять победили.

windows-rt-up3.png

Что же в итоге? За 20 лет было сделано две попытки уйти с x86 на другие архитектуры, и одна попытка уйти с других архитектур на x86. Первые две с треском провалились, а вот последняя — вполне удалась. И теперь Microsoft предпринимают еще одну попытку подружить Windows и ARM — посмотрим, что же в итоге получилось.

Полноценная Windows 10 на ARM — наконец-то успех?


И вот в 2017 года пошли слухи, что Microsoft готовит полноценную Windows 10 для ARM. В самом конце 2017 появились готовые образы такой системы, а в начале 2018 на выставке были представлены несколько планшетов на ней. Со стороны все смотрится здорово: Snapdragon 835, 4 ГБ ОЗУ или больше, SSD на 128 ГБ или больше — вполне адекватное «железо» для хорошего планшета, но что же на деле?

1515430379_hp-envy-x2_01.jpg

К слову — несколько удивляет выбор процессора: Microsoft с 2012 года умела запускать Windows на решениях от Nvidia — процессорах Tegra. Последняя версия процессора, Tegra X1, отлично показала себя в приставке Nintendo Switch, а с учетом того, что графика у этого процессора по сути является обычной видеокартой Nvidia 900-ой серии, только со сниженными частотами и небольшим количеством CUDA, выбор такого процессора решил бы проблему с драйверами на графику — не пришлось бы их писать под видеокарту Adreno, которыми оснащены процессоры Snapdragon. С другой стороны — последние имеют встроенный модем, а с учетом того, что планшеты — все же мобильные устройства и эксплуатироваться будут вне дома — возможно именно это и перевесило чашу весов в сторону Snapdragon.

Но мы несколько отвлеклись. Конфигурация, указанная выше, будет стоить от 1000 долларов (планшет HP Envy x2) — и тут возникает вопрос: а стоит ли он своих денег? Ведь за 900 долларов можно взять планшет Surface Pro 4 с процессором Intel Core m3, охлаждаемым также пассивно. Давайте посмотрим на тесты производительности, и начнем с PCMark 8 — он эмулирует реальные пользовательские задачи:

1522241577_12.png

И тут мы видим оглушительный провал — даже простенький Celeron оказывается на 60% быстрее, решения же с Core m3 быстрее в 2.5 раза. Чтобы была понятна производительность мобильного Celeron: при открытии вкладки с 1080р видео с Youtube система уже становится задумчивой. А если в фоне будет еще какая-нибудь закачка или обновление системы — работать и вовсе станет некомфортно. Теперь представьте, что мы имеем процессор на треть слабее — проблемы с производительностью будут возникать постоянно. И будут они в большинстве задач: к примеру, обработка фото на Celeron проходит в 4 раза быстрее:

1522242093_2018-03-25-image.png

Единственные тесты, где Snapdragon оказывается хотя бы на уровне Celeron или даже лучше — в так называемых нативных приложениях, которые уже умеют работать на ARM. Но даже в них превосходство Core m3 неоспоримо:

1522242333_4.png

С производительностью видеокарты дела обстоят все же несколько лучше:

1522242967_3.png

Как видите, в популярном тесте Futuremark Cloud Gate Adreno 540 все же смог обогнать интегрированную графику в Celeron на 10%. Но, в любом случае, отставание от Core m3 близко к двукратному.

Ну ладно, с производительностью все достаточно печально — а что же со временем автономной работы? На презентации нам обещали аж 20 часов работы — и если это так, то производительность для достаточного количества людей отходит на второй план. Но, увы, чуда не произошло — при серфинге в Chrome (надеюсь, никто Edge всерьез не воспринимает?) время автономной работы составило 10 часов — на 1.5 часа больше, чем у Dell с полноценным процессором:

1522245928_1.png

Стоит ли огромная переплата за слабое железо лишних 1.5 часов автономной работы? На мой взгляд — нет.

И тут возникает вопрос — почему все так плохо с производительностью и временем автономной работы, ведь под Android Snapdragon 835 зачастую работает вдвое быстрее, оставляя Celeron далеко позади? Ответ прост — эмуляция: это единственный способ заставить х86-программы работать на ARM-процессоре. А она, как мы знаем, очень требовательная, и в лучшем случае падение производительности оказывается двукратным, в худшем — предела нет (отличным примером является эмулятор Playstation 3 для ПК, где i7 вместе с GTX 1080 Ti выдают в играх 5-7 fps, хотя ни для кого не вызывает сомнении то, что такая связка реально мощнее консоли больше чем на порядок). В случае с переходом с PowerPC на x86 проблема падения производительности из-за эмуляции не стояла, ибо x86-процессоры были существенно мощнее. Но вот ARM-процессоры реально не дотягивают даже до 2-ядерных Intel Core, поэтому эмуляция только усугубляет проблему не самой высокой производительности.

Вторая проблема — ARM-процессоры не поддерживают множество нужных для некоторых программ инструкций: к примеру, нет поддержки AVX, FMA, последних версий SSE. Это опять же или ограничивает круг запускаемых программ, или снижает производительность в программах, где эти инструкции используются. 

Третья проблема не столь глобальна — процессоры ARM умеют пока что эмулировать только x86 программы. С учетом того, что до полноценного перехода на x64 еще далеко, и большинство программ имеют инсталляторы и для 32-битных систем, особых проблем это не вызовет. 

А вот последняя проблема уже достаточно глобальна — Windows 10 на ARM поддерживает драйвера, совместимые только с ARM64. Иными словами — если Microsoft не включила в систему поддержку нужного вам устройства, а его производитель не удосужился написать новый драйвер для ARM — вы его не подключите. В итоге какие-нибудь флешки или жесткие диски работать будут нормально, а вот с модемами, принтерами, камерами, картридерами и прочими устройствами будут проблемы. 

Можно ли решить эти проблемы? Конечно — нужно «всего лишь» начать писать софт нативно на ARM. И это опять же знакомо — это же говорили нам Microsoft на презентации Windows RT в 2012 году. Что сделало большинство разработчиков? Правильно, посмеялось и забыло про такую ОС. Почему? Да потому что это банально невыгодно — нужно «перелопатить» кучу кода, бывает даже писать с нуля — и ради чего, пары-тройки девайсов, на которых вашу программу может вообще никто запускать не будет? Поэтому возможно что самый популярный софт, типа того же браузера Chrome, и перепишут нативно на ARM, но что-то более редкое, типа того же Photoshop, так и будет запускаться в режиме эмуляции с низкой производительностью. 

Как решить эту проблему? Apple сделала просто — взяла да и перевела сразу все свои устройства с PowerPC на x86, так что у разработчиков просто не оставалось выхода как начать писать софт под новую архитектуру. Но Microsoft, очевидно, от поддержки x86 отказываться явно не будет — хотя бы из-за низкой производительности текущих ARM-процессоров. Так что проблемы, как видите, в реальности нерешаемые, и поэтому шанс, что планшеты на Windows с ARM «взлетят» — достаточно низок. 

Удастся ли Apple выпустить ультрабук с ARM-процессором к 2020 году?

macbook-arm.jpg

С Microsoft разобрались, теперь поговорим о их главном конкуренте — Apple: по слухам, те хотят выпустить ультрабук на собственном ARM-процессоре к 2020 году. И, увы, они опять же совершают ту же ошибку, что и Microsoft — основная масса MacBook и iMac останутся на процессорах от Intel, поэтому опять же разработчики будут неохотно портировать свой софт под ARM — это не принесет им прибыли. Поэтому опять же будет эмуляция, и опять же будут существенные потери производительности и, в итоге, никаких причин брать Mac на ARM. Единственный выход из ситуации — это резко перевести все свои устройства с процессоров от Intel на решения от ARM, но это граничит с областью фантастики: сейчас в iMac и Mac Pro ставятся в том числе и 18-ядерные мощнейшие процессоры Intel Xeon, и дабы пользователи, купив новый Mac на ARM, не почувствовали снижения производительности, Apple должна разработать чип, который будет как минимум вдвое их мощнее при том же тепловыделении. Реально это? Очевидно, что нет.

Итог — для каждой архитектуры свои устройства


В итоге я еще раз процитирую фразу из Библии: «нет ничего нового под солнцем». Компании очередной раз пытаются отказаться от x86, и, судя по всему, это очередной раз не получится. Возможно, в будущем, когда производительность ARM-процессоров станет существенно выше, чем у решений от AMD и Intel, переход и будет совершен, но пока что для каждой архитектуры есть свои типы устройств: для смартфонов и тонких планшетов это ARM, для ноутбуков и ПК — x86-64.

Различия между arm64 и aarch64 Oh! Android

У меня есть два «разблокированных» устройства, iPad mini 3 и Galaxy Edge 6, оба имеют терминал и минималистичный набор команд unix. Я думал, что оба устройства имеют процессоры arm64, но когда я побежал

uname -a 

На обоих устройствах я получил следующее:

Для iPad mini 3:

 xxxxs-iPad:/var/mobile root# uname -a Darwin xxxx-iPad 14.0.0 Darwin Kernel Version 14.0.0: Wed Jun 24 00:50:15 PDT 2015; root:xnu-2784.30.7-30/RELEASE_ARM64_S5L8960X iPad4, **arm64**, J85mAP 

Для Samsung Galaxy s6 Edge:

 [email protected]:/ $ uname -a Linux localhost 3.10.61-4497415 #1 SMP PREEMPT Thu Apr 9 15:06:40 KST 2015 **aarch64** GNU/Linux 

Если я не ошибаюсь, последняя информация в обоих случаях, J85mAP и GNU / Linux, означает прошивки, а антепьюльтимативная информация, arm64 и aarch64, означают процессоры.

Мои вопросы заключаются в следующем: очевидно, строки «arm64» и «aarch64» не совпадают, но я всегда думал, что arm64 и aarch64 были одинаковыми. (Это даже сказано, когда вы помещаете тег arm64 на вопрос здесь.)

Итак, действительно ли они идентичны?

В частности, что я должен беспокоиться в случае библиотек перекрестного строительства для обеих целей? На самом деле, у меня есть gcc 5.2.0, но, возможно, и более низкие версии. Могу я просто пройти

 -target=arm64 

или

 -target=aarch64 

В соответствии с каким устройством я нацелен и просто беспокоюсь о других параметрах для настройки?

EDIT Hum, ищите это снова, без успеха.

Похоже, что ARM64 был создан Apple и AARCH64 другими, в первую очередь GNU / GCC.

После некоторого googling я нашел эту ссылку:

LLVM 64-разрядные ARM64 / AArch64 Back-Ends объединились

Так что это имеет смысл, iPad называет себя ARM64, поскольку Apple использует LLVM, а Edge использует AARCH64, поскольку Android использует GNU GCC toolchain.

Небольшое знакомство с ARM-процессорами / Sandbox / Habr

Привет, Хабр! Сегодня хочется рассказать немного о семействе процессоров ARM Cortex. Почему? Потому не каждый знает, что вся линейка STM-контроллеров построена на базе данных процессоров, а имеено на процессорах Cortex-M, но помимо них есть и другие типы, поэтому перейдем к делу!

Итак, семейство ARM Cortex — это широко популярное поколение процессоров, выполненных по RISC-архитектуре (RISC — Reduced Instruction Set Computer — архитектура с набором простых инструкций, благодаря данной архитектуре увеличивается быстодействие выполнения команд). Семейство ARM Cortex подразделется на три вида:

  1. ARM Cortex-A — это процессоры, предназначенные для высокопроизводительных применений. Данный тип процессоров используется в смартфонах, планшетах, а также игровых приставках. Линейка процессоров Cortex-A поддерживает следующие наборы инструкций: ARM, Thumb и Thumb-2. Рассмотрим где же все-таки применяются некоторые типы ядер данного семейства процессоров:
    • Cortex-A5 — данный тип ядра используется для бюджетного типа устройств и предназначается для запуска простейших приложений, но никак не для ресурсоемких программ;
    • Cortex-A7 — данный тип ядра является более мощным процессором с кэшом второго уровня до 4 МБ и предназначается для смартфонов;
    • Cortex-A15 — данный тип ядра является наилучшим решением и используется в чипах флагманских коммуникаторов различных производителей.

  2. ARM Cortex-R — это процессоры, предназначенные для реально-временных применений. Данный тип процессоров используется в автомобилях и жестких дисках т.к имеет высокую надежность, отказоустойчивость и детерменированные ответы в режиме real-time. В Cortex-R поддерживаются все те же инструкции, что и в Cortex-A. Пару примеров данной серии процессоров:
    • ARM Cortex-R5 и ARM Cortex-R7 — процессоры выполненные по 28-нанометровой технологии, в которые добавлена поддержка стандартов LTE и LTE-Advanced. Также данные процессоры выполняются в одно- и двухядерных вариантах.

  3. ARM Cortex-M — это процессоры, предназначенные для микроконтроллерных применений. Данная линейка процессоров применяется не только в STM-контроллерах, но и в разработках таких фирм как: Texas Instruments, Analog Devices, Atmel и т.д. По сравнению с предыдущими линейками Cortex-процессоров, ARM Cortex-M является более дешевым и поэтому содержит в себе всего один набор инструкций — Thumb-2.

Приведу несколько плюсов использования Cortex-процессоров:

  • Гарвардская архитектура. Стоит помнить о том, что каждая команда проходит через трехступечнатый конвейер (выборка, дешифрация и выполнение команды), но благодаря Гарвардской архитектуре операции выполняются параллельно, т.е выглядит это так: первая инструкция — выполняется, вторая — дешифрируется, третья — считывается с определенной ячейки памяти;
  • Метод bit banding. Благодаря данному методу осуществляется эффективный доступ к регистрам и флагам устойств ввода-вывода, расположенных в SRAM. Благодаря данному методу можно сэкономить во-первых размер программы, а во-вторых время выполнения программы;
  • Низкая стоимость. На сегодняшний день благодаря высокой степени безопасности, защищенности, достачно большим объемом памяти и множеству других плюшек, Cortex-процессоры являются лучшим выбором среди других процессоров.

На сегодня у меня все, в дальнейшем планирую начать написание целого практического цикла о программировании в связке STM32+Linux, начиная от «Hello, World!» и заканчивая FreeRTOS.

Процессоры ARM: особенности архитектуры, отличия и перспективы

Первые чипы ARM появились еще три десятилетия назад благодаря стараниям британской компании Acorn Computers (ныне ARM Limited), но долгое время пребывали в тени своих более именитых собратьев – процессоров архитектуры х86. Все перевернулось с ног на голову с переходом IT-индустрии в пост-компьютерную эпоху, когда балом стали править уже не ПК, а мобильные гаджеты.

Особенности архитектуры ARM

Начать стоит, пожалуй, с того, что в процессорной архитектуре x86, которую сейчас используют компании Intel и AMD, применяется набор команд CISC (Complex Instruction Set Computer), хоть и не в чистом виде. Так, большое количество сложных по своей структуре команд, что долгое время было отличительной чертой CISC, сначала декодируются в простые, и только затем обрабатываются. Понятное дело, на всю эту цепочку действий уходит немало энергии.

Чип ARM1 – первенец компании Acorn Computers, который производился на фабриках VLSI

В качестве энергоэффективной альтернативы выступают чипы архитектуры ARM с набором команд RISC (Reduced Instruction Set Computer). Его преимущество в изначально небольшом наборе простых команд, которые обрабатываются с минимальными затратами. Как результат, сейчас на рынке потребительской электроники мирно (на самом деле, не очень мирно) уживаются две процессорные архитектуры – х86 и ARM, каждая из которых имеет свои преимущества и недостатки.

Первым в истории устройством на базе процессора архитектуры ARM был персональный компьютер BBC Micro

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

Архитектурные отличия процессоров x86 (набор команд CISC) и ARM (набор команд RISC)

Бизнес-модель компании ARM Limited

Сейчас компания ARM Limited занимается лишь разработкой референсных процессорных архитектур и их лицензированием. Создание же конкретных моделей чипов и их последующее массовое производство – это уже дело лицензиатов ARM, которых насчитывается превеликое множество. Есть среди них как известные лишь в узких кругах компании вроде STMicroelectronics, HiSilicon и Atmel, так и IT-гиганты, имена которых у всех на слуху – Samsung, NVIDIA и Qualcomm. С полным списком компаний-лицензиатов можно ознакомиться на соответствующей странице официального сайта ARM Limited.

Только компаний, получивших лицензию на производство чипов семейства ARM Cortex-A, насчитается несколько десятков, а ведь в портфолио ARM Limited есть и другие разработки

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

Российская компания «ПКК Миландр» со штаб-квартирой в Зеленограде, что интересно, тоже получила лицензию на производство чипов архитектуры ARM

По подсчетам аналитиков, сама ARM Limited зарабатывает на каждом произведенном чипе $0,067 в виде роялти. Но это сильно усредненная сумма, ведь по себестоимости новейшие многоядерные процессоры значительно превосходят одноядерные чипы устаревшей архитектуры.

Однокристальная система

С технической точки зрения называть чипы архитектуры ARM процессорами не совсем верно, ведь помимо одного или нескольких вычислительных ядер они включают целый ряд сопутствующих компонентов. Более уместными в данном случае являются термины однокристальная система и система-на-чипе (от англ. system on a chip).

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

Схема строения однокристальной системы с четырьмя ядрами ARM Cortex-A9

Отдельные компоненты однокристальной системы могут быть разработаны как непосредственно ARM Limited, так и сторонними компаниями. Ярким тому примером являются графические ускорители, разработкой которых помимо ARM Limited (графика Mali) занимаются Qualcomm (графика Adreno) и NVIDIA (графика GeForce ULP).

Не стоит забывать и про компанию Imagination Technologies, которая ничем другим, кроме проектирования графических ускорителей PowerVR, вообще не занимается. А ведь именно ей принадлежит чуть ли не половина глобального рынка мобильной графики: гаджеты Apple и Amazon, планшетники Samsung Galaxy Tab 2, а также недорогие смартфоны на базе процессоров MTK.

Устаревшие поколения чипов

Морально устаревшими, но все еще широко распространенными процессорными архитектурами являются ARM9 и ARM11, которые принадлежат к семействам ARMv5 и ARMv6 соответственно.

ARM9. Чипы ARM9 могут достигать тактовой частоты 400 МГц и, скорее всего, именно они установлены внутри вашего беспроводного маршрутизатора и старенького, но все еще надежно работающего мобильного телефона вроде Sony Ericsson K750i и Nokia 6300. Критически важным для чипов ARM9 является набор инструкций Jazelle, который позволяет комфортно работать с Java-приложениями (Opera Mini, Jimm, Foliant и др.).

ARM11. Процессоры ARM11 могут похвастаться расширенным по сравнению с ARM9 набором инструкций и куда более высокой тактовой частотой (вплоть до 1 ГГц), хотя для современных задач их мощности тоже не достаточно. Тем не менее, благодаря невысокому энергопотреблению и, что не менее важно, себестоимости, чипы ARM11 до сих пор применяются в смартфонах начального уровня: Samsung Galaxy Pocket и Nokia 500.

Чип Broadcom Thunderbird – один из немногочисленных представителей поколения ARM11, который до сих пор применяется в Android-смартфонах

Современные поколения чипов

Все более-менее новые чипы архитектуры ARM принадлежат к семейству ARMv7, флагманские представители которого уже достигли отметки в восемь ядер и тактовой частоты свыше 2 ГГц. Разработанные непосредственно ARM Limited процессорные ядра принадлежат к линейке Cortex и большинство производителей однокристальных систем используют их без существенных изменений. Лишь компании Qualcomm и Apple создали собственные модификации на основе ARMv7 – первая назвала свои творения Scorpion и Krait, а вторая – Swift.

Чип Apple A6 (ядро Swift) – первая попытка Купертино собственноручно модифицировать архитектуру ARMv7

ARM Cortex-A8. Исторически первым процессорным ядром семейства ARMv7 было Cortex-A8, которое легло в основу таких известных SoC своего времени как Apple A4 (iPhone 4 и iPad) и Samsung Hummingbird (Samsung Galaxy S и Galaxy Tab). Оно демонстрирует примерно вдвое более высокую производительность по сравнению с предшествующим ARM11. К тому же, ядро Cortex-A8 получило сопроцессор NEON для обработки видео высокого разрешения и поддержку плагина Adobe Flash.

Правда, все это негативно сказалось на энергопотреблении Cortex-A8, которое значительно выше чем у ARM11. Несмотря на то, что чипы ARM Cortex-A8 до сих пор применяются в бюджетных планшетниках (однокристальная система Allwiner Boxchip A10), их дни пребывания на рынке, по всей видимости, сочтены.

Однокристальная система TI OMAP 3 – представитель некогда популярного, но сейчас уже угасающего поколения ARM Cortex-A8

ARM Cortex-A9. Вслед за Cortex-A8 компания ARM Limited представила новое поколение чипов – Cortex-A9, которое сейчас является самым распространенным и занимает среднюю ценовую нишу. Производительность ядер Cortex-A9 выросла примерно втрое по сравнению с Cortex-A8, да еще и появилась возможность объединять их по два или даже четыре на одном чипе.

Сопроцессор NEON стал уже необязательным: компания NVIDIA в своей однокристальной системе Tegra 2 его упразднила, решив освободить побольше места для графического ускорителя. Правда, ничего хорошего из этого не вышло, ведь большинство приложений-видеопроигрывателей все равно ориентировались на проверенный временем NEON.

Почти все флагманские планшетные компьютеры образца 2011 года были построены на базе чипа NVIDIA Tegra 2

Именно во времена «царствования» Cortex-A9 появились первые реализации предложенной ARM Limited концепции big.LITTLE, согласно которой однокристальные системы должны иметь одновременно мощные и слабые, но энергоэффективные процессорные ядра. Первой реализацией концепции big.LITTLE стала система-на-чипе NVIDIA Tegra 3 с четырьмя ядрами Cortex-A9 (до 1,7 ГГц) и пятым энергоэффективным ядром-компаньоном (500 МГц) для выполнения простеньких фоновых задач.

ARM Cortex-A5 и Cortex-A7. При проектировании процессорных ядер Cortex-A5 и Cortex-A7 компания ARM Limited преследовала одно и ту же цель – добиться компромисса между минимальным энергопотреблением ARM11 и приемлемым быстродействием Cortex-A8. Не забыли и про возможность объединения ядер по два-четыре – многоядерные чипы Cortex-A5 и Cortex-A7 мало-помалу появляются в продаже (Qualcomm MSM8625 и MTK 6589).

Схема строения однокристальной системы c четырьмя ядрами ARM Cortex-A5

ARM Cortex-A15. Процессорные ядра Cortex-A15 стали логическим продолжением Cortex-A9 – как результат, чипам архитектуры ARM впервые в истории удалось примерно сравниться по быстродействию с Intel Atom, а это уже большой успех. Не зря ведь компания Canonical в системных требования к версии ОС Ubuntu Touch с полноценной многозадачностью указала двухъядерный процессор ARM Cortex-A15 или аналогичный Intel Atom.

Первой массовой однокристальной системой Cortex-A15 стала двухъядерная Exynos 5250, которая применяется в планшетнике Google Nexus 10 и лэптопе Samsung Chromebook

Очень скоро в продажу поступят многочисленные гаджеты на базе NVIDIA Tegra 4 с четырьмя ядрами ARM Cortex-A15 и пятым ядром-компаньоном Cortex-A7. Вслед за NVIDIA концепцию big.LITTLE подхватила компания Samsung: «сердцем» смартфона Galaxy S4 стал чип Exynos 5 Octa с четырьмя ядрами Cortex-A15 и таким же количеством энергоэффективных ядер Cortex-A7.

Схема однокристальной системы big.LITTLE с процессорными ядрами ARM Cortex-A15 (big) и Cortex-A7 (LITTLE)

Дальнейшие перспективы

Мобильные гаджеты на базе чипов Cortex-A15 еще толком не появились в продаже, а основные тенденции дальнейшего развития архитектуры ARM уже известны. Компания ARM Limited уже официально представила следующее семейство процессоров ARMv8, представители которого в обязательном порядке будут 64-разрядными. Открывают новую эпоху RISC-процессоров ядра Cortex-A53 и Cortex-A57: первое энергоэффективное, а второе высокопроизводительное, но оба способны работать с большими объемами оперативной памяти.

Производители потребительской электроники семейством процессоров ARMv8 пока особо-то не заинтересовались, но на горизонте вырисовались новые лицензиаты, планирующие вывести чипы ARM на серверный рынок: AMD и Calxeda. Идея новаторская, но вполне имеет право на жизнь: те же графические ускорители NVIDIA Tesla, состоящие из большого числа простых ядер, на практике доказали свою эффективность как серверных решений.

Оставьте комментарий

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