Arm

Процесс запуска ОС на ARM-машинах

После включения системы на базе ARM-процессора, из ROM-памяти загружается начальный загрузчик и адрес его точки входа. Начальный загрузчик проводит предварительную инициализацию системы, исполняя тем самым ту же роль, которую исполняет BIOS на системах x86, после чего может загрузить либо системный загрузчик, либо напрямую ОС.

Единого стандарта на начальный загрузчик не существует: хотя современные версии стандарта UEFI предусматривают возможность реализации этого стандарта для архитектуры ARM, но на практике UEFI используется редко — большинство ОС используют собственные загрузчики, или реализуют совместимость с одним из загрузчиков других систем.

ОС, поддерживающие ARM

Архитектура ARM поддерживается множеством операционных систем. Наиболее широко используемые: Linux (в том числе Android), iOS, Windows Phone.

Работать на системах с ARM-процессором могут различные Unix и Unix-подобные ОС: Linux (многие дистрибутивы), iOS, Android, BSD (FreeBSD, NetBSD, OpenBSD), QNX, Plan 9, Inferno, OpenSolaris (2008—2009), Firefox OS.

Также на платформе запускаются отдельные варианты семейства Windows: Windows CE, Windows Phone, Windows RT, Windows 10 (только на Raspberry Pi)

Кроме того, ARM поддерживают: FreeRTOS, Nucleus, Symbian OS, RISC OS, RISC iX.

Типы устанавливаемых процессоров

Мобильная операционная система от Google полноценно работает только на чипсетах, использующих архитектуру ARM. Мы об этом уже писали в статье, посвященной эмуляторам Android на ПК. Однако одну и ту же архитектуру могут иметь самые разные процессоры. В первую очередь друг от друга они отличаются техпроцессом. Наиболее популярны сейчас чипсеты, выполненные по следующему техпроцессу:

  • 28 нм — нынче считается, что такие процессоры обладают чересчур крупными транзисторами;
  • 20 нм — у таких чипсетов размеры внутренностей уже заметно меньше, что положительно сказывается на энергопотреблении;
  • 16 нм — ещё более крохотные транзисторы обеспечивают процессору едва ли не максимальную энергоэффективность;
  • 14 нм — данный техпроцесс был внедрён во второй половине 2016 года, выполненные по нему чипсеты по своей мощности превосходят абсолютно всех конкурентов.

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

Конечно, мобильные процессоры отличаются не только методом их создания. Разными у них бывают и другие параметры:

  • Количество ядер — в простейших чипах применяется одно ядро, а в самых мощных — десять и даже больше;
  • Тактовая частота — чем этот параметр больше, тем более мощными являются вычислительные ядра;
  • Графический ускоритель или GPU — именно он обрабатывает графику в играх и видеороликах, фактически это своеобразное дополнение к чипсету со своими ядрами и частотой.

Интересно, что в основном именно от процессора зависит то, будет ли смартфон поддерживать мобильные сети четвертого поколения. Также далеко не все чипсеты способны распознавать две или большее количество SIM-карт. А ещё они отличаются по своей стоимости — новейшие и самые мощные модели обходятся производителям смартфонов в 50-60 долларов за штуку!

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

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.. Примечание

Примечание

Начиная с , больше не поддерживается.As of , is no longer supported.

ARMEABI-v7a – процессоры на базе ARM с аппаратными операциями с плавающей запятой и устройствами с несколькими ЦП (SMP).armeabi-v7a – ARM-based CPUs with hardware floating-point operations and multiple CPU (SMP) devices

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

Утилиты для просмотра характеристик компьютера

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

1. Speccy

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

И последнее, в ней можно узнать все основные сведения о характеристиках компьютера: информация о процессоре, ОС, оперативной памяти, звуковых устройствах, температуре процессора и HDD и т.д.

Кстати, на сайте производителя есть несколько версий программ: в том числе и портативная (которая не нуждается в установке).

Да, Speccy работает во всех популярных версиях Windows: XP, Vista, 7, 8 (32 и 64 bits).

2. Everest

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

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

1) Возможность просмотра температуры процессора. Кстати, об этом уже была отдельная статья: https://pcpro100.info/chem-pomerit-temperaturu-protsessora-diska/

2) Редактирование авто-загружаемых программ. Очень часто компьютер начинает тормозить из-за того, что в автозагрузку прописывается очень много утилит, которые большинство в каждодневной работе за ПК просто не нужны! Про то, как ускорить Windows, был отдельный пост.

