Введение в ассемблер arm64

Как узнать архитектуру процессора, тип и версию arm на андроиде

Как узнать архитектуру процессора на телефоне Android

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

Три порта Debian ARM: Debian / armel, Debian / armhf и Debian / arm64

Debian / armhf является аббревиатурой от «рука жестко плавает, ”Представляющий перенос на Debian. Перенос Debian на armhf был запущен для поддержки модуля с плавающей запятой (FPU) на современных 32-битных платах ARM.

Для критических требований к точности в приложениях, основанных на вычислениях и цифровой обработке сигналов (DSP), функция с плавающей запятой особенно подходит. ЦП ARMv7 с версией 3 спецификации векторных операций с плавающей запятой ARM (VFPv3) является минимальным требованием для переноса Debian на armhf.

В основном он используется для мобильных устройств (смартфонов, планшетов) и встроенных устройств.

Известно, что Debian / armhf поддерживает различные платформы:

  1. Плата для быстрого старта Freescale MX53: i. Плата MX53 Quick Start оснащена процессором Arm Cortex-A8 с тактовой частотой 1 ГГц. Это платформа с открытым исходным кодом для разработки.
  2. NVIDIA Jetson TK1: это плата для разработчиков с 32-битным процессором ARM Cortex-A15.
  3. SolidRun Cubox-i4Pro: серия Cubox-i представляет собой крошечную вычислительную платформу. Cubox-i4Pro оснащен процессором ARM Cortex A9.

Другие поддерживаемые платформы включают Wandboard, Seagate Personal Cloud и Seagate NAS, SolidRun Cubox-i2eX tec. Платформа EfikaMX ранее поддерживалась до Debian 7, но с Debian 8 от этой поддержки отказались.

Debian / armel или ARM EABI или Встроенный порт ABI в Debian был нацелен на старые 32-битные процессоры ARM. У него нет аппаратной поддержки блока с плавающей запятой (FPU). ARM EABI или armel должны работать с архитектурой ARM версий 4T, 5T и выше, но с выпуском Debian 10 (buster) поддержка ARM4T удалена.

Согласно Oracle, armel для armhf находится в стадии разработки, поэтому между ними могут быть некоторые несовместимости. Чтобы проверить, запущена ли в вашей системе armhf или armel, выполните следующую команду на своем терминале Linux:

$ Readelf -Апрокасебяисполняемый |grep Tag_ABI_VFP_args

Если приведенная выше команда возвращает тег Tag_ABI_VFP_args, то это система armhf, тогда как пустой вывод показывает, что это система armel. Например, дистрибутив raspberry вернет тег Tag_ABI_VFP_args: VFP registers, поскольку это дистрибутив armhf. С другой стороны, дистрибутив Debian Wheezy с мягким перемещением выдаст пустой результат, что указывает на то, что это дистрибутив armel.

Следующий список содержит различные платформы, поддерживаемые Debian / armel:

  1. Kirkwood и Orion5x SoC от Marvell с процессором ARM.
  2. Универсальная платформа с эмулятором QEMU.

Debian / arm64 нацелен на 64-битные процессоры ARM, для которых требуется минимальная архитектура ARMv8. 64-битная обработка обеспечивает расширенные вычислительные возможности. Это улучшение обработки достигается за счет увеличения емкости адресации памяти в 64-битной архитектуре. Аппаратное обеспечение Arm64 было впервые выпущено для iPhone 5 в 2013 году. Имя GNU для ARM64: aarch64-linux-gnu. Преимущество ARM64 в том, что он совместим со своим 32-битным предшественником. Это помогает запускать двоичные файлы или программное обеспечение ARMv7 без каких-либо изменений в архитектуре ARMv8.

Debian впервые выпустил перенос на ARM64 в своей операционной системе Debian 8 (Jessie). Список различных платформ, поддерживаемых Debian / ARM, приведен ниже:

  1. Applied Micro (APM) Mustang / X-Gene: это первая известная платформа с архитектурой ARMv8 с 8-ядерным процессором.
  2. Платформа разработки ARM Juno: Согласно ARM, платформа разработки Juno Arm — это открытая и независимая от поставщика разработка Armv8 с 6-ядерным процессором ARMv8-A.

