Ответ на вопрос
ARM (архитектура)
ARM (Arm; англ. Advanced RISC Machines, первоначально — Acorn RISC Machine) — семейство RISC-архитектур набора команд для 32- и 64-разрядных процессоров, разрабатываемое британской компанией Arm Limited. Компания лицензирует архитектуру и готовые процессорные ядра производителям микросхем, которые выпускают на их основе системы на кристалле для смартфонов, встраиваемых систем, персональных компьютеров, серверов и суперкомпьютеров[1][2].
Общие сведения
| ARM | |
|---|---|
| Разработчик | Arm Limited |
| Разрядность | 32 и 64 бит |
| Представлена | 1985 |
| Версии | Armv9-A |
| Архитектура | RISC |
| Тип | Регистр-регистр (загрузка/сохранение) |
| Кодирование СК | A64: фиксированное, 32 бит |
| Реализация переходов | по флагам условий |
| Расширения | Advanced SIMD (Neon), SVE, SVE2, SME, SME2 |
| Регистры | |
| Всего | AArch64: 31 регистр общего назначения по 64 бит, 32 регистра по 128 бит для операций с плавающей запятой и векторных операций |
Терминология и место в вычислительной системе
Название и написание Arm / ARM
Название архитектуры восходит к проекту Acorn RISC Machine британской компании Acorn Computers, начатому к 1983 году. В ноябре 1990 года группа разработчиков процессора из исследовательского подразделения Acorn была выделена в компанию Advanced RISC Machines[3].
В августе 2017 года, через 11 месяцев после покупки компании японской SoftBank, ARM Holdings сменила фирменный стиль. Логотип стал записываться строчными буквами (arm), а в тексте название стало употребляться в форме Arm; директор Arm по связям с общественностью Фил Хьюз пояснил, что строчное написание относится только к логотипу[4].
В документации компании версии архитектуры обозначаются в той же форме — Armv8-A, Armv9-A[2].
Архитектура набора команд
Архитектура набора команд (англ. Instruction Set Architecture, ISA) — абстрактный интерфейс между аппаратурой процессора и выполняемым на нём программным обеспечением. Она определяет поддерживаемые команды, типы данных, регистры, модель доступа к памяти и обработку ввода-вывода, обеспечивая совместимость программ между разными реализациями одного семейства процессоров[5].
В документации Arm архитектура понимается как функциональная спецификация процессора — своего рода договор между аппаратным и программным обеспечением. Она описывает набор команд и их кодирование, набор регистров, модель исключений и уровней привилегий, модель памяти, а также средства отладки, трассировки и профилирования[2].
Процессорное ядро, SoC и устройство
Реализацию архитектуры Arm называет процессорным элементом (англ. Processing Element, PE); в зависимости от конструкции им может быть весь процессор, отдельное ядро или отдельный поток многопоточного ядра. Архитектура определяет, какие операции выполняет процессор, а микроархитектура — как именно они выполняются: длину и структуру конвейера, число и объём кэшей, время выполнения отдельных команд и набор реализованных необязательных функций. Так, Cortex-A53 с восьмиступенчатым конвейером и исполнением команд по порядку и Cortex-A72 с конвейером из 15 и более ступеней и внеочередным исполнением реализуют одну архитектуру Armv8-A, и совместимое с ней программное обеспечение выполняется на обоих без изменений[2].
Помимо процессорного ядра, системе нужны память, устройства ввода-вывода, средства управления питанием и отладки, а также аппаратура, связывающая эти компоненты; всё это объединяется в системе на кристалле (SoC). Для таких систем Arm и её партнёры разработали открытые и не требующие лицензионных отчислений спецификации системной архитектуры, в том числе контроллер прерываний GIC, системный блок управления памятью SMMU и семейство интерфейсов AMBA. Сведения о конкретной микросхеме — карту памяти, периферийные устройства, назначение выводов — приводит её производитель в техническом описании[2].
В одном устройстве обычно работают несколько ядер Arm разных профилей. В типичном смартфоне, по описанию Arm, основной процессор с операционной системой Android относится к профилю A, сотовый модем построен на ядре профиля R, несколько ядер профиля M отвечают за управление питанием и другие служебные функции, а в SIM-карте используется защищённое ядро SecurCore[2].
История
Acorn RISC Machine
Компанию Acorn Computers основали в 1978 году Крис Карри и Герман Хаузер. Она получила право выпускать компьютер BBC Micro для британской государственной программы, которая предусматривала оснащение компьютерами каждого школьного класса. В рамках этой работы Стив Фербер и Софи Уилсон спроектировали первый процессор Arm — ARM1[1].
К 1983 году в Acorn пришли к выводу, что процессор MOS 6502, применявшийся в BBC Micro, исчерпал возможности развития, и начали проект Acorn RISC Machine. Уилсон смоделировала систему команд 32-разрядного процессора в 808 строках на языке BBC BASIC, а Фербер разработал аппаратную архитектуру с трёхступенчатым конвейером и циклическим сдвигателем (англ. barrel shifter). Первые кристаллы изготовила компания VLSI Technology; они поступили в Acorn 26 апреля 1985 года и заработали в тот же день. К этому времени Acorn перешла под контроль компании Olivetti. ARM1 применялся как сопроцессор для BBC Micro, а ARM2 и последующие версии использовались в компьютерах Acorn Archimedes и RiscPC[3].
Создание Advanced RISC Machines
В ноябре 1990 года была основана Advanced RISC Machines Ltd — совместное предприятие Acorn Computers, Apple и VLSI Technology. Компанию создали 12 разработчиков архитектуры Arm, а в 1991 году её председателем и генеральным директором стал Робин Сэксби. В 1993 году на архитектуре Arm вышел карманный компьютер Apple Newton, не имевший коммерческого успеха, после чего Сэксби ввёл модель лицензирования интеллектуальной собственности: процессорные разработки Arm стали предоставляться многим компаниям за единовременный лицензионный платёж и роялти, зависящие от объёма выпущенных микросхем[1].
В 1993 году Arm заключила соглашение с Texas Instruments, которая рекомендовала компании Nokia использовать разработки Arm в GSM-телефонах; телефон Nokia 6110 на процессоре Arm имел большой коммерческий успех, а ARM7 стал основной мобильной разработкой компании. 17 апреля 1998 года акции ARM Holdings PLC были допущены к торгам на Лондонской фондовой бирже и NASDAQ. В 2000-х годах компания выпустила семейства процессорных ядер Cortex-A, Cortex-R и Cortex-M, а 5 сентября 2016 года SoftBank завершила покупку Arm. От объявленной в сентябре 2020 года сделки по приобретению Arm компанией Nvidia стороны через 17 месяцев отказались, сославшись на существенные регуляторные препятствия[1].
Переход к 64-разрядным архитектурам
Архитектуру ARMv8 с первым в истории Arm 64-разрядным набором команд технический директор компании Майк Мюллер представил в октябре 2011 года на конференции ARM TechCon в Санта-Кларе. Архитектура включила два основных состояния исполнения: AArch64 с новым набором команд A64 и AArch32 с поддержкой прежнего набора команд; по словам Мюллера, ARMv8 полностью поддерживает 32-разрядное программное обеспечение ARMv7-A. Первые процессоры на ARMv8 планировалось анонсировать в 2012 году, а появление серверных прототипов ожидалось в 2014 году[6].
30 марта 2021 года Arm представила архитектуру Armv9 — первую новую архитектуру компании за десятилетие, развивающую Armv8[7].
Архитектура
RISC и особенности набора команд
ARM, как и RISC-V, относится к архитектурам с сокращённым набором команд (RISC), тогда как x86 относится к архитектурам со сложным набором команд (CISC); эти классы различаются сложностью и длиной команд. Архитектура набора команд Arm дополняется необязательными расширениями, например SIMD-командами и криптографическими командами, с сохранением обратной совместимости[5].
Набор команд A64, используемый в состоянии AArch64, имеет фиксированную длину команды 32 бита; число 64 в названии указывает на состояние исполнения, а не на размер команды. Обмен данными между памятью и регистрами выполняют отдельные команды загрузки (LDR) и сохранения (STR), а результат команд обработки данных всегда помещается в регистр. Второй операнд может быть регистром с необязательным сдвигом или константой, закодированной в самой команде. Условный переход B.cond выполняется в зависимости от флагов арифметико-логического устройства; кроме того, в наборе есть команды условного выбора[8].
Поколения архитектуры
Arm обозначает версии архитектуры номером и профилем: например, Armv9-A — версия 9 для профиля A. Основные версии профиля A — Armv8-A, объявленная в 2011 году как первая 64-разрядная версия архитектуры, и построенная на её основе Armv9-A[2].
Arm ежегодно выпускает обновления архитектуры, обозначаемые дополнительным номером версии. Armv9.0-A соответствует Armv8.5-A и дополнительно включает функции, существующие только в Armv9, например SVE2. Обновления Armv8-A и Armv9-A выпускались параллельно: возможности, добавленные в Armv8, наследовались соответствующей версией Armv9, а часть функций появлялась только в Armv9-A. Обновления также называют по году объявления: так, Armv8.9-A и Armv9.4-A вместе составляют расширения 2022 года[2].
AArch32 и AArch64
Armv8-A поддерживает три набора команд: A32, T32 и A64. Наборы A32 и T32, известные также как ARM и Thumb, используются в состоянии исполнения AArch32, набор A64 — в состоянии AArch64[8].
В AArch64 доступен 31 регистр общего назначения; каждый используется как 64-разрядный регистр X (X0-X30) или как 32-разрядный регистр W (W0-W30), совпадающий с младшей половиной соответствующего регистра X. Для операций с плавающей запятой и векторных операций предусмотрен отдельный набор из 32 регистров по 128 бит. Регистр X30 служит регистром связи (LR). В отличие от A32 и T32, где счётчик команд (PC) и указатель стека (SP) являются регистрами общего назначения, в A64 они к ним не относятся. Поддержка операций с плавающей запятой в Armv8-A обязательна при использовании полнофункциональной операционной системы, например Linux[8].
В Armv9-A поддержка AArch32 ограничена уровнем исключений EL0[2].
Armv8-A и Armv9-A
Устройства на основе Armv8-A применяются от мобильных телефонов до суперкомпьютеров. Armv9-A добавила, в частности, масштабируемое векторное расширение второй версии (SVE2), масштабируемые матричные расширения SME и SME2, расширение управления областями RME, защищённый стек управления GCS, расширения трассировки ETE и TRBE, а также буфер записей ветвлений BRBE. Например, процессорное ядро Neoverse V3 реализует Armv9.2-A и ряд необязательных функций, включая RME[2].
Вместе с Armv9 Arm представила архитектуру конфиденциальных вычислений (Arm Confidential Compute Architecture, CCA) с динамически создаваемыми областями (англ. Realms), отделёнными как от защищённого, так и от незащищённого мира. Расширение SVE Arm создала совместно с Fujitsu, и оно лежит в основе суперкомпьютера Fugaku; на его основе для Armv9 разработано SVE2, расширяющее возможности машинного обучения и цифровой обработки сигналов[7].
Профили и процессорные семейства
Для разных рынков архитектура Arm разделена на три профиля — A, R и M, которые сохраняют ряд общих базовых функций[2].
Application profile
Профиль A (англ. Application) предназначен для высокопроизводительных процессоров с широкими возможностями, рассчитанных на сложные операционные системы, например Linux или Windows[2].
Ядра этого профиля Arm выпускает в семействе Cortex-A, ориентированном на высокую производительность и энергоэффективность в мобильных устройствах[1].
Real-time profile
Профиль R (англ. Real-Time) ориентирован на системы с требованиями работы в реальном времени и детерминированного поведения. Такие процессоры обычно применяются в сетевом оборудовании и встраиваемых системах управления[2].
Соответствующее семейство ядер Arm — Cortex-R — рассчитано на узкоспециализированные задачи реального времени[1].
Microcontroller profile
Профиль M (англ. Microcontroller) предназначен для небольших энергоэффективных устройств и лежит в основе многих устройств интернета вещей. К этому профилю относятся и ядра SecurCore с дополнительными функциями защиты, которые обычно применяются в смарт-картах[2].
Семейство Cortex-M включает ядра с крайне низким энергопотреблением и низкой стоимостью, предназначенные для микроконтроллеров[1].
Cortex и Neoverse
Cortex, Neoverse и SecurCore — торговые марки процессорных разработок, которые Arm предоставляет по лицензии; партнёры компании выпускают процессоры на архитектуре Arm и под собственными марками[2].
Семейство Neoverse Arm представила в октябре 2018 года для высокопроизводительных вычислений и облачных платформ. По данным компании, к концу 2010-х годов виртуальные серверы на базе Arm появились у всех крупнейших облачных провайдеров[1].
24 марта 2026 года Arm представила Arm AGI CPU — первый серверный процессор собственного выпуска; до этого участие компании в создании серверных микросхем ограничивалось лицензированием ядер и архитектуры набора команд. Процессор с тепловым пакетом 300 Вт содержит 136 ядер Neoverse V3 с частотой до 3,7 ГГц, размещённых на двух кристаллах, которые изготавливаются TSMC по 3-нм техпроцессу. Он предназначен для работы агентов искусственного интеллекта в центрах обработки данных; среди первых заказчиков названы OpenAI, SAP и Cloudflare, а поставки запланированы на вторую половину 2026 года[9].
Лицензионная модель и экосистема
Лицензирование архитектуры
Arm лицензирует компаниям как саму архитектуру, так и готовые проекты вычислительных ядер. Часть крупных заказчиков, в том числе Apple, Qualcomm и Nuvia, приобретает лицензию на архитектуру и разрабатывает собственные ядра[10].
Условия таких лицензий стали предметом судебного спора между Arm и Qualcomm, купившей Nuvia в 2021 году; спор касался и размера роялти за каждую микросхему. В декабре 2024 года присяжные федерального суда США в Делавэре признали, что процессоры Qualcomm, созданные с использованием технологий Nuvia, надлежащим образом лицензированы по соглашению Qualcomm с Arm. По вопросу о нарушении лицензии самой Nuvia присяжные не пришли к единому мнению, и в этой части процесс был признан несостоявшимся[10].
Лицензирование ядер
С 1990-х годов основой бизнес-модели Arm служит лицензирование готовых разработок: компания получает единовременный лицензионный платёж и роялти в зависимости от объёма выпущенных микросхем. В 2006 году Arm купила норвежскую компанию Falanx Microsystems, что положило начало линейке графических процессоров Mali. По данным Arm, её экосистема насчитывает более тысячи партнёров, а технологии компании применены более чем в 350 млрд микросхем[1].
По оценке The Register, именно лицензионная модель позволила встраивать технологии Arm во всё большее число систем на кристалле[3].
Технические справочные руководства по ядрам Cortex и Neoverse доступны на сайте Arm Developer, а руководства по конфигурированию и интеграции ядер в систему предоставляются только лицензиатам[2].
Пользовательские микроархитектуры
Архитектура допускает различные микроархитектурные реализации, однако каждый совместимый процессор должен выполнять все команды архитектуры Arm и не должен добавлять собственных; соблюдение этого требования обеспечивает совместимость с программным обеспечением и инструментами экосистемы Arm[2].
Apple лицензирует у Arm систему команд, но схемы процессорных ядер разрабатывает сама. Это позволяет компании выбирать набор специализированных ускорителей, например для машинного обучения или криптографии, и объединять память и другие функции в одном корпусе.
Применение
Мобильные устройства
По данным Arm, более 99 % смартфонов в мире основаны на технологиях компании. После появления смартфонов в 2007 году вырос спрос на производительность при сохранении длительной работы от аккумулятора; Arm выпустила многоядерный процессор Cortex-A9, а в 2011 году предложила подход big.LITTLE, сочетающий производительное ядро с энергоэффективным, которое используется, когда высокая производительность не нужна[1].
Встраиваемые системы и микроконтроллеры
По данным Arm, в 2022 году 65 % встраиваемых устройств интернета вещей были построены на системах на кристалле с архитектурой Arm; технологии компании применяются от сверхмаломощных датчиков до промышленных систем и систем хранения данных. На автомобильном рынке компания работает более 20 лет[1].
Персональные компьютеры, серверы и облачные платформы
Процессоры Arm с самого начала использовались в персональных компьютерах Acorn: ARM2 и последующие версии применялись в линейке Acorn Archimedes, а затем в RiscPC[3].
10 ноября 2020 года Apple представила первые компьютеры Mac на собственной микросхеме M1 — в рамках объявленного в июне того же года перехода с процессоров Intel, которые компания использовала с 2006 года. Приложения, написанные для процессоров Intel, на новых компьютерах выполняются в режиме эмуляции с помощью Rosetta 2. К тому времени Microsoft адаптировала Windows для систем на кристалле Qualcomm с архитектурой Arm и выпустила на такой платформе планшет Surface Pro X.
M1 — система на кристалле с восьмиядерным центральным процессором (четыре производительных и четыре энергоэффективных ядра), изготовленная по 5-нм техпроцессу и содержащая 16 млрд транзисторов[11].
1 июня 2026 года MediaTek объявила об участии в создании Nvidia RTX Spark — процессоров для компьютеров под управлением Windows 11, рассчитанных на тонкие ноутбуки и компактные настольные системы. MediaTek отвечает в этой системе на кристалле за центральный процессор и кэш, системную интеграцию, собственный контроллер памяти с поддержкой до 128 ГБ общей памяти, управление питанием и беспроводную связь. Первые ноутбуки на RTX Spark ожидаются осенью 2026 года[12].
RTX Spark, представленный на выставке COMPUTEX 2026, объединяет центральный процессор Grace на архитектуре Arm с графическим процессором Nvidia Blackwell RTX и общей памятью. По словам исполнительного вице-президента Microsoft Павана Давалури, выпуск RTX Spark продолжает развитие экосистемы Windows on Arm[13].
В июне 2020 года суперкомпьютер Fugaku в Центре вычислительных наук RIKEN в Кобе (Япония) возглавил список TOP500 с результатом 415,5 петафлопс в тесте производительности HPL (англ. High Performance Linpack), в 2,8 раза опередив Summit. Он построен на 48-ядерных системах на кристалле Fujitsu A64FX и стал первой системой № 1 в списке с процессорами ARM[14].
По оценке The Register, до появления Arm AGI CPU единственным поставщиком серверных процессоров Arm для корпоративных заказчиков вне облачных платформ была Ampere Computing[9].
Сравнение с другими архитектурами
| Признак | ARM | x86 | RISC-V |
|---|---|---|---|
| Класс архитектуры | RISC | CISC | RISC |
| Правовой статус | проприетарная, лицензируется Arm | проприетарная, принадлежит Intel и AMD | открытый стандарт без лицензионных отчислений |
ARM и x86
Архитектура x86, которую развивают Intel и AMD, как и ARM, является проприетарной: другие компании лицензируют соответствующую интеллектуальную собственность либо используют процессоры, основанные на ней[15].
При анонсе ARMv8 в 2011 году технический директор Arm Майк Мюллер, по оценке EE Times, полемизировал с Intel: по его словам, будущее — за «большим числом энергоэффективных ядер, а не несколькими менее энергоэффективными». Аналитик Real World Technologies Дэвид Кантер тогда же отмечал, что партнёры Arm, планирующие выход на рынок серверов, вступят в прямую конкуренцию с AMD, IBM, Intel и Oracle[6].
По мнению аналитика CCS Insight Бена Вуда, переход Apple с процессоров Intel на собственные микросхемы Arm должен был способствовать признанию микросхем Arm в персональных компьютерах и центрах обработки данных.
ARM и RISC-V
В отличие от ARM, RISC-V — открытый стандарт архитектуры набора команд, который можно реализовывать без дорогостоящих лицензионных отчислений. Архитектура разработана в Калифорнийском университете в Беркли, а её развитием управляет некоммерческая организация RISC-V International со штаб-квартирой в Швейцарии, объединяющая более 4000 участников из 70 стран. Многие компании, лицензирующие архитектуры Intel/AMD или ARM, участвуют в развитии RISC-V, чтобы получить альтернативу; в мае 2023 года Google, Nvidia и другие компании запустили проект RISC-V Software Ecosystem (RISE) для ускорения разработки программного обеспечения[15].
В 2020 году The Register оценивал RISC-V как угрозу для бизнес-модели Arm[3].