3) Раздел со всеми подключенными устройствами. Благодаря нему вы сможете определить модель подключенного устройства, а затем найти нужный драйвер! Кстати, программа иногда подсказывает даже ссылку, по которой можно скачать и обновить драйвер. Очень удобно, тем более, что в нестабильной работе ПК, часто виноваты драйвера.

3. HWInfo

Небольшая, но очень мощная утилита. Информации она может дать не меньше Everest’a, удручает только отсутствие русского языка.

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

Работает утилита очень быстро, информация собирается буквально на лету. Есть поддержка разных ОС: XP, Vista, 7.

Удобно, кстати, обновлять драйвера, утилита внизу публикует ссылку на сайт производителя, экономя ваше время.

Кстати, на скриншоте слева показана суммарная информация о ПК, которая отображается сразу же после запуска утилиты.

4. PC Wizard

Мощная утилита для просмотра множества параметров и характеристик ПК. Здесь можно найти и конфигурацию программ, и сведения о железе, и даже провести тест некоторых устройств: например, процессора. Кстати, стоит еще отметить, что PC Wizard, если вам не нужен, может быстро быть свернут в панели задач, изредка помигивая значками с уведомлениями.

Есть и минусы… Долго загружается при первом запуске ( что-то около пары минут). Плюс иногда программа притормаживает, показывая характеристики компьютера с запаздыванием. Честно, надоедает ждать по 10-20 сек., после того, как нажмешь на любой пункт из раздела статистики. В остальном — нормальная утилита. Если характеристики смотрите достаточно редко — то смело можно использовать!

PS

Кстати, некоторую информацию о компьютере можно узнать в BIOS: например модель процессора, жесткого диска, модель ноутбука и пр. параметры.

Ноутбук Acer ASPIRE. Информация о компьютере в BIOS.

Думаю будет весьма кстати ссылка на статью о том, как войти в BIOS (у разных производителей — разные кнопки входа!): https://pcpro100.info/kak-voyti-v-bios-klavishi-vhoda/

Кстати, какими утилитами для просмотра характеристик ПК пользуетесь?

А у меня на этом сегодня все. Всем удачи!

Свойства процессора

Посмотреть параметры и характеристики аппаратных комплектующих смартфона бывает не только интересно, но и важно для соблюдения совместимости с различным ПО. Главной составляющей “железа” можно считать процессор, который отвечает за вычисление и обработку поступающей информации

В современных смартфонах и планшетах используются многоядерные чипсеты (2-ух, 4-ех, 8-ми и даже 10-ти). Причем одна часть ядер работает на пониженных частотах для энергосбережения, а вторая – предназначается для сложных вычислительных задач. В отличии от общей и используемой оперативной памяти, посмотреть подробные характеристики процессора в меню Андроид на смартфоне – нельзя. Для этого предназначаются специальные диагностирующие программы (бенчмарки) либо утилиты, предоставляющие полную информацию об аппаратной начинке. Мы рассмотрим несколько популярных и бесплатных приложений, доступных в фирменном магазине Гугл – плеймаркете.

Antutu

Одна из самых часто скачиваемых программ – бенчмарков для Андроид. Основная задача – протестировать аппаратную начинку телефона, скорость процессора, ОЗУ, видеоадаптера и внутреннего накопителя. Но также, возможности утилиты позволяют посмотреть детальную информацию о аппаратной и программной начинке мобильного устройства. Для этого нужно:

  • Скачать программу с плеймаркета и установить обычным образом.
  • Открыть приложение, кликнув по пиктограмме с названием Antutu, расположенной на рабочем столе или найти его в меню приложений.
  • Перейти к пункту INFO, боковым свайпом по экрану либо тапнув на соответствующий пункт в нижней части экрана.

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

Стартовая страница Antutu

Инфо об устройстве

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

AIDA 64

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

  • Модель SoC.
  • Архитектура ядра.
  • Технологический процесс.
  • Наборы инструкций.
  • Ревизия ЦП.
  • Число ядер.
  • Диапазон рабочих частот, а также частота каждого отдельного ядра.
  • Загрузка ЦП.
  • Регулятор загрузки.
  • Поддерживаемые ABI.
  • А также информация о поддержке различных технологий.

Инфо об ОС

Инфо о нагреве ЦП

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

Как узнать версию Андроид на телефоне или планшете?

Если вы являетесь держателем смартфона/планшета с системой Android (Nokia, Sony и другие устройства), узнать версию ПО на устройстве вы сможете таким образом (инструкция одинаковая для всех гаджетов):

  1. На своем устройстве найдите раздел «Настройки» и перейдите в него.
  2. После этого вам нужно найти пункт «О планшете»/»О телефоне»/»Об устройстве».
  3. Затем найдите пункт «ПО» или «Версия Android». Там и будет указана актуальная версия программного обеспечения.

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

Обзор архитектуры ЦП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.

Clusterkraft

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

Для интеграции библиотека импортировалась как модуль.

Верстка активности, на которой отображается карта, выглядит так:

В нашем случае для карты использовался . Пустой с прозрачным фоном выступил в роли «магического заклинания», которое решало проблему с прорисовкой карты на устройствах с версиями до Ice Cream Sandwich (при открытии/закрытии pop-up или слайд-меню на карте оставалась чёрная зона по форме этого окна).

Метод выглядит так:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_map);
        SupportMapFragment mapFragment = SupportMapFragment.newInstance();
        getSupportFragmentManager().beginTransaction().add(R.id.frame_map, mapFragment, "MAP").commit();
    }

В методе инициализируется карта, и уже можно поставить маркер:

@Override
    public void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        GoogleMap myMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentByTag("MAP")).getMap();
        myMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        initMap();
        MarkerOptions options = new MarkerOptions()
                .anchor(0.5f, 0.5f)
                .position(new LatLng(latitude, longitude))
                .draggable(false)
                .icon(BitmapDescriptorFactory
                        .fromResource(marker_resource));
        myMap.addMarker(options);
        updateMap();
       initMap();
    }

Инициализация карты:

private void initMap() {
        if (map == null) {
            SupportMapFragment mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentByTag("MAP"));
            if (mapFragment != null) {
                map = mapFragment.getMap();
                if (map != null) {
                    UiSettings uiSettings = map.getUiSettings();
                    uiSettings.setAllGesturesEnabled(false);
                    uiSettings.setScrollGesturesEnabled(true);
                    uiSettings.setZoomGesturesEnabled(true);
                    map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
                        @Override
                        public void onCameraChange(CameraPosition arg0) {
                            moveMapCameraToBoundsAndInitClusterkraf();
                            MapPointsProvider.getInstance().generate(mCallback, check_sos, check_company);
                            initMap();
                        }
                    });
                }
            }
        } else {
            moveMapCameraToBoundsAndInitClusterkraf();
        }
    }

Выставление камеры в предыдущую позицию при смене ориентации:

private void moveMapCameraToBoundsAndInitClusterkraf() {
        if (map != null && options != null && inputPoints != null) {
            try {
                if (restoreCameraPosition != null) {
                    /**
                     * if a restoreCameraPosition is available, move the camera
                     * there
                     */
                    map.moveCamera(CameraUpdateFactory.newCameraPosition(restoreCameraPosition));
                    restoreCameraPosition = null;
                }
                initClusterkraf();
            } catch (IllegalStateException ise) {
            }
        }
    }

Инициализация Clusterkraft (при добавлении каждого маркера/группы маркеров нужно заново проводить кластеризацию):

private void initClusterkraf() {
        if (map != null && inputPoints != null && inputPoints.size() > 0) {
            com.twotoasters.clusterkraf.Options options = new com.twotoasters.clusterkraf.Options();
            applyDemoOptionsToClusterkrafOptions(options);
            if (clusterkraf == null) {
                clusterkraf = new Clusterkraf(map, options, inputPoints);
            } else {
                clusterkraf.clear();
                //map.clear();
                clusterkraf.addAll(inputPoints);
            }
            if (!check_sos && !check_company) {
                clusterkraf.clear();
            }
        }
        if (map != null && inputPoints.size() == 0 && clusterkraf != null) {
            if (!check_sos && !check_company) {
                clusterkraf.clear();
            }
        }
    }

Класс, который описывает правила кластеризации маркеров, применяет для них соответствующие пины-иконки. Если это кластер, то класс дописывает количество элементов в пине соответствующим цветом:

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 объем ОЗУ вырастит больше чем вдвое.

Как посмотреть модель процессора в CPU-Z

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

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

Интерфейс CPU-Z состоит из нескольких вкладок:

  • SOC – данные о процессоре, установленном на данном Андроид устройстве. Здесь указана информация о модели процессора, архитектуре (x86 или ARM), количестве ядер, тактовой частоте, а также модели графического ускорителя.
  • System – название Андроид устройства, производителя и версия Андроид. Также здесь указаны некоторые другие технические характеристики Андроид устройства. Например, разрешение экрана, плотность пикселей, объем оперативной и постоянной памяти.
  • Battery – информация о батарее. Здесь указан уровень заряда, напряжение и температура батареи.
  • Sensors – данные от сенсоров, установленных на Android устройстве. Обновляются в реальном времени.

Для того чтобы узнать, какой процессор на вашем Андроид телефоне нужно установить и запустить приложение CPU-Z. После этого перед вами откроется приложение CPU-Z на вкладке «SOC». Здесь в самом верху экрана будет указано название модели процессора. Также здесь вы сможете найти следующую информацию о процессоре:

  • Количество ядер.
  • Поддержка big.LITTLE.
  • Архитектура.
  • Ревизия.
  • Технологический процесс (техпроцесс).
  • Тактовые частоты.
  • Текущая тактовая частота по каждому ядру.
  • Производитель графического ускорителя.
  • Модель графического ускорителя.

Базовые преимущества и недостатки

Если вы будете сравнивать идентичные процессоры 32 и 64 битные CPU, вы не найдет больших различий, так что значительность перехода Apple на 64-битные ARM несколько преувеличена. Это важный шаг, но важный, в основном, из-за особенностей ARM и особенностью использования процессора компанией Apple. Тем не менее, некоторые различия имеются. Самым очевидным является 64-битные числовые регистры более эффективно работают с 64-битными числами. Вы можете работать с 64-битными числами и на 32-битном процессоре, но это обычно приводит к работе с двумя 32-битными частями, что работает ощутимо медленнее. 64-битные процессоры, обычно, выполняют операции над 64-битными числами также быстро как и над 32-битными, так что код активно использующий вычисления с 64-битными числами будет работать значительно быстрее.

Не смотря на то, что 64-битность не связана напрямую с объемом адресуемой памяти, она значительно облегчает использование большого объема RAM в рамках одной программы. Программа, запущенная на 32-битном процессоре может адресовать не больше 4GB адресного пространства. Часть памяти выделена под операционную систему и стандартные библиотеки, что оставляет 1-3GB на саму программу. Если у 32-битной системы больше 4GB RAM, то использование всего этого адресного пространства для программы значительно усложняется. Вам придется заняться махинациями вроде последовательного отображение разных частей RAM на часть виртуального адресного пространства или разбивание одной программы на несколько процессов.

Подобные трюки крайне трудозатраны и могут сильно замедлить систему, так что мало кто из программистов реально их использует. На практике, на 32-битных процессорах каждая программа используют до 1-3GB RAM, а вся ценность в обладании большего объема физической оперативной памяти заключается в возможности больше запускать программ одновременно и возможность кеширования больше данных с диска.

Увеличение объема адресного пространства полезно и для систем с небольшим объемом оперативной памяти — memory-mapped файлы, размеры которых могут быть  и больше доступной оперативной памяти, т.к. операционная система реально загружает только те части файла, к которым производились обращения и, кроме того, умеет «вытеснять» загруженные данные обратно в файл, освобождая оперативную память. На 32-битных системах нельзя отобразить файлы размером больше 1-3GB. На 64-битных системах, адресное пространство значительно больше, так что такой проблемы нет.

Увеличение размера указателя может быть и ощутимым минусом: таже программа будет использовать больше памяти (возможно, сильно больше) будучи запущенной на 64 битном процессоре. Увеличение используемой памяти также «забивает» кэш, что снижает производительность.

В двух словах: 64-битность может увеличить производительность некоторых частей года и упрощает некоторые техники, вроде memory-mapped файлов. Однако, производительность может и пострадать из-за увеличения используемой памяти.

ARM64

64-битнй процессора в iPhone 5S не просто ARM с увеличенным размером регистром, есть и существенные изменения.

Во-первых, отмечу название: официального название от ARM — «AArch64», однако это — глупое название, печатать которое меня раздражает. Apple называет архитектуру ARM64 и я буду называть также.

ARM64 увеличил в двое число целочисленных регистров. 32-битный ARM предоставляет 16 целочисленных регистров, из которых один — счетчик команд (program counter), еще два используются для указателя на стэк и регистра связи (link register) и 13 регистров общего назначение. В ARM64 32 целочисленных регистра, с выделенным нулевым регистром, регистром связи и регистром указателя кадра (frame pointer register). Еще один регистр зарезервирован платформой, что оставляет 28 регистров общего назначения.

ARM64 также увеличивает число регистров для чисел с плавающей запятой. Регистры в 32-битных ARM несколько странные, так что сложно сравнивать. У 32-битного ARM 32 32-битных регистров с плавающей запятой, которые могут быть представлены как 16 перекрывающихся 64-битных регистров. Кроме того, есть еще 16 независимых 64-битных регистров. ARM64 упрощает это до 32 неперекрывающихся 128-битных регистров, которые могут быть использован для данных меньшего размера.

Число регистров может значительно влиять на производительность. Память значительно медленнее процессора, и чтение/запись памяти занимает значительно больше времени, чем выполнение инструкций процессора. Процессор пытается исправить это при помощи кэшей, но даже самый быстрый кэш значительно медленнее регистров процессора. Больше регистров — больше данных могут храниться внутри процессора. Насколько это влияет на производительность зависит от конкретного кода и эффективности компилятора, который оптимизирует использование регистров. Когда архитектура Intel перешла от 32 к 64 битам, число регистров увеличилось с 8 до 16, и это было значительное изменение производительности. У ARM уже было больше регистров чем у 32-битной архитектуры Intel, так что увеличение регистров хоть  и меньше повлияет на производительность, но это изменение все еще будет заметно.

ARM64 также привнес существенные изменения помимо увеличения числа регистров.

Большинство 32-битных инструкций ARM могут выполняться/не выполняться в зависимости от состояние регистра-условия. Это позволяет транслировать условные выражения (if-statements) без использования ветвления. Предполагалось, что это увеличит  производительность, однако, судя по тому, что в ARM64 от этой возможности отказались, она порождала больше проблем, чем давала пользы.

В ARM64 набор SIMD (одна-инструкция-много-данных) NEON полностью поддерживает стандарт IEEE754 для чисел с плавающей запятой с двойной точностью, в то время как 32-битная версия NEON поддерживала только одинарную точность и не в точности следовала стандарту для некоторых битов.

В ARM64 добавили специализированные инструкции для AES шифрования и SHA-1 & SHA-256 хешей. Не слишком полезное в общем, однако существенный бонус если вы занимаетесь именно этими вопросами.

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

Программы для определения версии Android

На некоторых смартфонах (в основном на китайских) не получается узнать версию Android стандартным способом. Часто в строке «Версия Android» указывается не версия самого ПО, а оболочки, которая на его основе создана. В таких случаях можно воспользоваться специальными вспомогательными программами.

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

My Android

My Android — это утилита, которая должна быть на каждом Android-гаджете. Через это приложение можно не только узнать версию ПО на устройстве или его IP, в него также зашит:

  • компас;
  • фонарик;
  • контролер показателей интернета;
  • центр контроля обновлений;
  • GPS-навигатор;
  • сканер QR-кода и многое другое.

Приложение подходит для устройств в версией Андроид 4.1 и выше.

Узнать версию ПО с помощью My Android очень просто: откройте приложение и перейдите в соответствующую вкладку, вся актуальная информация будет указана там.

Geekbench

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

Если вы зайдете в приложение, на главном экране вы увидите несколько параметров:

  • версия Андроид;
  • тип ЦПУ;
  • модель устройства.

Приложение достаточно полезное универсальное, пригодится каждому обладателю гаджета на системе Android.

Aida64

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

Также с помощью Aida64 можно узнать версию программного обеспечения и много другой технической информации о ПО. Для этого нужно открыть приложение и найти вкладку Android и перейти в нее. Версия системы будет указана в самой первой строке.

CPU X

По своему предназначению и характеристикам эта утилита очень похожа на Aida64. Через нее можно управлять папками на устройстве, блокировать рекламу в браузерах и приложениях, анализировать и контролировать работу систем и датчиков.

Для того, чтоб узнать версию Андроид на своем планшете или телефоне зайдите в приложение CPU X и на главном экране найдите раздел «Система», перейдите в него. В данном разделе будет несколько подразделов, вам нужно найти параметр «Операционная система». В самой первой строке будет указана текущая версия Android.

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

Референсные ядра 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.

Ссылка на основную публикацию