Примеры устройств, использующих архитектуру ARM64, включают Raspberry Pi 2, Raspberry Pi 3, Microsoft HoloLens 2, DragonBoard, несколько устройств IoT, современные ноутбуки и настольные компьютеры, смартфоны и т. Д.

Архитектура и производители процессоров ARM 64

ARM 64 использует 64-битную архитектуру, что обеспечивает большую производительность и возможность работы с большими объемами данных. Она также поддерживает расширения, такие как SIMD (Single Instruction, Multiple Data), которые позволяют одной инструкции выполнять операции над несколькими данными одновременно, ускоряя выполнение некоторых типов задач.

Существует несколько производителей процессоров, которые разрабатывают и производят чипы на основе архитектуры ARM 64. Некоторые из них включают:

  • Qualcomm — один из ведущих производителей процессоров для мобильных устройств. Их серия Snapdragon, включая Snapdragon 800 и 600, использует архитектуру ARM 64.
  • MediaTek — другой известный производитель процессоров, предлагающий широкий спектр чипов на основе архитектуры ARM 64. Их серия Helio включает различные модели для разных уровней устройств.
  • Samsung — компания, известная своими флагманскими смартфонами Galaxy, также производит процессоры на основе архитектуры ARM 64. Например, их чипы Exynos используют эту архитектуру.
  • Apple — производитель смартфонов iPhone и планшетов iPad, использует свои собственные процессоры, такие как A14 Bionic, на основе архитектуры ARM 64.

Это лишь некоторые из производителей процессоров, которые используют архитектуру ARM 64. Каждый из них имеет свои уникальные особенности и персонализированные версии архитектуры для оптимизации производительности.

Первый спарринг

Главным соперником ARM со стороны х86 является Intel Atom, а теперь к ним можно прибавить еще и платформу AMD Brazos. Сравнение х86 и ARM провёл Вэн Смит, который создал тестовые пакеты OpenSourceMark, miniBench и один из соавторов SiSoftware Sandra. В «забеге» приняли участие Atom N450, Freescale i.MX515 (Cortex-A8), VIA Nano L3050. Частоты чипов х86 были снижены, но у них все равно оставалось преимущество за счет более совершенной памяти.

Результаты оказались весьма интересными. ARM-чип оказался также быстр, как и конкуренты в целочисленных операциях, при этом расходуя меньше энергии. Здесь нет ничего удивительного. Изначально архитектура была и достаточно быстрой и экономичной. В операциях с плавающей точкой ARM уступила х86. Здесь сказался традиционно мощный блок FPU, имеющийся у чипов Intel и AMD. Напомним, что в ARM он появился относительно недавно. Задачи, ложащиеся на FPU, занимают в жизни современного пользователя значительно место – это игры, кодирование видео и аудио, другие потоковые операции. Конечно, тесты, проведенные Вэном Смитом, сегодня уже не так актуальны. ARM значительно усилила слабые стороны своей архитектуры в версиях Cortex-A9 и особенно Cortex-A15, которая, например, уже может выполнять инструкции безусловно, распараллеливая решение задач.

Всё про ARMv6 и ARMv7

ARMv6 и ARMv7 — это поколения архитектуры мобильных процессоров компании ARM Limited на основе 32-битных инструкций.

Архитектура ARM довольно распространена на рынке, который прежде принадлежал исключительно настольным процессорам таких популярных архитектур как Intel x86/64 и AMD64. Сегодня, благодаря ARMv6 или ARMv7, процессор современных телевизоров, домашних кинотеатров и прочего привычного оборудования может поместиться у вас в руке.

Главной же нишей для мобильной архитектуры ARM стали смартфоны, планшеты и другие подобные мобильные устройства. В наши дни 95% смартфонов уже работают под управлением процессоров именно ARM архитектуры, а также половина «умных» телевизоров и 90% жестких дисков.

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

Ключевые особенности данных архитектур:

  • ARMv6 официально не поддерживает Flash. (В любом случае с середины 2012 года Google отказались от Flash на платформе Android окончательно, поэтому поддержка данной технологии уже и не актуальна).
  • ARMv7, зачастую, встречается в многоядерных мобильных процессорах, тогда как шестое поколение ограничивается лишь одним физическим и логическим ядром.
  • Приложения, созданные под ARMv7, имеют больший общий вес и требует больше выделенной оперативной памяти нежели аналогичные программы, которые работают только с ARMv6.
  • Процессоры на ARMv7 мощнее прежнего поколения.
  • Игры и программы, разработанные под ARMv6 совместимы с ARMv7 по умолчанию, но не наоборот.
  • То, что одно либо другое приложение поддерживает ARMv6 и ARMv7 одновременно не всегда означает улучшение графических характеристик на последней архитектуре. В этом случае рекомендуем смотреть в сторону процессоров от Nvidia, Tegra. Для них отведен отдельный магазин с игрушками с более высокой детализацией и прочими графическими плюшками, которые отсутствуют на любых других устройствах не под управлением Tegra.
  • Стандартная частота ARMv7 подобных процессоров заявлена на 1 гГЦ номинал и выше, чего нельзя сказать об ARMv6.
  • Игр для armv7 значительно больше, чем под armv6.
  • Многие популярные приложения видео проигрывателей (как mx player armv6) требует скачивания и установки дополнительного набора кодеков для armv6 или armv7 архитектур процессоров без которых аппаратной акселерации вы не добьетесь.

RISC — простые команды, много кода

На заре процессоров у программистов не было языков высокого уровня, например JavaScript или Python. Все команды писались машинным кодом или на ассемблерах. Программист в то время работал с процессором напрямую, и каждая команда в коде обозначала какую-то инструкцию для процессора.

Например, типичная программа того времени по умножению одного числа на другое могла выглядеть для процессора так:

  1. Выдели память под первое число.
  2. Запиши в это место первое число.
  3. Выдели память под второе число.
  4. Запиши в память второе число.
  5. Поставь единицу в такой-то служебный регистр.
  6. Выполни команду битового сдвига для первого числа.
  7. (много других команд)
  8. Верни служебный регистр в состояние «0».
  9. Выдели память под результат 
  10. Результат умножения положи на это место.

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

Такую технологию назвали RISC — Reduced-instruction-set Computing, компьютер с ограниченным набором команд. 

Некоторое время спустя технологию RISC усовершенствовали двумя разными способами — так появились архитектуры x86 и ARM. Первые ориентировались на мощные компьютеры, вторые — на небольшие устройства с пониженным энергопотреблением.

Особенности процессоров NVIDIA, TI, Qualcomm, Marvell

Лицензируя ARM направо и налево, разработчики усиливали позиции своей архитектуры за счет компетенций партнеров. Классическим примером в данном случае можно считать NVIDIA Tegra. Эта линейка систем-на-чипе имеет в основе архитектуру ARM, но у NVIDIA уже были свои весьма серьезные наработки в области трехмерной графики и системной логики.

NVIDIA Tegra

ARM дает своим лицензиарам широкие полномочия по переработке архитектуры. Соответственно инженеры NVIDIA получили возможность совместить в Tegra сильные стороны ARM (вычисления CPU) и собственной продукции – работа с трехмерной графикой и т.д. В результате Tegra обладают высочайшей для своего класса процессоров производительностью в 3D. Они на 25-30% быстрее PowerVR, используемых Samsung и Texas Instruments, а также почти в два раза превосходят Adreno, разработку Qualcomm.

Другие производители процессоров на базе архитектуры ARM усиливают те или иные дополнительные блоки, совершенствуют чипы, чтобы добиться более высоких частот и производительности.

Qualcomm Snapdragon

Например, Qualcomm не использует референсный дизайн ARM. Инженеры компании серьезно переработали его и назвали Scorpio – именно он лежит в основе чипов Snapdragon. Отчасти дизайн был переработан с целью освоения более тонких техпроцессов, чем предусмотрено стандартным IP ARM. В результате первые Snapdragon выпускались по нормам 45 нм, что обеспечило им более высокие частоты. А новое поколение этих процессоров с заявленными 2.5 ГГц и вовсе может стать самым быстрым среди аналогов на базе ARM Cortex-A9. Также Qualcomm применяет собственное графическое ядро Adreno, созданное на базе разработок, приобретенных у AMD. Так что в некотором роде Snapdragon и Tegra – враги на генетическом уровне.

Samsung Hummingbird

Samsung при создании Hummingbird также пошла по пути оптимизации архитектуры. Корейцы совместно с компанией Intrinsity изменили логику, благодаря чему сократилось количество инструкций необходимых для выполнения некоторых операций. Таким образом удалось выиграть 5-10% производительности. Кроме того, был добавлен динамический кэш второго уровня и мультимедийное расширение ARM NEON. В качестве графического модуля корейцы использовали PowerVR SGX540.

Процессор OMAP 4 производства Texas Instruments

Texas Instruments в новых сериях OMAP на базе архитектуры ARM Cortex-A добавила специальный модуль IVA, ответственный за ускорение обработки изображений. Он позволяет быстрее обрабатывать данные, поступающие с сенсора встроенной камере. Кроме того, он подключен к ISP и содействует ускорению видео. В OMAP также применяется графика PowerVR.

Apple A4

Apple A4 обладает большим кэшем в 512 Кбайт, в нем используется графика PowerVR, а само ARM-ядро построено на базе варианта архитектуры, переработанного Samsung.

Apple A5

Двухъядерный Apple A5, дебютировавший в iPad 2 в начале 2011 года, базируется на архитектуре ARM Cortex-A9, также, как и в предыдущий раз оптимизированной Samsung. По сравнению с А4 новый чип обладает удвоенным объемом кэш-памяти второго уровня — его увеличили до 1 Мбайт. Процессор содержит двухканальный контроллер оперативной памяти, обладает улучшенным видеоблоком. В результате его производительность в некоторых задачах вдвое выше, чем у Apple A4.

Marvell предлагает чипы на базе собственной архитектуры Sheeva, которая при ближайшем рассмотрении оказывается гибридом XScale, некогда купленной у Intel, и ARM. Данные чипы обладают большим по сравнению с аналогами объемом кэш-памяти, снабжены специальным мультимедийным модулем.

Сейчас лицензиаты ARM производят только чипы на базе архитектуры ARM Cortex-A9. При этом, хотя она и позволяет создавать четырехъядерные варианты, NVIDIA, Apple, Texas Instruments и другие пока ограничиваются моделями с одним или двумя ядрами. Кроме того, чипы работают на частоте до 1.5 ГГц. Cortex-A9 позволяет делать двухгигагерцовые процессоры, но опять же производители не стремятся быстро наращивать частоты — ведь пока рынку хватит и двухъядерников на 1.5 ГГц.

По-настоящему многоядерными должны стать процессоры на базе Cortex-A15, но они если и анонсированы, то на бумаге. Их появления в кремнии стоит ожидать в следующем году.

Современные процессоры лицензиатов ARM на базе Cortex-A9:

Как узнать, arm или arm 64 либо x86

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

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

Через программу droid hardware info

Небольшое по размеру приложение для определения процессора arm собирают данные о системе, отражает информацию о температурном режиме, объеме оставшейся памяти. В нем можно прочитать сведения о ядре, аккумуляторе и тактовой частоте процессов.

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

Схема запуска приложения выглядит следующим образом:

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

Приложение позволит детально ознакомиться с возможностями установленного процессора и другими функциональными элементами гаджета.

Через программу terminal emulator

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

Для работы с ним достаточно нажать кнопку «Скачать», разрешить установку и выполнить его запуск. Наименование процессора можно будет увидеть, если ввести в строке задач команду cat/proc/cpuinfo. Сразу под названием системы будет описание ее детальных характеристик.

Определение архитектуры процессора устройства

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

Для этого можно воспользоваться инструкцией к устройству (но в ней не всегда можно найти нужную информацию) или же найти данные в интернете. Но лучше всего это сделать с помощью специального приложения.

