Открыть сервис

ARMv7-A

ARMv7-A — это 32-битная архитектура системы команд (ISA), разработанная компанией ARM Holdings (ныне входит в состав SoftBank Group) и относящаяся к седьмому поколению ARM-архитектур. Она является одной из наиболее распространённых и долгоживущих архитектур для мобильных устройств, встраиваемых систем и одноплатных компьютеров, выпускавшихся с середины 2000-х до начала 2020-х годов. ARMv7-A ориентирована на приложения, требующие высокой производительности (Application profile), в отличие от профилей Real-time (ARMv7-R) и Microcontroller (ARMv7-M).

История и развитие

Архитектура ARMv7 была анонсирована в 2005 году как преемница ARMv6, используемой в процессорах ARM11. Основным нововведением стал переход к строгой профильной модели: ARMv7-A, ARMv7-R и ARMv7-M. Первыми процессорами на ARMv7-A стали ядра Cortex-A8 (2005, выпуск — 2007) и Cortex-A9 (2007). Они пришли на смену устаревшим ARM11 и XScale.

Массовое распространение ARMv7-A получила с выходом процессора Apple A4 (2010) в iPhone 4 и iPad, а затем — с появлением чипов Qualcomm Snapdragon S4 и Samsung Exynos 4. Архитектура стала стандартом для смартфонов и планшетов в период 2010–2015 годов. С 2011 года начался переход на 64-битную архитектуру ARMv8-A, однако ARMv7-A продолжала активно использоваться в бюджетных и среднеценовых устройствах, а также в промышленной и встраиваемой технике до середины 2020-х годов.

Ключевые особенности

32-битная система команд

ARMv7-A поддерживает два основных набора инструкций:

  • ARM — 32-битные инструкции фиксированной длины;
  • Thumb-2 — смешанный набор 16- и 32-битных инструкций, обеспечивающий более высокую плотность кода без потери производительности.

Также поддерживается режим Jazelle (аппаратное ускорение Java-байткода), хотя на практике он применялся редко.

Профиль приложений (Application)

Архитектура включает полноценный блок управления памятью (MMU), поддержку виртуальной памяти и многозадачности, что позволяет запускать операционные системы общего назначения: Linux, Android, iOS, Windows RT, FreeBSD и др.

Поддержка SIMD-инструкций

В ARMv7-A введены расширения Advanced SIMD (NEON) — 128-битные векторные инструкции для ускорения мультимедийных вычислений, обработки сигналов и криптографии. NEON стал стандартом для всех процессоров Cortex-A, начиная с Cortex-A8.

Дополнительные расширения

  • VFPv3/VFPv4 — модули операций с плавающей запятой (одинарная и двойная точность);
  • TrustZone — аппаратная технология изоляции для безопасных вычислений (Secure World и Normal World);
  • Virtualization Extensionsподдержка аппаратной виртуализации (введена в ARMv7-A с ядром Cortex-A15).

Процессорные ядра ARMv7-A

Архитектура ARMv7-A реализована в нескольких семействах ядер, разработанных ARM Holdings и сторонними производителями.

Собственные ядра ARM

ЯдроГод анонсаТактовая частота (тип.)Кэш L1Кэш L2Особенности
Cortex-A82005до 1,5 ГГц32 КБ I + 32 КБ D0–1 МБПервое ядро ARMv7-A, суперскалярное
Cortex-A92007до 2,0 ГГц32 КБ I + 32 КБ D0–8 МБМногоядерные конфигурации (до 4 ядер)
Cortex-A152010до 2,5 ГГц32 КБ I + 32 КБ D0–4 МБПоддержка виртуализации, OoO-исполнение
Cortex-A72011до 1,5 ГГц32 КБ I + 32 КБ D0–512 КБЭнергоэффективное ядро, часть big.LITTLE
Cortex-A52009до 1,0 ГГц4–64 КБ I + 4–64 КБ DнетБюджетное ядро, замена ARM11
Cortex-A172014до 2,0 ГГц32 КБ I + 32 КБ D0–8 МБУлучшенная версия Cortex-A12

Лицензированные реализации сторонних производителей

Многие компании (Qualcomm, Samsung, Marvell, Texas Instruments) выпускали собственные ядра на основе ARMv7-A, модифицируя микроархитектуру:

  • Qualcomm Scorpion (Snapdragon S1–S4) — модифицированное ядро Cortex-A8/A9;
  • Qualcomm Krait (Snapdragon S4, 400, 600, 800) — собственное высокопроизводительное ядро;
  • Samsung Exynos 4 (Mongoose) — собственное ядро на базе Cortex-A9;
  • Marvell Armada — ядра на базе ARMv7-A для серверов и NAS.

Применение

Мобильные устройства

ARMv7-A стала основной архитектурой для смартфонов и планшетов с 2007 по 2015 год. На ней работали:

  • iPhone 3GS, 4, 4S, 5, 5C;
  • большинство Android-смартфонов 2010–2015 годов (Samsung Galaxy S, HTC One, LG Optimus);
  • iPad (1–4 поколения), iPad mini (1–2);
  • устройства на Windows Phone (Nokia Lumia 920, 1020).

Одноплатные компьютеры

На ARMv7-A построены многие популярные одноплатные компьютеры:

  • Raspberry Pi 2 (BCM2836, 4 ядра Cortex-A7);
  • Raspberry Pi 3 (BCM2837, 4 ядра Cortex-A53 — но в 32-битном режиме);
  • BeagleBone Black (AM335x, Cortex-A8);
  • ODROID-XU4 (Exynos 5422, Cortex-A15 + Cortex-A7).

Встраиваемые и промышленные системы

Архитектура широко применялась в:

  • сетевых устройствах (роутеры, NAS, шлюзы);
  • автомобильных информационно-развлекательных системах;
  • медицинском оборудовании;
  • промышленных контроллерах.

Программная экосистема

Операционные системы

ARMv7-A поддерживается всеми основными ОС:

  • Android — до версии 10 включительно (с Android 11 начался переход на 64-бит);
  • iOS — до iOS 10 (с iOS 11 — только 64-бит);
  • Linux — ядро поддерживает ARMv7-A с 2006 года;
  • Windows RT — версия Windows 8/8.1 для ARM;
  • FreeBSD, OpenBSD, NetBSD — с поддержкой ARMv7-A.

Инструменты разработки

Для ARMv7-A доступны компиляторы GCC с поддержкой ARM и Thumb-2, LLVM/Clang, а также проприетарные инструменты ARM (ARM Compiler, DS-5). Код может компилироваться как для 32-битного режима (armv7l), так и для смешанного (ARM + Thumb-2).

Ограничения и устаревание

Основным ограничением ARMv7-A является 32-битная адресация памяти (до 4 ГБ ОЗУ), что стало критично для современных приложений и операционных систем. С 2016 года большинство новых процессоров ARM перешли на 64-битную архитектуру ARMv8-A. Однако ARMv7-A остаётся актуальной для:

  • бюджетных устройств (до 2020 года);
  • встраиваемых систем с ограниченными ресурсами;
  • задач реального времени, где 32-битная разрядность достаточна.

С 2022 года компания ARM прекратила выпуск новых лицензий на ядра ARMv7-A, сосредоточившись на ARMv8-A и ARMv9-A. Тем не менее, миллиарды устройств на ARMv7-A продолжают эксплуатироваться по всему миру.

Интересные факты

  • Процессор Apple A4 (Cortex-A8) в iPhone 4 работал на частоте 1 ГГц, что для 2010 года было рекордом среди мобильных чипов.
  • Архитектура ARMv7-A стала основой для первого в мире двухъядерного мобильного процессора — NVIDIA Tegra 2 (2010).
  • Ядро Cortex-A7, входящее в архитектуру ARMv7-A, было разработано как энергоэффективное дополнение к производительным ядрам в схеме big.LITTLE, что позволило существенно продлить время автономной работы смартфонов.
  • В 2012 году компания Raspberry Pi Foundation выпустила Raspberry Pi Model B на процессоре ARM11 (ARMv6), но уже через два года перешла на ARMv7-A в Raspberry Pi 2.

Источники

  • ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition (ARM DDI 0406C)
  • ARM Cortex-A Series Programmer’s Guide (ARM DEN 0013C)
  • Документация ARM Holdings: Cortex-A8, Cortex-A9, Cortex-A15 Technical Reference Manuals
  • Статьи AnandTech, Tom’s Hardware, WikiChip по архитектурам ARM
  • Официальные спецификации Raspberry Pi (Raspberry Pi Foundation)
  • Материалы конференций ARM TechCon (2010–2015)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →