Архитектура ARM и 64-битные вычисления¶
ARM (Advanced RISC Machine) — семейство микропроцессорных архитектур, основанных на принципах RISC (Reduced Instruction Set Computer — вычисления с сокращённым набором команд), разрабатываемых британской компанией Arm Holdings. Архитектура ARM является одной из самых распространённых в мире: на её основе построены процессоры для подавляющего большинства смартфонов, планшетов, встраиваемых систем, а с середины 2010-х годов — также для серверов и персональных компьютеров. 64-битное расширение архитектуры, известное как AArch64 или ARM64, обеспечивает поддержку 64-битных адресов памяти и регистров, что позволяет эффективно работать с объёмами оперативной памяти свыше 4 ГБ и повышает производительность вычислений.
¶История развития
¶От ARMv1 до ARMv7
История ARM началась в 1983 году, когда британская компания Acorn Computers приступила к разработке собственного процессора для домашнего компьютера Acorn Archimedes. Первый процессор ARM1 был выпущен в 1985 году и использовался в качестве сопроцессора, а полноценный ARM2 (архитектура ARMv2) появился в 1987 году. Ключевой особенностью ранних ARM-процессоров была крайне низкая потребляемая мощность при достаточной производительности, что достигалось за счёт простоты набора команд и небольшого числа транзисторов.
В 1990 году компания Acorn выделила подразделение по разработке процессоров в самостоятельную компанию Advanced RISC Machines (позже — ARM Holdings). ARM не производила чипы самостоятельно, а лицензировала свои архитектуры и схемотехнические решения другим компаниям. Эта бизнес-модель позволила ARM занять доминирующее положение на рынке мобильных устройств.
Архитектуры ARMv3—ARMv6 (процессоры ARM7, ARM9, ARM11) использовались в первых смартфонах, КПК и цифровых камерах. Архитектура ARMv7, представленная в 2005 году, стала основой для процессоров Cortex-A8, A9 и A15, применявшихся в большинстве смартфонов и планшетов вплоть до середины 2010-х годов. Все эти архитектуры были 32-битными.
¶Переход к 64-бит: ARMv8
Архитектура ARMv8-A была анонсирована в октябре 2011 года. Она ввела два режима работы: AArch32 (совместимость с 32-битным кодом ARMv7) и AArch64 (полноценный 64-битный режим). В режиме AArch64 процессор использует 64-битные регистры общего назначения (31 регистр X0–X30), 64-битный программный счётчик и поддерживает 64-битную виртуальную адресацию. При этом набор инструкций был существенно переработан: часть устаревших инструкций убрана, а большинство команд имеют фиксированную длину 32 бита, что упрощает конвейерную обработку.
Первыми процессорами на архитектуре ARMv8-A стали чипы Apple A7 (сентябрь 2013 года), использованные в iPhone 5s, и Qualcomm Snapdragon 410. С тех пор все мобильные процессоры верхнего и среднего уровня выпускаются с поддержкой 64-битных вычислений. В 2016 году компания Arm представила архитектуру ARMv8.2-A с улучшениями для машинного обучения и высокопроизводительных вычислений, а в 2021 году — ARMv9, которая стала дальнейшим развитием 64-битной линейки.
¶Технические особенности
¶Ключевые принципы RISC
В отличие от архитектуры x86, использующей сложный набор команд (CISC), ARM основана на принципах RISC: каждая инструкция выполняет одну простую операцию, все инструкции имеют одинаковую длину (в режиме AArch64 — 32 бита), а обращение к памяти происходит только через специальные инструкции загрузки (LDR) и сохранения (STR). Это упрощает аппаратную реализацию, снижает энергопотребление и позволяет достигать высокой тактовой частоты при малом тепловыделении.
¶Регистры и адресация
В режиме AArch64 доступны 31 регистр общего назначения шириной 64 бита (X0–X30), а также регистры XZR (нулевой регистр) и SP (указатель стека). Для 32-битных операций используются младшие половины регистров (W0–W30). Адресация виртуальной памяти поддерживает до 48 бит (256 ТБ) в большинстве реализаций, с расширением до 52 бит в ARMv8.2-A. Физическая память может адресоваться до 48 бит.
¶Набор инструкций
Набор команд AArch64 включает инструкции для целочисленной арифметики, логических операций, работы с памятью, условных переходов и ветвлений. Также присутствуют инструкции для работы с числами с плавающей запятой (FPU) и SIMD-расширение NEON, которое позволяет выполнять операции сразу над несколькими элементами данных (например, 128-битные векторные регистры V0–V31). В ARMv8.2-A добавлены инструкции для полуточной арифметики (FP16), а в ARMv9 — расширения SVE2 (Scalable Vector Extensions) для гибкой векторной обработки.
¶Классификация процессоров
Процессорные ядра ARM делятся на три основные линейки:
- Cortex-A — высокопроизводительные ядра для смартфонов, планшетов, серверов и ПК. Примеры: Cortex-A53, A72, A76, A78, X1, X2.
- Cortex-R — ядра реального времени для автомобильной электроники, промышленных контроллеров и медицинской техники.
- Cortex-M — маломощные микроконтроллерные ядра для датчиков, встраиваемых систем, бытовой техники и устройств Интернета вещей.
64-битная архитектура поддерживается в основном ядрами Cortex-A, начиная с Cortex-A53 и Cortex-A57, а также в новейших ядрах Cortex-X-серии. Ядра Cortex-M до недавнего времени оставались 32-битными, однако в 2023 году Arm представила ядро Cortex-M85 с поддержкой Armv8.1-M, которое может использовать 64-битные вычисления при необходимости.
¶Применение
¶Мобильные устройства
Основной областью применения 64-битной архитектуры ARM являются смартфоны и планшеты. Процессоры Apple A-серии (A7 и новее), Qualcomm Snapdragon (начиная с 400-й серии), Samsung Exynos, MediaTek Dimensity и Huawei Kirin построены на 64-битных ядрах ARM. Это позволяет мобильным устройствам обрабатывать большие объёмы данных, запускать ресурсоёмкие приложения и игры, а также использовать современные алгоритмы шифрования.
¶Персональные компьютеры
В 2020 году компания Apple представила собственные процессоры серии M1 (позже M2, M3, M4) на архитектуре ARM64 для линейки компьютеров MacBook и iMac. Эти процессоры показали высокую производительность при низком энергопотреблении, что стало важным шагом в распространении ARM на рынке ПК. Компания Microsoft совместно с Qualcomm выпускает версии Windows 11 для устройств на базе Snapdragon X-серии. Операционные системы Linux также полностью поддерживают ARM64.
¶Серверы и облачные вычисления
Серверные процессоры на архитектуре ARM64, такие как Amazon Graviton, Ampere Altra и Huawei Kunpeng, используются в центрах обработки данных. Они обеспечивают высокую плотность вычислений на ватт потребляемой энергии, что снижает эксплуатационные расходы крупных облачных провайдеров.
¶Встраиваемые системы и Интернет вещей
Микроконтроллеры Cortex-M с 32-битной архитектурой широко применяются в датчиках, контроллерах «умного дома», носимой электронике. С появлением 64-битных возможностей в новых ядрах открываются перспективы для более сложных встраиваемых приложений, требующих повышенной безопасности и производительности.
¶Сравнение с x86
Архитектура x86, разработанная Intel и AMD, долгое время доминировала на рынке ПК и серверов. Основные отличия ARM64 от x86-64:
- Энергопотребление: ARM64 изначально проектировалась для мобильных устройств, поэтому обеспечивает лучшее соотношение производительности к потребляемой мощности.
- Набор команд: x86 использует CISC-подход с переменной длиной инструкций, ARM — фиксированную длину и упрощённый набор.
- Совместимость: x86 поддерживает огромный объём унаследованного программного обеспечения, ARM64 требует перекомпиляции или эмуляции.
- Лицензирование: Intel и AMD разрабатывают и производят процессоры самостоятельно, тогда как Arm продаёт лицензии на архитектуру множеству производителей.
В последние годы разрыв в производительности между ARM64 и x86 сокращается, особенно в сегменте серверов и ПК, однако экосистема программного обеспечения для x86 остаётся значительно более зрелой.
¶Интересные факты
- В 2016 году компания Arm была приобретена японским холдингом SoftBank за 32 миллиарда долларов США, а в 2023 году провела повторное публичное размещение акций на бирже NASDAQ.
- Процессоры ARM используются не только в электронике, но и в ряде суперкомпьютеров: например, японский суперкомпьютер Fugaku, возглавлявший рейтинг TOP500 в 2020–2021 годах, построен на 64-битных ядрах ARM (Fujitsu A64FX).
- Общее количество процессоров ARM, выпущенных с 1991 года, превышает 250 миллиардов штук, что делает эту архитектуру самой массовой в истории.