Самый простой способ!

Если у вас установлено приложение Telegram ( то самое ) вы можете узнать архитектуру процессора буквально за пару кликов. Для этого войдите в меню приложения и нажмите «Настройки». В самом низу открывшегося меню будет черным по белому (или белым по черному, в зависимости от настроек) прописаны нужные нам данные.

Droid Hardware Info

Если вышеописанный способ вас чем-то не устраивает или же вы хотите получить более расширенные данные о системе вашего устройства, воспользуйтесь приложением Droid Hardware Info.

Установите эту утилиту в Google Play или с помощью APK-файла (скачав его на сайте Biblprog)

Для получения нужной нам информации запустите Droid Hardware Info, перейдите на вкладку «Система» и обратите свое внимание на раздел «Процессор»

Архитектура процессораНабор инструкций

Нужные данные можно получить и с помощью других приложений, доступных на Google Play, например Inware или My Device .

Источник

По закону «Архимеда»

Вернемся, однако, к истории Acorn. Если не считать нелепой ссоры с отцом ZX Spectrum, дела у компании в 1983 году шли неплохо: BBC Micro был продан полуторамиллиардным тиражом, и прибыль Acorn подскочила с трех тысяч фунтов до почти девяти миллионов. Билл Гейтс даже предлагал Хаузеру портировать MS-DOS и фирменный интерпретатор BASIC на BBC Micro, но Хаузер отказался.

Команда собственных разработчиков Acorn росла, а учредители подумывали о том, что пора перейти на новый виток развития: вместо компьютеров на основе восьмиразрядных чипов выпускать машины помощнее — с шестнадцатиразрядными ЦП.

В качестве варианта рассматривались процессоры National Semiconductor, но Роберт Уилсон посетил израильскую штаб-квартиру этой компании и остался недоволен: «У них там над чипом работает по сто человек, и все равно то и дело ошибки». Следом Уилсон отправился в американскую фирму Western Design Center, где увидел ровно противоположенную картину: процессоры разрабатывали небольшие группы инженеров, причем почти что в домашних условиях. Уилсон задался вопросом: а нужно ли покупать чужой процессор, если можно сделать собственный? Пример WDC показывал, что это не так сложно, как может показаться.

Идею в Acorn приняли благосклонно, и работа закипела. Уилсон придумал набор инструкций, а Фербер с небольшой командой разработал архитектуру будущего процессора. Именно тогда было принято судьбоносное решение использовать новомодный принцип RISC.

Схема одного из первых процессоров RISC

Первый в истории процессор ARM (Acorn RISC Machine) был выпущен в 1985 году, но компьютера на его основе так и не появилось. Его продавали в качестве дополнения к BBC Master — у этой продвинутой версии BBC Micro был специальный интерфейс для подключения сопроцессоров. В комплект также входил набор для разработки программ для RISC.

Следующую инкарнацию процессора — ARM 2 ждала куда более интересная судьба: он лег в основу уникальной машины под названием Archimedes, впервые поступившей в продажу в 1987 году. ARM 2 имел 32-разрядную архитектуру, а адресная шина поддерживала 26 разрядов, и таким образом могло быть адресовано до 64 Мб оперативной памяти (огромное пространство по тем временам и несерьезное по нынешним). Частота ARM 2 сейчас тоже вряд ли кого-нибудь поразит, да и 1985 году 8 МГц можно было считать средним показателем. Вышедший примерно в то же время Intel 80368 работал на вдвое большей частоте, но это не значит, что вдвое эффективнее. 386-й выдавал лишь на миллион операций больше — пять против четырех у ARM 2. Вот оно, преимущество RISC!

Archimedes стоил приличных денег — от 800 фунтов стерлингов (с учетом инфляции и в пересчете на сегодняшние рубли получилось бы не меньше ста тысяч), но пользовался определенной популярностью благодаря мощности, хорошему видеоадаптеру (режимы до 256 цветов) и восьмиканальной звуковой карте. По сути, это был этакий британский Macintosh — рабочая станция для издательств и телестудий.

Как повысить производительность приложения на ARM 64?

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

1. Оптимизация кода

Одним из первостепенных мероприятий для повышения производительности программного обеспечения на ARM 64 является оптимизация кода

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

2. Использование многопоточности

Воспользуйтесь возможностями многопоточности для распараллеливания задач и улучшения реактивности вашего приложения. ARM 64 поддерживает технологии, такие как SIMD (Single Instruction, Multiple Data) и многопоточность, которые позволяют эффективно использовать параллельные вычисления и улучшить общую производительность.

3. Компиляция с использованием флагов оптимизации

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

4. Использование Native Development Kit (NDK)

Native Development Kit предоставляет возможность разрабатывать приложения на языках C и C++, что позволяет получить более низкоуровневый доступ к системным ресурсам устройства и увеличить производительность приложения. Использование NDK необходимо в случаях, когда требуется максимальная производительность и контроль над процессором ARM 64.

5. Оптимизация работы с памятью

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

6. Профилирование и анализ производительности

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

Рекомендации Примеры
Оптимизация кода Использование оптимизированных алгоритмов
Использование многопоточности Распараллеливание задач
Компиляция с использованием флагов оптимизации Использование флагов оптимизации при компиляции
Использование Native Development Kit (NDK) Разработка на C и C++ с использованием NDK
Оптимизация работы с памятью Минимизация обращений к памяти, управление распределением памяти
Профилирование и анализ производительности Использование инструментов для профилирования

Cortex – самые совершенные ARM

Cortex – современные архитектуры для мобильных устройств, встроенных систем и микроконтроллеров. Соответственно CPU обозначаются как Cortex-A, встроенные – Cortex-R и микроконтроллеры – Cortex-M. Все они построены на базе архитектуры ARMv7.

Наиболее совершенная и мощная архитектура в линейке ARM – Cortex-A15. Предполагается, что на ее базе будут производиться в основном двух или четырехъядерные модели. Cortex-A15 из всех предыдущих ARM наиболее близка к х86 по количеству и качеству блоков.

В основе Cortex-A15 лежат процессорные ядра, снабженные блоком FPU и набором SIMD-инструкций NEON, призванных ускорить обработку мультимедийных данных. Ядра имеют 13-стадийный конвейер, они поддерживают выполнение инструкций в свободном порядке, виртуализацию на базе ARM.

Cortex-A15 поддерживает систему расширенной адресации памяти. ARM остается 32-битной архитектурой, но инженеры компании научились преобразовывать 64-битную или другую расширенную адресацию в понятную процессору 32-битную. Технология получила название Long Physical Address Extensions. Благодаря ей, Cortex-A15 в теории может адресовать до 1 Тбайт памяти.

Каждое ядро снабжено кэшем первого уровня. Кроме того, есть до 4 Мбайт распределенного кэша второго уровня с низким уровнем латентности. Процессор снабжен 128-битной когерентной шиной, которая может быть использована для связи с другими блоками и периферией.

Ядра, которые лежат в основе Cortex-A15 являются развитием Cortex-A9. Они имеют схожую структуру.

Cortex-A9, в отличие от Cortex-A15, может выпускаться как во много-, так и одноядерном варианте. Максимальная частота составляет 2.0 ГГц, Cortex-A15 предполагает возможность создания чипов, работающих на частоте 2.5 ГГц. Чипы на ее базе будут изготавливаться по техпроцессам 40 нм и более тонким. Cortex-A9 выпускается по техпроцессам 65 и 40 нм.

Cortex-A9, как и Cortex-A15, предназначен для использования в высокопроизводительных смартфонах и планшетах, но более серьезное применение, например, в серверах ему не по зубам. Только Cortex-A15 имеет аппаратную виртуализацию, расширенную адресацию памяти. Кроме того, набор SIMD-инструкций NEON Advanced и блок FPU в Cortex-A9 являются опциональными элементами, в то время как в Cortex-A15 они обязательны.

Cortex-A8 в будущем будет постепенно уходить со сцены, но пока этот одноядерный вариант найдет применение в бюджетных смартфонах. Недорогое решение с частотой от 600 МГц до 1 ГГц представляет собой сбалансированную архитектуру. Она имеет блок FPU, поддерживает первый вариант SIMD NEON. Cortex-A8 предполагает единственный техпроцесс – 65 нм.

Первые ARM

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

Кроме того, упрощая наборы команд, разработчики архитектуры смогли обойтись без ряда других блоков. Например, в первых ARM начисто отсутствовал микрокод, а также модуль выполнения операций с плавающей запятой – FPU. Общее число транзисторов в первом ARM составляло 30 000. В аналогичных х86 их было в несколько раз, а то и на порядок больше. Дополнительная экономия энергии достигается за счет условного выполнения команд. То есть та или иная операция будет выполнена, если в регистре есть соответствующий факт. Это помогает процессору избежать «лишних телодвижений». Все инструкции выполняются последовательно. В результате ARM потерял в производительности, но не существенно, при этом значительно выиграл в энергопотреблении.

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

С целью ее увеличения ARM в течение последних лет внедрила несколько дополнительных наборов инструкций. Наряду с классической ARM, существуют Thumb, Thumb 2, Jazelle. Последняя предназначена для ускорения выполнения Java-кода.

Для чего нужно узнавать, какой процессор?

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

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

  • armeabi-v7a;
  • arm64-v8a;
  • x86;
  • x86_64.

На заметку. Как правило, Android-смартфоны базируются на чипсетах с 32-битной (armeabi-v7a) или 64-битной (arm64-v8a) архитектурой ARM.

Сведения об архитектуре процессора могут понадобиться при установке приложений. Конечно, при загрузке программ через Play Market эта информация определяется автоматически, однако при скачивании софта из сторонних источников нужно понимать, используется на вашем устройстве 32-битная или 64-битная SoC.

Имя им легион

Acorn изначально не собиралась становиться игроком процессорного рынка. Задачей проекта ARM должно было стать создание чипа собственного производства для выпуска компьютеров – именно создание ПК в Acorn считали своим основным бизнесом.

Apple Newton и Apple iPhone

Из группы разработчиков ARM превратилась в компанию, благодаря Apple. В 1990 году Apple совместно с VLSI и Acorn начала разработку экономичного процессора для первого карманного компьютера Newton. Для этих целей и была создана отдельная компания, получившая имя внутреннего проекта Acorn – ARM.

При участии Apple была создан процессор ARM6, наиболее близкий к современным чипам английского разработчика. В то же время компания DEC смогла запатентовать архитектуру ARM6 и начала выпуск чипов под маркой StrongARM. Спустя пару лет, технологии перешли к Intel в рамках очередного патентной спора. Микропроцессорный гигант создал на основе ARM свой аналог – процессор XScale. Но в середине предыдущего десятилетия Intel избавилась от этого «непрофильного актива», сосредоточившись исключительно на х86. XScale перекочевал в руки Marvell, которая уже лицензировала ARM.

Новоявленная миру ARM на первых порах была не в состоянии заниматься производством процессорам. Ее руководство выбрало другой способ зарабатывания денег. Архитектура ARM отличалась простотой и гибкостью. Ядро на первых порах было лишено даже кэша, поэтому впоследствии дополнительные модули, включая FPU, контроллеры не тесно интегрировались в процессор, а как бы навешивались на основу.

Соответственно, ARM получил в руки интеллектуальный конструктор, который позволял технологически развитым компаниям создавать процессоры или микроконтроллеры под свои нужды. Делается это при помощи так называемых сопроцессоров, которые могут расширять стандартную функциональность. Всего архитектура поддерживает до 16 сопроцессоров (номера от 0 до 15), но номер 15 зарезервирован под сопроцессор, выполняющий функции управления кэшем и памятью.

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

ARM начала лицензировать свою архитектуру. Воплощением ее в кремнии занимались уже другие компании, среди них Texas Instruments, Marvell, Qualcomm, Freescale, но и также совсем непрофильные вроде Samsung, Nokia, Nintendo или Canon.

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

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

Понравилась статья? Поделиться с друзьями:
ГЕО-АС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: