Из Википедии, бесплатной энциклопедии
  (Перенаправлено с ARMv8-A )
Перейти к навигации Перейти к поиску

АРМ (стилизованный в нижнем регистре , как руки , ранее аббревиатура от Advanced RISC Machines и первоначально Acorn RISC - машина ) представляет собой семейство сокращенного набора команд (RISC) архитектуры для компьютерных процессоров , настроенных для различных сред. Arm Ltd. разрабатывает архитектуру и передает ее по лицензии другим компаниям, которые разрабатывают свои собственные продукты, реализующие одну из этих архитектур architect - включая системы на кристалле (SoC) и системы на модулях (SoM), которые включают в себя различные компоненты, такие как память , интерфейсы и радио . Он также проектирует сердечникикоторые реализуют этот набор инструкций и лицензируют эти проекты ряду компаний, которые включают эти основные проекты в свои собственные продукты.

Было несколько поколений дизайна ARM. Исходный ARM1 использовал 32-битную внутреннюю структуру, но имел 26-битное адресное пространство, которое ограничивало его 64 МБ основной памяти . Это ограничение было снято в серии ARMv3, которая имеет 32-битное адресное пространство, и несколько дополнительных поколений до ARMv7 остались 32-битными. Выпущенная в 2011 году архитектура ARMv8-A добавила поддержку 64-битного адресного пространства и 64-битной арифметики с новым 32-битным набором инструкций фиксированной длины. [3] Arm Ltd. также выпустила серию дополнительных наборов инструкций для различных правил; расширение «Thumb» добавляет как 32-, так и 16-битные инструкции для повышения плотности кода , а Jazelleдобавлены инструкции для непосредственной обработки байт-кодов Java , а недавно и JavaScript . Более поздние изменения включают добавление одновременной многопоточности (SMT) для повышения производительности или отказоустойчивости . [4]

Благодаря низкой стоимости, минимальному энергопотреблению и меньшему тепловыделению, чем у их конкурентов, процессоры ARM желательны для легких портативных устройств с батарейным питанием, включая смартфоны , ноутбуки и планшетные компьютеры , а также другие встраиваемые системы . [5] [6] [7] Однако процессоры ARM также используются для настольных компьютеров и серверов , включая самый быстрый суперкомпьютер в мире . [8] С производством более 180 миллиардов чипов ARM [9] [10] [11] по состоянию на 2021 год ARM является наиболее широко используемой архитектурой набора команд.(ISA) и ISA произведены в наибольшем количестве. [12] [6] [13] [14] [15] В настоящее время широко используются Cortex ядро , старое «классическое» ядро и специализированные SecurCore сердечники вариантов доступны для каждого из них , чтобы включить или исключить дополнительные возможности.

История [ править ]

BBC Micro [ править ]

Первой широко успешной разработкой Acorn Computers была BBC Micro , представленная в декабре 1981 года. Это была относительно обычная машина, основанная на процессоре MOS 6502, но ее производительность была примерно вдвое выше, чем у конкурирующих моделей, таких как Apple II, из-за использования более быстрой DRAM. . Типичная память DRAM того времени работала на частоте около 2 МГц; Acorn заключила сделку с Hitachi на поставку более быстрых деталей с частотой 4 МГц. [16]

Машины той эпохи обычно разделяли память между процессором и фреймбуфером , что позволяло процессору быстро обновлять содержимое экрана без необходимости выполнять отдельный ввод / вывод (I / O). Однако, поскольку время отображения видео очень требовательно, видеооборудование должно иметь быстрый доступ к этой памяти. Из - за причуду 6502 замысла, процессор оставил память нетронутую для 1 / 2 от времени. Таким образом, при работе ЦП на частоте 1 МГц видеосистема может считывать данные во время этих простоев, занимая в общей сложности 2 МГц оперативной памяти. В BBC Micro использование оперативной памяти 4 МГц позволяло использовать ту же технику, но с удвоенной скоростью. Это позволило ему превзойти любую аналогичную машину на рынке.[17]

Acorn Business Computer [ править ]

1981 год был также годом, когда был представлен IBM PC . Используя недавно представленный 16-разрядный процессор Intel 8088 по сравнению с 8 -разрядным процессором 6502 , он смог обеспечить более высокую общую производительность. Его появление радикально изменило компьютерный рынок; то, что было в основном хобби и игровым рынком, появившимся в последние пять лет, начало превращаться в обязательный бизнес-элемент, с которым более ранние 8-битные проекты просто не могли конкурировать. На рынке также появлялись более новые разработки, работающие на 32-битной платформе, такие как Motorola 68000 [18] и National Semiconductor NS32016 . [19]

Acorn начал думать, как конкурировать на этом рынке, и разработал новый бумажный дизайн, известный как Acorn Business Computer . Они поставили перед собой цель создать машину, в десять раз превосходящую производительность BBC Micro, но по той же цене. [20] Это будет лучше по производительности и по заниженной цене. В то же время недавнее представление Apple Lisa представило концепцию Xerox Star более широкой аудитории и предположило, что будущее принадлежит машинам с графическим пользовательским интерфейсом . [21] Lisa, однако, стоила 9 995 долларов, так как была упакована с микросхемами поддержки, большим объемом памяти и жестким диском , которые в то время были очень дорогими. [22]

Затем инженеры начали изучать все доступные конструкции ЦП. Их вывод о существующих 16-битных проектах заключался в том, что они были намного дороже и все еще «немного хреново» [23], предлагая лишь немного более высокую производительность, чем их конструкция BBC Micro. Они также почти всегда требовали большого количества поддерживающих микросхем для работы даже на этом уровне, что увеличивало стоимость компьютера в целом. Эти системы просто не достигли бы проектной цели. [23] Они также рассматривали новые 32-битные конструкции, но они были еще дороже и имели те же проблемы с поддерживающими микросхемами. [24] По словам Софи Уилсон , все процессоры, протестированные в то время, работали примерно одинаково, с пропускной способностью около 4 Мбит / с. [25][а]

Два ключевых события привели Acorn к ARM. Одним из них была публикация серии отчетов Калифорнийского университета в Беркли , в которых говорилось, что простая конструкция микросхемы, тем не менее, может иметь чрезвычайно высокую производительность, намного превосходящую последние 32-разрядные разработки, представленные на рынке. [26] Вторым был визит Стива Фербера и Софи Уилсон в Western Design Center , компанию, управляемую Биллом Меншем и его сестрой, которая стала логическим преемником команды MOS и предлагала новые версии, такие как WDC 65C02 . Команда Acorn увидела, как старшеклассники создавали макеты микросхем на машинах Apple II, из чего следовало, что это может сделать кто угодно. [27] [28]Напротив, визит в другую дизайнерскую фирму, работающую над современным 32-битным процессором, выявил команду из более чем дюжины членов, которые уже работали над версией H своего дизайна, но все еще содержали ошибки. Это закрепило их решение в конце 1983 года начать разработку собственного процессора - Acorn RISC Machine. [29]

Концепции дизайна [ править ]

Первоначальные проекты Berkeley RISC были в некотором смысле обучающими системами, не предназначенными специально для непосредственной работы. К своей базовой концепции с большим количеством регистров ARM добавила ряд хорошо принятых замечаний по дизайну 6502. Главной из них была способность быстро обслуживать прерывания , что позволяло машинам обеспечивать разумную производительность ввода / вывода без какого-либо дополнительного внешнего оборудования. . Чтобы предложить такие же высокопроизводительные прерывания, что и 6502, архитектура ARM ограничила свое физическое адресное пространство 24 битами 4-байтовых слов, то есть 26 битами байтов или 64 МБ. Этот 24-битный размер позволял хранить программный счетчик (ПК) вместе с восемью флагами процессора.в одном 32-битном регистре. Это означало, что при приеме прерывания все состояние машины могло быть сохранено за одну операцию, тогда как если бы ПК был полностью 32-битным, для его сохранения и флагов состояния потребовались бы отдельные операции. [30]

Другим изменением, одним из наиболее важных с точки зрения практической производительности в реальном мире, была модификация набора инструкций для использования преимуществ DRAM страничного режима . Недавно представленный страничный режим позволил последующим обращениям к памяти выполняться в два раза быстрее, если они находились примерно в одном и том же месте или «странице». В дизайне Беркли не учитывался страничный режим и одинаково обрабатывалась вся память. В дизайн ARM добавлены специальные векторные инструкции доступа к памяти, «S-циклы», которые можно использовать для заполнения или сохранения нескольких регистров на одной странице в страничном режиме. Это удвоило производительность памяти, когда ее можно было использовать, и было особенно важно для производительности графики. [31]

В проектах Berkeley RISC использовались окна регистров, чтобы уменьшить количество операций сохранения и восстановления регистров, выполняемых при вызовах процедур ; конструкция ARM не приняла этого.

Уилсон разработал набор команд, написав симуляцию процессора на BBC BASIC, который работал на BBC Micro со вторым процессором 6502 . [32] [33] Это убедило инженеров Acorn, что они на правильном пути. Уилсон обратился к генеральному директору Acorn Герману Хаузеру и попросил дополнительных ресурсов. Хаузер дал свое согласие и собрал небольшую команду для разработки настоящего процессора на основе ISA Уилсона. [34] Официальный проект Acorn RISC Machine стартовал в октябре 1983 года.

ARM1 [ править ]

ARM1 2-й процессор для BBC Micro

Acorn выбрала технологию VLSI в качестве «кремниевого партнера», поскольку они были источником ПЗУ и нестандартных микросхем для Acorn. Компания Acorn предоставила дизайн, а VLSI - макет и изготовление. Первые образцы микросхемы ARM работали нормально, когда они были впервые получены и протестированы 26 апреля 1985 года. [5] Эти версии, известные как ARM1, работали на частоте 6 МГц. [35]

Первое приложение ARM использовалось в качестве второго процессора для BBC Micro, где оно помогло в разработке программного обеспечения для моделирования, завершить разработку вспомогательных микросхем (VIDC, IOC, MEMC) и ускорило программное обеспечение САПР, используемое при разработке ARM2. Впоследствии Уилсон переписал BBC BASIC на ассемблере ARM. Глубокие знания, полученные при разработке набора инструкций, позволили сделать код очень плотным, что сделало ARM BBC BASIC чрезвычайно хорошим тестом для любого эмулятора ARM.

ARM2 [ править ]

Результат моделирования на платах ARM1 привел к тому, что в конце 1986 года была представлена ​​конструкция ARM2, работающая на частоте 8 МГц, и в начале 1987 года версия с увеличенной скоростью от 10 до 12 МГц. [b] Существенным изменением в базовой архитектуре было добавление множителя Бута , тогда как раньше умножение приходилось выполнять программно. [37] Кроме того, новый режим запроса быстрого прерывания, сокращенно FIQ, позволял заменять регистры с 8 по 14 как часть самого прерывания. Это означало, что запросам FIQ не нужно было сохранять свои регистры, что еще больше ускоряло прерывания. [38]

ARM2 была примерно в семь раз производительнее типичной системы на базе 7 МГц 68000, такой как Commodore Amiga или Macintosh SE . Он был вдвое быстрее Intel 80386 на частоте 16 МГц и примерно такой же, как многопроцессорный супермини VAX-11/784 . Единственными системами, которые превзошли его, были рабочие станции на базе RISC Sun SPARC и MIPS R2000 . [39] Кроме того, поскольку ЦП был разработан для высокоскоростного ввода-вывода, в нем отсутствовали многие из поддерживающих микросхем, которые можно было увидеть в этих машинах, в частности, не было выделенного прямого доступа к памяти.(DMA), часто встречающийся на рабочих станциях. Графическая система также была упрощена на основе того же набора основных предположений о памяти и времени. Результатом стал кардинально упрощенный дизайн, обеспечивающий производительность на уровне дорогих рабочих станций, но по цене, сопоставимой с современными настольными компьютерами. [39]

ARM2 имеет 32-битную шину данных , 26-битное адресное пространство и 27 32-битных регистров . В ARM2 было всего 30 000 транзисторов , по сравнению с моделью 68000 от Motorola, выпущенной на шесть лет раньше - около 40 000. [40] Большая часть этой простоты произошла из-за отсутствия микрокода (который составляет от одной четверти до одной трети от 68000) и из-за (как и большинство современных процессоров) отсутствия кеша . Эта простота обеспечивает низкое энергопотребление, но при этом лучшую производительность, чем у Intel 80286 .

Преемник, ARM3, был выпущен с кеш-памятью 4  КБ , что еще больше улучшило производительность. [41] Адресная шина была расширена до 32 бит в ARM6, но программный код по-прежнему должен был находиться в пределах первых 64  МБ памяти в 26-битном режиме совместимости из-за зарезервированных битов для флагов состояния. [42]

Advanced RISC Machines Ltd. - ARM6 [ править ]

Микропроцессорная система на микросхеме
Die из микропроцессора ARM610

В конце 1980-х Apple Computer и VLSI Technology начали работать с Acorn над новыми версиями ядра ARM. В 1990 году Acorn выделил команду разработчиков в новую компанию под названием Advanced RISC Machines Ltd. [43] [44] [45], которая стала ARM Ltd., когда ее материнская компания Arm Holdings plc разместилась на Лондонской фондовой бирже и NASDAQ в 1998 году. [46] Новая разработка Apple-ARM в конечном итоге эволюционировала в ARM6, впервые выпущенную в начале 1992 года. Apple использовала ARM610 на базе ARM6 в качестве основы для своего КПК Apple Newton .

Ранние лицензиаты [ править ]

В 1994 году Acorn использовала ARM610 в качестве главного центрального процессора (ЦП) в своих компьютерах RiscPC . DEC лицензировала архитектуру ARMv4 и произвела StrongARM . [47] На частоте 233  МГц этот процессор потреблял всего один ватт (более новые версии потребляют гораздо меньше). Позже эта работа была передана Intel в рамках судебного разбирательства, и Intel воспользовалась возможностью, чтобы дополнить свою линейку i960 StrongARM. Позже Intel разработала собственную высокопроизводительную реализацию под названием XScale, которую с тех пор продала Marvell . Количество транзисторов в ядре ARM оставалось практически неизменным на протяжении всех этих изменений; ARM2 имел 30 000 транзисторов, [48]в то время как ARM6 выросла только до 35 000. [49]

Доля рынка [ править ]

В 2005 году около 98% всех проданных мобильных телефонов использовали хотя бы один процессор ARM. [50] В 2010 году производители микросхем на базе архитектур ARM сообщили о поставках 6,1 миллиарда процессоров на базе ARM , что составляет 95% смартфонов , 35% цифровых телевизоров и телевизионных приставок и 10% мобильных компьютеров . В 2011 году 32-разрядная архитектура ARM была наиболее широко используемой архитектурой в мобильных устройствах и самой популярной 32-разрядной архитектурой во встроенных системах. [51] В 2013 году было произведено 10 миллиардов [52], и «чипы на базе ARM используются почти в 60 процентах мобильных устройств в мире». [53]

Лицензирование [ править ]

Die из STM32F103VGT6 ARM Cortex-M3 микроконтроллера с 1  МБ флэш - памяти по STMicroelectronics

Основная лицензия [ править ]

Основным бизнесом Arm Ltd. является продажа IP-ядер , которые лицензиаты используют для создания микроконтроллеров (MCU), процессоров и систем на кристаллах на основе этих ядер. Оригинальный дизайн производитель сочетает в себе ядро ARM с другими частями , чтобы произвести полное устройство, как правило , тот , который может быть построен в существующем полупроводниковом изготовлении растений (FABS) по низкой цене и по- прежнему поставлять значительную производительность. Самой успешной была реализация ARM7TDMI, проданная сотнями миллионов экземпляров. Компания Atmel была центром проектирования встраиваемых систем на базе ARM7TDMI.

Архитектуры ARM, используемые в смартфонах, КПК и других мобильных устройствах, варьируются от ARMv5 до ARMv8-A.

В 2009 году некоторые производители представили нетбуки на базе процессоров с архитектурой ARM, что составляет прямую конкуренцию нетбукам на базе Intel Atom . [54]

Arm Ltd. предлагает различные условия лицензирования, различающиеся по стоимости и объему поставки. Arm Ltd. предоставляет всем лицензиатам интегрируемое описание оборудования ядра ARM, а также полный набор инструментов для разработки программного обеспечения ( компилятор , отладчик , комплект для разработки программного обеспечения ) и право продавать изготовленные микросхемы, содержащие ЦП ARM.

Пакеты SoC, объединяющие основные конструкции ARM, включают первые три поколения Nvidia Tegra, семейство Quatro от CSR plc, Nova и NovaThor от ST-Ericsson, MCU Precision32 от Silicon Labs, продукты OMAP от Texas Instruments, продукты Samsung Hummingbird и Exynos , Apple A4 , A5 и A5X , а также NXP «s i.MX .

Лицензиаты Fabless , желающие интегрировать ядро ​​ARM в свою собственную микросхему, обычно заинтересованы только в приобретении готового к производству подтвержденного полупроводникового ядра интеллектуальной собственности . Для этих клиентов Arm Ltd. предоставляет описание списка соединений выбранного ядра ARM, а также абстрактную имитационную модель и тестовые программы, чтобы помочь в интеграции и проверке проекта. Более амбициозные клиенты, включая производителей интегрированных устройств (IDM) и операторов литейных производств, предпочитают приобретать IP-адрес процессора в синтезируемом RTL ( Verilog) форма. С помощью синтезируемого RTL заказчик имеет возможность выполнять оптимизацию и расширения на архитектурном уровне. Это позволяет разработчику достигать экзотических целей проектирования, которые иначе были бы невозможны с неизмененным списком соединений ( высокая тактовая частота , очень низкое энергопотребление, расширения набора команд и т. Д.). Хотя Arm Ltd. не предоставляет лицензиату права перепродавать саму архитектуру ARM, лицензиаты могут свободно продавать произведенные продукты, такие как микросхемы, оценочные платы и полные системы. Торговые литейные предприятия могут быть особым случаем; Им не только разрешено продавать готовые кремниевые кристаллы, содержащие ядра ARM, они, как правило, имеют право повторно производить ядра ARM для других клиентов.

Arm Ltd. оценивает свою интеллектуальную собственность на основе предполагаемой ценности. Ядра ARM с меньшей производительностью обычно имеют меньшую стоимость лицензии, чем ядра с более высокой производительностью. С точки зрения реализации, синтезируемое ядро ​​стоит больше, чем ядро ​​жесткого макроса (черного ящика). Что еще более усложняет вопрос цены, то литейное предприятие, имеющее лицензию ARM, такое как Samsung или Fujitsu, может предложить потрясающим клиентам сниженные затраты на лицензирование. В обмен на приобретение ядра ARM через собственные проектные услуги литейного завода заказчик может уменьшить или отменить оплату авансового лицензионного сбора ARM.

По сравнению со специализированными заводами по производству полупроводников (такими как TSMC и UMC ) без собственных услуг по проектированию Fujitsu / Samsung взимают в два-три раза больше за каждую изготовленную пластину . [ необходима цитата ] Для приложений с низким и средним объемом работ по проектированию литейный цех предлагает более низкие общие цены (за счет субсидирования лицензионных сборов). Для деталей, производимых массово и массово, долгосрочное снижение затрат, достижимое за счет более низких цен на пластины, снижает влияние затрат ARM на NRE (непериодическое проектирование), что делает специализированное литейное производство лучшим выбором.

Компании , которые разработали чипы с ядрами , разработанные Arm Holdings включают Amazon.com «s Аннапурна Labs дочерняя компания, [55] Analog Devices , компания Apple , AppliedMicro (теперь: MACOM Technology Solutions [56] ), Atmel , Broadcom , Cavium , Cypress Semiconductor , Freescale Semiconductor (теперь NXP Semiconductors ), Huawei , Intel , [ сомнительно ] Maxim Integrated , Nvidia, NXP , Qualcomm , Renesas , Samsung Electronics , ST Microelectronics , Texas Instruments и Xilinx .

Создано на основе лицензии ARM Cortex Technology [ править ]

В феврале 2016 года ARM объявила о лицензии на технологию Built on ARM Cortex, которую часто сокращают до лицензии Built on Cortex (BoC). Эта лицензия позволяет компаниям сотрудничать с ARM и вносить изменения в конструкции ARM Cortex. Эти изменения дизайна не будут переданы другим компаниям. Эти полу-нестандартные конструкции сердечников также имеют свободу выбора бренда, например Kryo 280 .

Компании, которые в настоящее время имеют лицензию на технологию Built on ARM Cortex, включают Qualcomm . [57]

Архитектурная лицензия [ править ]

Компании также могут получить архитектурную лицензию ARM для разработки собственных ядер ЦП с использованием наборов инструкций ARM. Эти ядра должны полностью соответствовать архитектуре ARM. Компании , которые проектировали ядра , которые реализуют архитектуру ARM включают Apple, AppliedMicro (теперь: Ампер Computing ), Broadcom, Cavium (сейчас: Marvell), Digital Equipment Corporation , Intel, Nvidia, Qualcomm, Samsung Electronics, Fujitsu и Nuvia Inc .

ARM Гибкий доступ [ править ]

16 июля 2019 года ARM объявила о гибком доступе к ARM. ARM Flexible Access обеспечивает неограниченный доступ к включенной интеллектуальной собственности (IP) ARM для разработки. Плата за лицензию на продукт взимается после того, как заказчик получает ленту или прототип. [58] [59]

75% последних IP-адресов ARM за последние два года включены в ARM Flexible Access. По состоянию на октябрь 2019 г .:

  • Процессоры: Cortex-A5 , Cortex-A7 , Cortex-A32 , Cortex-A34 , Cortex-A35 , Cortex-A53 , Cortex-R5 , Cortex-R8 , Cortex-R52 , Cortex-M0 , Cortex-M0 + , Cortex-M3 , Cortex-M4 , Cortex-M7 , Cortex-M23 , Cortex-M33
  • Графические процессоры: Mali-G52 , Mali-G31 . Включает комплекты для разработки драйверов Mali (DDK).
  • Межсоединение: CoreLink NIC-400, CoreLink NIC-450, CoreLink CCI-400, CoreLink CCI-500, CoreLink CCI-550, ADB-400 AMBA, XHB-400 AXI-AHB
  • Системные контроллеры: CoreLink GIC-400, CoreLink GIC-500, PL192 VIC, BP141 TrustZone Memory Wrapper, CoreLink TZC-400, CoreLink L2C-310, CoreLink MMU-500, интерфейс памяти BP140
  • Безопасность IP: CryptoCell-312, CryptoCell-712, TrustZone True Random Number Generator
  • Периферийные контроллеры: PL011 UART, PL022 SPI, PL031 RTC
  • Отладка и трассировка: CoreSight SoC-400, CoreSight SDC-600, CoreSight STM-500, макроячейка CoreSight System Trace, контроллер памяти CoreSight Trace
  • Дизайнерские комплекты: Corstone-101, Corstone-201
  • Физический IP: Artisan PIK для Cortex-M33 TSMC 22ULL, включая компиляторы памяти, логические библиотеки, GPIO и документацию
  • Инструменты и материалы: Socrates IP ToolingARM Design Studio, модели виртуальных систем
  • Поддержка: стандартная техническая поддержка ARM, онлайн-обучение ARM, обновления по техническому обслуживанию, кредиты на обучение на месте и проверки конструкции

Ядра [ править ]

  1. ^ a b Хотя большинство каналов данных и регистров ЦП в ранних процессорах ARM были 32-битными, адресуемая память была ограничена 26 битами ; а старшие биты используются для флагов состояния в регистре счетчика программ.
  2. ^ a b c ARMv3 включал режим совместимости для поддержки 26-битных адресов более ранних версий архитектуры. Этот режим совместимости является необязательным в ARMv4 и полностью удален в ARMv5.

Arm Holdings предоставляет список поставщиков, которые реализуют ядра ARM в своей конструкции (стандартные продукты для конкретных приложений (ASSP), микропроцессоры и микроконтроллеры). [89]

Примеры применения ядер ARM [ править ]

Tronsmart MK908, четырехъядерный Android-мини-ПК на базе Rockchip, рядом с которым расположена карта microSD для сравнения размеров.

Ядра ARM используются в ряде продуктов, особенно в КПК и смартфонах . Некоторые вычислительные примеры Microsoft 's первое поколение поверхности , поверхности 2 и Pocket PC устройств (после 2002 ), Apple , ' s IPADS и Asus «s Eee Pad Transformer планшетных компьютеров , а также несколько Chromebook ноутбуков. Другие включают смартфоны Apple iPhone и портативные медиаплееры iPod , цифровые камеры Canon PowerShot. , Гибридные консоли Nintendo Switch и портативные игровые консоли 3DS , а также системы пошаговой навигации TomTom .

В 2005 году Arm Holdings приняла участие в разработке компьютера SpiNNaker Манчестерского университета , который использовал ядра ARM для моделирования человеческого мозга . [90]

Чипы ARM также используются в Raspberry Pi , BeagleBoard , BeagleBone , PandaBoard и других одноплатных компьютерах , поскольку они очень маленькие, недорогие и потребляют очень мало энергии.

32-битная архитектура [ править ]

ARMv7 был использован для власти старых версий популярных Raspberry Pi одноплатных компьютеров , как этот Raspberry Pi 2 с 2015 года.
ARMv7 также используется для питания одноплатных компьютеров семейства CuBox .

32-разрядная архитектура ARM, такая как ARMv7-A (реализующая AArch32; подробнее об этом см. В разделе об ARMv8-A ), была наиболее широко используемой архитектурой в мобильных устройствах по состоянию на 2011 год . [51]

С 1995 года Справочное руководство по архитектуре ARM [91] было основным источником документации по архитектуре процессора ARM и набору инструкций, в котором отделялись интерфейсы, которые все процессоры ARM должны поддерживать (например, семантика команд), от деталей реализации, которые могут различаться. Архитектура со временем развивалась, и седьмая версия архитектуры, ARMv7, определяет три архитектурных «профиля»:

  • A-profile, профиль «Application», реализуемый 32-разрядными ядрами в серии Cortex-A и некоторыми ядрами без ARM.
  • R-профиль, то « в режиме реального времени» профиль, реализуемый ядрами в Cortex-R серии
  • М-профиль, то «Микроконтроллер» профиль, реализованный в большинстве ядер в Cortex-M серии

Хотя профили архитектуры были сначала определены для ARMv7, впоследствии ARM определила архитектуру ARMv6-M (используемую Cortex M0 / M0 + / M1 ) как подмножество профиля ARMv7-M с меньшим количеством инструкций.

Режимы процессора [ править ]

За исключением M-профиля, 32-разрядная архитектура ARM определяет несколько режимов ЦП в зависимости от реализованных функций архитектуры. В любой момент времени ЦП может находиться только в одном режиме, но он может переключать режимы из-за внешних событий (прерываний) или программно. [92]

  • Пользовательский режим: единственный непривилегированный режим.
  • Режим FIQ: привилегированный режим, который вводится всякий раз, когда процессор принимает быстрый запрос прерывания .
  • Режим IRQ: привилегированный режим, в который входит каждый раз, когда процессор принимает прерывание.
  • Режим супервизора (svc): привилегированный режим, входящий при сбросе ЦП или выполнении инструкции SVC.
  • Режим прерывания: Привилегированный режим, который вводится всякий раз, когда возникает исключение прерывания предварительной выборки или прерывания данных.
  • Неопределенный режим: Привилегированный режим, который вводится всякий раз, когда возникает неопределенное исключение инструкции.
  • Системный режим (ARMv4 и выше): единственный привилегированный режим, в который не входит исключение. В него можно войти только путем выполнения инструкции, которая явно записывает в биты режима регистра текущего состояния программы (CPSR) из другого привилегированного режима (не из пользовательского режима).
  • Режим монитора (ARMv6 и ARMv7 Security Extensions, ARMv8 EL3): введен режим монитора для поддержки расширения TrustZone в ядрах ARM.
  • Hyp-режим (ARMv7 Virtualization Extensions, ARMv8 EL2): режим гипервизора, который поддерживает требования виртуализации Popek и Goldberg для небезопасной работы ЦП. [93] [94]
  • Режим потока (ARMv6-M, ARMv7-M, ARMv8-M): режим, который может быть указан как привилегированный или непривилегированный. Использование указателя основного стека (MSP) или указателя стека процессов (PSP) также можно указать в регистре CONTROL с привилегированным доступом. Этот режим разработан для пользовательских задач в среде ОСРВ, но обычно он используется в «голом железе» для суперцикла.
  • Режим обработчика (ARMv6-M, ARMv7-M, ARMv8-M): режим, предназначенный для обработки исключений (кроме RESET, которые обрабатываются в режиме Thread). Режим обработчика всегда использует MSP и работает на привилегированном уровне.

Набор инструкций [ править ]

Первоначальная (и последующая) реализация ARM была зашита без микрокода , как гораздо более простой 8-битный процессор 6502 , используемый в предыдущих микрокомпьютерах Acorn.

32-разрядная архитектура ARM (и по большей части 64-разрядная архитектура) включает следующие функции RISC:

  • Архитектура загрузки / хранения .
  • В исходной версии архитектуры не поддерживается доступ к невыровненной памяти . ARMv6 и более поздние версии, за исключением некоторых версий микроконтроллеров, поддерживают невыровненный доступ для полусловных и однословных инструкций загрузки / сохранения с некоторыми ограничениями, такими как отсутствие гарантированной атомарности . [95] [96]
  • Единый регистровый файл размером 16 × 32 бита (включая счетчик программ, указатель стека и регистр связи).
  • Фиксированная ширина инструкции 32 бита для упрощения декодирования и конвейерной обработки за счет уменьшения плотности кода . Позже набор инструкций Thumb добавил 16-битные инструкции и увеличил плотность кода.
  • В основном выполнение за один такт.

Чтобы компенсировать более простую конструкцию по сравнению с такими процессорами, как Intel 80286 и Motorola 68020 , были использованы некоторые дополнительные конструктивные особенности:

  • Условное выполнение большинства инструкций снижает накладные расходы на переходы и компенсирует отсутствие предсказателя переходов в ранних микросхемах.
  • Арифметические инструкции изменяют коды условий только при желании.
  • 32-битный сдвигатель может использоваться без потери производительности с большинством арифметических инструкций и вычислений адресов.
  • Имеет мощные режимы индексированной адресации .
  • Регистр связи поддерживает быстрые вызовы функций листа.
  • Простая, но быстрая подсистема обработки прерываний с двумя уровнями приоритета имеет переключение банков регистров.

Арифметические инструкции [ править ]

ARM включает в себя целочисленные арифметические операции для сложения, вычитания и умножения; некоторые версии архитектуры также поддерживают операции разделения.

ARM поддерживает 32-битное × 32-битное умножение с 32-битным или 64-битным результатом, хотя ядра Cortex-M0 / M0 + / M1 не поддерживают 64-битные результаты. [97] Некоторые ядра ARM также поддерживают умножение 16 × 16 и 32 × 16 бит.

Инструкции разделения включены только в следующие архитектуры ARM:

  • Архитектуры ARMv7-M и ARMv7E-M всегда включают инструкции разделения. [98]
  • Архитектура ARMv7-R всегда включает инструкции разделения в наборе инструкций Thumb, но необязательно в 32-битном наборе инструкций. [99]
  • Архитектура ARMv7-A дополнительно включает инструкции разделения. Инструкции могут быть не реализованы, или реализованы только в наборе команд Thumb, или реализованы в наборах команд Thumb и ARM, или реализованы, если включены расширения виртуализации. [99]

Регистры [ править ]

Регистры с R0 по R7 одинаковы для всех режимов ЦП; они никогда не попадают в банк.

Регистры с R8 по R12 одинаковы для всех режимов ЦП, кроме режима FIQ. Режим FIQ имеет свои собственные регистры от R8 до R12.

R13 и R14 объединены во все привилегированные режимы ЦП, кроме системного. То есть каждый режим, в который можно войти из-за исключения, имеет свои собственные R13 и R14. Эти регистры обычно содержат указатель стека и адрес возврата из вызовов функций соответственно.

Псевдонимы:

  • R13 также называют SP, указателем стека .
  • R14 также упоминается как LR, регистр связи .
  • R15 также обозначается как ПК, счетчик программ .

Регистр текущего состояния программы (CPSR) имеет следующие 32 бита. [100]

  • M (биты 0–4) - биты режима процессора.
  • T (бит 5) - это бит состояния большого пальца.
  • F (бит 6) - это бит отключения FIQ.
  • I (бит 7) - это бит отключения IRQ.
  • A (бит 8) - бит запрета прерывания неточных данных.
  • E (бит 9) - бит порядка следования данных.
  • IT (биты 10–15 и 25–26) - это биты состояния «если-то».
  • GE (биты 16–19) - это биты "больше или равно".
  • DNM (биты 20–23) - это биты не изменять.
  • J (бит 24) - это бит состояния Java.
  • Q (бит 27) - бит липкого переполнения.
  • V (бит 28) - бит переполнения.
  • C (бит 29) - бит переноса / заимствования / расширения.
  • Z (бит 30) - нулевой бит.
  • N (бит 31) - отрицательный / меньший бит.

Условное исполнение [ править ]

Почти каждая инструкция ARM имеет функцию условного выполнения, называемую предикатом , которая реализуется с помощью 4-битного селектора кода условия (предиката). Чтобы разрешить безусловное выполнение, один из четырехбитовых кодов заставляет команду всегда выполняться. Большинство других архитектур ЦП имеют коды условий только для инструкций перехода. [101]

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

Хорошим примером условного выполнения является алгоритм Евклида, основанный на вычитании, для вычисления наибольшего общего делителя . На языке программирования C алгоритм можно записать как:

int  gcd ( int  a ,  int  b )  {  while  ( a  ! =  b )  // Мы входим в цикл, когда a <b или a> b, но не когда a == b  if  ( a  >  b )  // Когда a> б делаем это  а  - =  б ;  else  // Когда a <b, мы это делаем (if (a <b) не требуется, так как a! = b проверяется в условии while)  b  - =  a ;  вернуться  ; }

Тот же алгоритм можно переписать, чтобы он был ближе к целевым инструкциям ARM, как:

loop :  // Сравните a и b  GT  =  a  >  b ;  LT  =  a  <  b ;  NE  =  a  ! =  B ; // Выполняем операции по результатам флага  if ( GT )  a  - =  b ;  // Вычесть * только * если больше  if ( LT )  b  - =  a ;  // Вычесть * только * если меньше  if ( NE )  goto  loop ;  // Цикл * только *, если сравниваемые значения не равны  return  a ;

и закодирован на ассемблере как:

; назначить a регистру r0, b циклу  r1 : CMP  r0 ,  r1  ; установить условие "NE" if (a! = b)  ,; «GT» if (a> b)  ,; или "LT", если (a <b)  SUBGT  r0 ,  r0 ,  r1  ; если «GT» (больше), a = ab;  SUBLT  r1 ,  r1 ,  r0  ; если «LT» (меньше), b = ba;  Петля BNE  ; если «NE» (не равно), то цикл B lr ; если в цикл не вошли, можно смело возвращаться    

который избегает ветвей по всем thenи elseстатьям. Если r0и r1равны, то ни одна из SUBинструкций не будет выполняться, что устраняет необходимость в условном переходе для реализации whileпроверки в верхней части цикла, например, было использовано SUBLE(меньше или равно).

Один из способов, которыми код Thumb обеспечивает более плотное кодирование, - это удалить четырехбитовый селектор из инструкций без ветвления.

Другие особенности [ править ]

Другой особенностью набора инструкций является возможность сворачивания сдвигов и поворотов в инструкции «обработки данных» (арифметические, логические и перемещения регистр-регистр), так что, например, оператор C

а  + =  ( j  <<  2 );

может быть отображена как инструкция, состоящая из одного слова, с одним циклом: [102]

ДОБАВИТЬ  Ra ,  Ra ,  Rj ,  LSL  # 2

Это приводит к тому, что типичная программа ARM оказывается более плотной, чем ожидалось, с меньшим количеством обращений к памяти; таким образом трубопровод используется более эффективно.

Процессор ARM также имеет функции, редко встречающиеся в других архитектурах RISC, такие как относительная адресация ПК (действительно, в 32-битной [1] ARM ПК является одним из его 16 регистров) и режимы до- и постинкрементной адресации.

Набор инструкций ARM со временем увеличивался. Некоторые ранние процессоры ARM (до ARM7TDMI), например, не имеют инструкции для хранения двухбайтового количества.

Конвейеры и другие проблемы реализации [ править ]

ARM7 и более ранние реализации имеют трехступенчатый конвейер ; этапы выборки, декодирования и выполнения. Конструкции с более высокими характеристиками, такие как ARM9, имеют более глубокие конвейеры: Cortex-A8 имеет тринадцать ступеней. Дополнительные изменения реализации для повышения производительности включают более быстрый сумматор и более обширную логику прогнозирования ветвлений . Разница между ядрами ARM7DI и ARM7DMI, например, заключалась в улучшенном множителе; отсюда добавлено «М».

Сопроцессоры [ править ]

Архитектура ARM (до ARMv8) обеспечивает ненавязчивый способ расширения набора команд с помощью «сопроцессоров», к которым можно обращаться с помощью MCR, MRC, MRRC, MCRR и подобных инструкций. Пространство сопроцессора логически разделено на 16 сопроцессоров с номерами от 0 до 15, причем сопроцессор 15 (cp15) зарезервирован для некоторых типичных функций управления, таких как управление кешами и работа MMU на процессорах, у которых он есть.

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

В других случаях разработчики микросхем интегрируют оборудование только с помощью механизма сопроцессора. Например, механизм обработки изображений может представлять собой небольшое ядро ​​ARM7TDMI, объединенное с сопроцессором, который выполняет специализированные операции для поддержки определенного набора примитивов транскодирования HDTV.

Отладка [ править ]

Все современные процессоры ARM включают средства аппаратной отладки, позволяющие программным отладчикам выполнять такие операции, как остановка, пошаговое выполнение и установка точек останова кода, начиная с сброса. Эти средства построены с использованием поддержки JTAG , хотя некоторые новые ядра опционально поддерживают собственный двухпроводной протокол «SWD» ARM. В ядрах ARM7TDMI буква «D» представляет поддержку отладки JTAG, а буква «I» - наличие модуля отладки «EmbeddedICE». Для поколений ядер ARM7 и ARM9 EmbeddedICE поверх JTAG был де-факто стандартом отладки, хотя и не гарантировался архитектурой.

Архитектура ARMv7 определяет основные средства отладки на архитектурном уровне. К ним относятся точки останова, точки наблюдения и выполнение инструкций в «режиме отладки»; аналогичные возможности были также доступны в EmbeddedICE. Поддерживаются отладка как в «режиме остановки», так и в режиме «монитора». Фактический транспортный механизм, используемый для доступа к средствам отладки, архитектурно не определен, но реализации обычно включают поддержку JTAG.

Существует отдельная архитектура отладки ARM "CoreSight", которая архитектурно не требуется для процессоров ARMv7.

Порт доступа отладки [ править ]

Порт доступа отладки (DAP) - это реализация интерфейса отладки ARM. [103] Существует две различные поддерживаемые реализации: последовательный порт отладки JTAG (SWJ-DP) и последовательный порт отладки (SW-DP). [104] CMSIS-DAP - это стандартный интерфейс, описывающий, как различное программное обеспечение для отладки на главном ПК может обмениваться данными через USB с прошивкой, запущенной на аппаратном отладчике, который, в свою очередь, взаимодействует через SWD или JTAG с процессором ARM Cortex с поддержкой CoreSight. [105] [106] [107] [108]

Инструкции по расширению DSP [ править ]

Чтобы улучшить архитектуру ARM для цифровой обработки сигналов и мультимедийных приложений, в набор были добавлены инструкции DSP. [109] Они обозначены буквой «E» в названии архитектур ARMv5TE и ARMv5TEJ. E-варианты также подразумевают T, D, M и I.

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

Расширения SIMD для мультимедиа [ править ]

Представленный в архитектуре ARMv6, он был предшественником Advanced SIMD, также известного как Neon . [110]

Джазель [ править ]

Jazelle DBX (Direct Bytecode eXecution) - это метод, который позволяет выполнять байт-код Java непосредственно в архитектуре ARM в качестве третьего состояния выполнения (и набора инструкций) наряду с существующим режимом ARM и Thumb-режимом. Поддержка этого состояния обозначена буквой J в архитектуре ARMv5TEJ и в именах ядер ARM9EJ-S и ARM7EJ-S. Поддержка этого состояния требуется начиная с ARMv6 (за исключением профиля ARMv7-M), хотя новые ядра включают только тривиальную реализацию, которая не обеспечивает аппаратного ускорения.

Thumb [ править ]

Для повышения плотности скомпилированного кода процессоры, начиная с ARM7TDMI (выпущенного в 1994 году [111] ), использовали набор инструкций Thumb , которые имеют собственное состояние. («T» в «TDMI» обозначает функцию Thumb.) В этом состоянии процессор выполняет набор команд Thumb, компактное 16-битное кодирование для подмножества набора команд ARM. [112] Большинство инструкций Thumb напрямую отображаются на обычные инструкции ARM. Экономия места достигается за счет неявного выполнения некоторых операндов инструкций и ограничения количества возможностей по сравнению с инструкциями ARM, выполняемыми в состоянии набора инструкций ARM.

В Thumb 16-битные коды операций имеют меньшую функциональность. Например, условными могут быть только переходы, а многие коды операций ограничены доступом только к половине всех регистров общего назначения ЦП. Более короткие коды операций дают улучшенную плотность кода в целом, даже несмотря на то, что некоторые операции требуют дополнительных инструкций. В ситуациях, когда порт памяти или ширина шины ограничены менее чем 32 битами, более короткие коды операций Thumb позволяют повысить производительность по сравнению с 32-битным кодом ARM, поскольку может потребоваться загрузка меньшего программного кода в процессор при ограниченной полосе пропускания памяти.

В отличие от архитектур процессоров с инструкциями переменной длины (16- или 32-разрядные), таких как Cray-1 и Hitachi SuperH , наборы инструкций ARM и Thumb существуют независимо друг от друга. Встроенное оборудование, такое как Game Boy Advance , обычно имеет небольшой объем оперативной памяти, доступной с полным 32-разрядным каналом данных; доступ к большинству осуществляется через 16-битный или более узкий вторичный канал данных. В этой ситуации обычно имеет смысл скомпилировать Thumb-код и вручную оптимизировать несколько наиболее загружаемых процессором разделов с использованием полных 32-битных инструкций ARM, поместив эти более широкие инструкции в память, доступную для 32-битной шины.

Первым процессором с декодером инструкций Thumb был ARM7TDMI. Все семейства ARM9 и более поздние, включая XScale, включают декодер инструкций Thumb. Он включает инструкции, заимствованные у Hitachi SuperH (1992), лицензированного ARM. [113] Самые маленькие семейства процессоров ARM (Cortex M0 и M1) реализуют только 16-битный набор инструкций Thumb для максимальной производительности в самых недорогих приложениях.

Thumb-2 [ править ]

Технология Thumb-2 была представлена ​​в ядре ARM1156 , анонсированном в 2003 году. Thumb-2 расширяет ограниченный 16-битный набор команд Thumb дополнительными 32-битными командами, чтобы расширить набор команд, создавая, таким образом, набор команд переменной длины. . Заявленная цель Thumb-2 заключалась в достижении плотности кода, аналогичной Thumb, с производительностью, аналогичной набору инструкций ARM в 32-битной памяти.

Thumb-2 расширяет набор инструкций Thumb с помощью манипуляций с битовыми полями, переходов таблиц и условного выполнения. В то же время набор инструкций ARM был расширен для обеспечения эквивалентной функциональности в обоих наборах инструкций. Новый «Unified Assembly Language» (UAL) поддерживает создание инструкций Thumb или ARM из одного и того же исходного кода; версии Thumb, представленные на процессорах ARMv7, по сути так же функциональны, как и код ARM (включая возможность писать обработчики прерываний). Это требует некоторой осторожности и использования новой инструкции «IT» (если-то), которая позволяет выполнять до четырех последовательных инструкций на основе проверенного условия или его обратного. При компиляции в код ARM это игнорируется, но при компиляции в Thumb он генерирует фактическую инструкцию. Например:

; если (r0 == r1) CMP  r0 ,  r1 ITE  EQ  ; ARM: нет кода ... Thumb: IT-инструкция ; тогда r0 = r2; MOVEQ  r0 ,  r2  ; ARM: условно; Большой палец: условие через ITE 'T' (затем) ; иначе r0 = r3; MOVNE  r0 ,  r3  ; ARM: условно; Большой палец: условие через ITE 'E' (else) ; Напомним, что инструкция Thumb MOV не имеет битов для кодирования «EQ» или «NE».

Все чипы ARMv7 поддерживают набор инструкций Thumb. Все микросхемы серий Cortex-A, Cortex-R и ARM11 поддерживают как «состояние набора инструкций ARM», так и «состояние набора команд Thumb», тогда как микросхемы серии Cortex-M поддерживают только набор инструкций Thumb. [114] [115] [116]

Среда выполнения Thumb (ThumbEE) [ править ]

ThumbEE (ошибочно названный Thumb-2EE в некоторой документации ARM), который продавался как Jazelle RCT (Runtime Compilation Target), был объявлен в 2005 году и впервые появился в процессоре Cortex-A8 . ThumbEE - это четвертое состояние набора инструкций, вносящее небольшие изменения в расширенный набор инструкций Thumb-2. Эти изменения делают набор инструкций особенно подходящим для кода, сгенерированного во время выполнения (например, путем JIT-компиляции ) в управляемых средах выполнения . ThumbEE является целью для таких языков, как Java , C # , Perl и Python , и позволяет компиляторам JITдля вывода скомпилированного кода меньшего размера без снижения производительности. [ необходима цитата ]

Новые функции, предоставляемые ThumbEE, включают автоматические проверки нулевого указателя для каждой инструкции загрузки и сохранения, инструкцию для выполнения проверки границ массива и специальные инструкции, вызывающие обработчик. Кроме того, поскольку он использует технологию Thumb-2, ThumbEE обеспечивает доступ к регистрам r8-r15 (где хранится состояние виртуальной машины Java Jazelle / DBX). [117] Обработчики - это небольшие участки часто вызываемого кода, обычно используемые для реализации языков высокого уровня, таких как выделение памяти для нового объекта. Эти изменения происходят из-за перепрофилирования нескольких кодов операций и знания того, что ядро ​​находится в новом состоянии ThumbEE.

23 ноября 2011 года Arm Holdings отказался от любого использования набора инструкций ThumbEE [118], а ARMv8 удаляет поддержку ThumbEE.

Плавающая точка (VFP) [ править ]

Технология VFP (Vector Floating Point) - это расширение сопроцессора блока с плавающей запятой (FPU) для архитектуры ARM [119] (реализовано иначе в ARMv8 - сопроцессоры там не определены). Он обеспечивает недорогие вычисления с плавающей запятой одинарной и двойной точности, полностью соответствующие стандарту ANSI / IEEE Std 754-1985 для двоичной арифметики с плавающей запятой.. VFP обеспечивает вычисления с плавающей запятой, подходящие для широкого спектра приложений, таких как КПК, смартфоны, сжатие и декомпрессия голоса, трехмерная графика и цифровой звук, принтеры, телевизионные приставки и автомобильные приложения. Архитектура VFP была предназначена для поддержки выполнения коротких инструкций в «векторном режиме», но они работали с каждым векторным элементом последовательно и, таким образом, не предлагали производительность настоящего векторного параллелизма с одной командой и несколькими данными (SIMD). Поэтому этот векторный режим был удален вскоре после его введения [120] и заменен гораздо более мощным Advanced SIMD, также известным как Neon .

Некоторые устройства, такие как ARM Cortex-A8, имеют урезанный модуль VFPLite вместо полного модуля VFP и требуют примерно в десять раз больше тактовых циклов на операцию с плавающей запятой. [121] В архитектуре до ARMv8 реализованы операции с плавающей запятой / SIMD с сопроцессорным интерфейсом. Другие блоки с плавающей запятой и / или SIMD, обнаруженные в процессорах на базе ARM, использующих интерфейс сопроцессора, включают FPA , FPE, iwMMXt , некоторые из которых были реализованы программно путем захвата, но могли быть реализованы аппаратно. Они предоставляют некоторые из тех же функций, что и VFP, но не совместимы с ним по кодам операций . FPA10 также обеспечивает повышенную точность, но реализует правильное округление (требуемое IEEE 754) только с одинарной точностью. [122]

VFPv1
Устаревший
VFPv2
Необязательное расширение набора инструкций ARM в архитектурах ARMv5TE, ARMv5TEJ и ARMv6. VFPv2 имеет 16 64-битных регистров FPU.
VFPv3 или VFPv3-D32
Реализовано на большинстве процессоров Cortex-A8 и A9 ARMv7. Он обратно совместим с VFPv2, за исключением того, что он не может перехватывать исключения с плавающей запятой. VFPv3 имеет 32 64-битных регистра FPU в стандартной комплектации, добавляет инструкции VCVT для преобразования между скаляром, float и double, добавляет немедленный режим к VMOV, так что константы могут загружаться в регистры FPU.
VFPv3-D16
То же, что и выше, но только с 16 64-битными регистрами FPU. Реализовано на процессорах Cortex-R4 и R5 и Tegra 2 (Cortex-A9).
VFPv3-F16
Необычный; он поддерживает IEEE754-2008 с плавающей запятой половинной точности (16 бит) в качестве формата хранения.
VFPv4 или VFPv4-D32
Реализованный на процессорах Cortex-A12 и A15 ARMv7, Cortex-A7 опционально имеет VFPv4-D32 в случае FPU с Neon. [123] VFPv4 имеет 32 64-битных регистра FPU в стандартной комплектации, добавляет как поддержку половинной точности в качестве формата хранения, так и объединенные инструкции умножения с накоплением к функциям VFPv3.
VFPv4-D16
То же, что и выше, но имеет только 16 64-битных регистров FPU. Реализовано на процессорах Cortex-A5 и A7 в случае использования FPU без Neon. [123]
VFPv5-D16-M
Реализовано в Cortex-M7 при наличии опций ядра с плавающей запятой одинарной и двойной точности.

В Debian GNU / Linux и производных, таких как Ubuntu и Linux Mint , armhf ( ARM hard float ) относится к архитектуре ARMv7, включая дополнительное аппаратное расширение с плавающей запятой VFP3-D16 (и Thumb-2), указанное выше. Программные пакеты и инструменты кросс-компилятора используют суффиксы armhf и arm / armel для различения. [124]

Advanced SIMD (Neon) [ править ]

Advanced SIMD расширение ( так называемый Неон или «П» Media Processing Engine) представляет собой комбинированный 64- и 128-битный SIMD набор команд , который обеспечивает стандартизированное ускорение для средств массовой информации и приложений обработки сигналов. Neon включен во все устройства Cortex-A8, но не является обязательным для устройств Cortex-A9. [125] Neon может выполнять декодирование аудио в формате MP3 на процессорах, работающих на частоте 10 МГц, и может использовать адаптивный многоскоростной речевой кодек GSM (AMR) на частоте 13 МГц. Он имеет исчерпывающий набор инструкций, отдельные файлы регистров и независимое исполняющее оборудование. [126]Neon поддерживает 8-, 16-, 32- и 64-битные целочисленные и одинарные (32-битные) данные с плавающей запятой и операции SIMD для обработки аудио и видео, а также обработки графики и игр. В Neon SIMD поддерживает до 16 операций одновременно. Аппаратное обеспечение Neon использует те же регистры с плавающей запятой, что и в VFP. Такие устройства, как ARM Cortex-A8 и Cortex-A9, поддерживают 128-битные векторы, но будут выполняться одновременно с 64-битными [121], тогда как более новые устройства Cortex-A15 могут выполнять 128 -битные векторы за раз. [127] [128]

Особенность Neon в устройствах ARMv7 заключается в том, что он сбрасывает все субнормальные числа до нуля, и в результате компилятор GCC не будет использовать его, пока не -funsafe-math-optimizationsбудет включен параметр, позволяющий проигрывать денормальные числа. "Enhanced" Neon определен, поскольку ARMv8 не имеет этой особенности, но с GCC 8.2 тот же флаг все еще требуется для включения инструкций Neon. [129] С другой стороны, GCC действительно считает Neon безопасным на AArch64 для ARMv8.

ProjectNe10 - первый проект ARM с открытым исходным кодом (с момента его создания; пока они приобрели более старый проект, теперь известный как Mbed TLS ). Библиотека Ne10 - это набор общих полезных функций, написанных как на Neon, так и на C (для совместимости). Библиотека была создана, чтобы позволить разработчикам использовать оптимизацию Neon без изучения Neon, но она также служит набором высоко оптимизированных примеров внутреннего и ассемблерного кода Neon для общих процедур DSP, арифметики и обработки изображений. Исходный код доступен на GitHub. [130]

ARM Гелиевая технология [ править ]

Гелий - это расширение вектора M-профиля (MVE). Он добавляет более 150 скалярных и векторных инструкций. [131]

Расширения безопасности [ править ]

TrustZone (для профиля Cortex-A) [ править ]

Расширения безопасности, продаваемые как TrustZone Technology, входят в состав ARMv6KZ и более поздних архитектур профилей приложений. Он обеспечивает недорогую альтернативу добавлению еще одного выделенного ядра безопасности к SoC, предоставляя два виртуальных процессора, поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения переключаться между двумя состояниями, называемыми мирами.(чтобы избежать путаницы с другими именами для доменов возможностей), чтобы предотвратить утечку информации из более надежного мира в менее надежный мир. Этот переключатель мира обычно ортогонален всем остальным возможностям процессора, поэтому каждый мир может работать независимо от другого, используя одно и то же ядро. Затем память и периферийные устройства узнают об операционном мире ядра и могут использовать это для обеспечения контроля доступа к секретам и коду на устройстве. [132]

Как правило, богатая операционная система работает в менее надежном мире, а меньший специализированный код безопасности - в более надежном мире, чтобы уменьшить поверхность атаки . Типичные приложения включают в себя функции DRM для управления использованием носителей на устройствах на базе ARM [133] и предотвращения любого несанкционированного использования устройства.

На практике, поскольку конкретные детали реализации проприетарных реализаций TrustZone не были публично раскрыты для обзора, неясно, какой уровень гарантии предоставляется для данной модели угроз , но они не защищены от атак. [134] [135]

Открытая виртуализация [136] - это реализация с открытым исходным кодом архитектуры доверенного мира для TrustZone.

AMD лицензировала и включила технологию TrustZone в свою технологию защищенных процессоров. [137] APU AMD, включенные в некоторые, но не во все продукты, включают процессор Cortex-A5 для обеспечения безопасной обработки. [138] [139] [140] Фактически, ядро ​​Cortex-A5 TrustZone было включено в более ранние продукты AMD, но не было включено из-за нехватки времени. [139]

Samsung Knox использует TrustZone для таких целей, как обнаружение изменений в ядре. [141]

TrustZone для ARMv8-M (для профиля Cortex-M) [ править ]

Расширение безопасности, продаваемое как TrustZone для технологии ARMv8-M, было введено в архитектуру ARMv8-M. Хотя он содержит концепции, аналогичные TrustZone для ARMv8-A, он имеет другую архитектурную схему, поскольку переключение мира выполняется с использованием инструкций ветвления вместо использования исключений. Он также поддерживает безопасную обработку прерываний с чередованием из любого мира, независимо от текущего состояния безопасности. Вместе эти функции обеспечивают вызовы с низкой задержкой в ​​безопасный мир и гибкую обработку прерываний. ARM предоставляет эталонный стек безопасного мирового кода в виде Trusted Firmware for M и PSA Certified .

Защита от невыполнения страницы [ править ]

Начиная с ARMv6, архитектура ARM поддерживает защиту от невыполнения страницы , которая упоминается как XN , для eXecute Never . [142]

Расширение большого физического адреса (LPAE) [ править ]

Расширение большого физического адреса (LPAE), которое увеличивает размер физического адреса с 32 до 40 бит, было добавлено в архитектуру ARMv7-A в 2011 году. [143] Размер физического адреса больше, 44 бита, в Cortex-A75 и Cortex-A65AE. [144]

ARMv8-R и ARMv8-M [ править ]

Архитектуры ARMv8-R и ARMv8-M , анонсированные после архитектуры ARMv8-A, имеют общие функции с ARMv8-A, но не содержат никаких 64-битных инструкций AArch64.

ARMv8.1-M [ править ]

Архитектура ARMv8.1-M, ​​анонсированная в феврале 2019 года, является усовершенствованием архитектуры ARMv8-M. Он предлагает новые функции, в том числе:

  • Новое расширение набора векторных команд. Расширение вектора M-профиля (MVE), или Helium, предназначено для приложений обработки сигналов и машинного обучения.
  • Дополнительные улучшения набора инструкций для циклов и ветвлений (расширение ветвей с низким объемом служебных данных).
  • Инструкции для поддержки чисел с плавающей запятой половинной точности .
  • Улучшение набора инструкций для управления TrustZone для модуля с плавающей запятой (FPU).
  • Новый атрибут памяти в блоке защиты памяти (MPU).
  • Улучшения в отладке, включая Performance Monitoring Unit (PMU), Unprivileged Debug Extension и дополнительную поддержку отладки, сосредоточены на разработке приложений для обработки сигналов.
  • Расширение надежности, доступности и удобства обслуживания (RAS).

64/32-битная архитектура [ править ]

Платформа ARMv8-A с процессором Cortex A57 / A53 MPCore big.LITTLE

ARMv8 [ править ]

ARMv8-A [ править ]

Анонсированный в октябре 2011 года [3] ARMv8-A (часто называемый ARMv8, хотя также доступен ARMv8-R) представляет собой фундаментальное изменение архитектуры ARM. Он добавляет дополнительную 64-битную архитектуру (например, Cortex-A32 - это 32-битный процессор ARMv8-A [145], в то время как большинство процессоров ARMv8-A поддерживают 64-битную архитектуру), названную «AArch64», и связанную новую инструкцию «A64». набор. AArch64 обеспечивает совместимость в пространстве пользователя с ARMv7-A, 32-битной архитектурой, в ней называемой «AArch32», и старым 32-битным набором команд, теперь называемым «A32». Набор инструкций Thumb упоминается как «T32» и не имеет 64-битного аналога. ARMv8-A позволяет запускать 32-битные приложения в 64-битной ОС,и 32-битная ОС под управлением 64-битного гипервизора .[1] ARM анонсировала свои ядра Cortex-A53 и Cortex-A57 30 октября 2012 года. [70] Apple первой выпустила ARMv8-A-совместимое ядро ​​( Apple A7 ) в потребительском продукте ( iPhone 5S ). AppliedMicro , использующий FPGA , был первым, кто продемонстрировал ARMv8-A. [146] Первым ARMv8-A SoC от Samsung является Exynos 5433, используемый в Galaxy Note 4 , который включает два кластера из четырех ядер Cortex-A57 и Cortex-A53 в конфигурации big.LITTLE; но он будет работать только в режиме AArch32. [147]

Как для AArch32, так и для AArch64, ARMv8-A делает VFPv3 / v4 и расширенный стандарт SIMD (Neon). Он также добавляет инструкции криптографии, поддерживающие AES , SHA-1 / SHA-256 и арифметику с конечным полем . [148] AArch64 был представлен в ARMv8-A и его последующей версии. AArch64 не входит в 32-разрядные архитектуры ARMv8-R и ARMv8-M.

ARMv8-R [ править ]

В профиль ARMv8-R была добавлена ​​дополнительная поддержка AArch64, причем первым ядром ARM, реализующим ее, было Cortex-R82. [149] Он добавляет набор инструкций A64.

ARMv9 [ править ]

ARMv9-A [ править ]

Анонсированная в марте 2021 года обновленная архитектура делает упор на безопасное выполнение и разделение. [150] [151]

Arm SystemReady [ править ]

Arm SystemReady , ранее известная как Arm ServerReady, - это программа сертификации, которая помогает внедрить стандартные стандартные операционные системы и гипервизоры в системы на базе Arm, от серверов центров обработки данных до промышленных периферийных устройств и устройств Интернета вещей. Ключевые строительные блоки программы - это спецификации минимальных требований к аппаратному и микропрограммному обеспечению, на которые могут полагаться операционные системы и гипервизоры. Эти характеристики:

  • Базовая системная архитектура (BSA) и приложения для конкретного сегмента рынка (например, приложение Server BSA )
  • Базовые требования к загрузке (BBR) и базовые требования безопасности загрузки (BBR)

Эти спецификации разрабатываются совместно Arm Holdings и ее партнерами по Консультативному комитету по системной архитектуре (SystemArchAC).

Architecture Compliance Suite (ACS) - это инструменты тестирования, которые помогают проверить соответствие этим спецификациям. В Arm SystemReady Технические требования , установленные документы требованиям сертификации.

Эта программа была представлена Arm Holdings в 2020 году на первом мероприятии DevSummit. Его предшественник Arm ServerReady был представлен в 2018 году на мероприятии Arm TechCon. В настоящее время эта программа включает четыре группы:

  • SystemReady SR: этот диапазон предназначен для серверов, которые поддерживают операционные системы и гипервизоры, которые ожидают интерфейсы UEFI , ACPI и SMBIOS . Эти интерфейсы требуются для Windows Server, Red Hat Enterprise Linux и VMware ESXi-Arm, тогда как другие дистрибутивы Linux и BSD также могут их поддерживать.
  • SystemReady LS: эта полоса предназначена для серверов, которые гипермасштабирующие устройства используют для поддержки операционных систем Linux, которые ожидают прошивку LinuxBoot вместе с интерфейсами ACPI и SMBIOS.
  • SystemReady ES: этот диапазон предназначен для промышленных периферийных устройств и устройств IoT, которые поддерживают операционные системы и гипервизоры, которые ожидают интерфейсы UEFI, ACPI и SMBIOS. Эти интерфейсы требуются для Windows IoT Enterprise, Red Hat Enterprise Linux и VMware ESXi-Arm, в то время как другие дистрибутивы Linux и BSD также могут их поддерживать.
  • SystemReady IR: эта полоса предназначена для промышленных периферийных устройств и устройств IoT, которые поддерживают операционные системы, которые ожидают интерфейсы UEFI и devicetree . Встроенный Linux (например, Yacto) и некоторые дистрибутивы Linux / BSD (например, Fedora, Ubuntu, Debian и OpenSUSE) также могут поддерживать.

Сертифицировано PSA [ править ]

Сертифицированный PSA, ранее известный как Архитектура безопасности платформы, представляет собой архитектурно-независимую структуру безопасности и схему оценки. Он предназначен для защиты устройств Интернета вещей (IoT), построенных на процессорах системы на кристалле (SoC). [152] Он был введен для повышения безопасности там, где полностью доверенная среда выполнения слишком велика или сложна. [153]

Архитектура была представлена Arm Holdings в 2017 году на ежегодном мероприятии TechCon. [154] [155] Хотя схема не зависит от архитектуры, она сначала была реализована на ядрах процессора Arm Cortex-M, предназначенных для использования в микроконтроллерах. Сертифицированный PSA включает в себя свободно доступные модели угроз и анализы безопасности, демонстрирующие процесс выбора функций безопасности в общих продуктах Интернета вещей. [156] Он также предоставляет бесплатно загружаемые пакеты интерфейса прикладного программирования (API), архитектурные спецификации, реализации микропрограмм с открытым исходным кодом и соответствующие наборы тестов. [157]

После разработки структуры безопасности архитектуры в 2017 году, через два года на Embedded World в 2019 году была запущена схема сертификации PSA Certified. [158] PSA Certified предлагает многоуровневую схему оценки безопасности для поставщиков микросхем, поставщиков ОС и производителей устройств IoT. [159] На презентации Embedded World производители микросхем ознакомились с уровнем сертификации 1. Одновременно был представлен проект защиты Уровня 2. [160] Сертификация уровня 2 стала стандартом для использования в феврале 2020 года. [161]

Сертификат был создан совместными заинтересованными сторонами PSA, чтобы реализовать подход, основанный на концепции безопасности, для разнообразного набора продуктов IoT. Спецификации, сертифицированные PSA, не зависят от реализации и архитектуры, поэтому их можно применять к любому чипу, программному обеспечению или устройству. [162] [160] Сертификация также устраняет фрагментацию отрасли для производителей и разработчиков продуктов IoT . [163]

Поддержка операционной системы [ править ]

32-битные операционные системы [ править ]

Android , популярная операционная система, которая в основном используется на архитектуре ARM.

Исторические операционные системы [ править ]

Первый 32-битный персональный компьютер на базе ARM, Acorn Archimedes , изначально предназначался для работы с амбициозной операционной системой под названием ARX . Машины поставлялись с ОС RISC, которая также использовалась в более поздних системах на базе ARM от Acorn и других поставщиков. Некоторые ранние машины Acorn также могли запускать порт Unix под названием RISC iX . (Ни то, ни другое не следует путать с RISC / os , современным вариантом Unix для архитектуры MIPS.)

Встроенные операционные системы [ править ]

32-битная архитектура ARM поддерживаются большим количеством встроенных и операционных систем реального времени , в том числе:

  • A2
  • Android
  • ChibiOS / RT
  • Деос
  • DRYOS
  • eCos
  • embOS
  • FreeRTOS
  • Честность
  • Linux
  • Операционные системы микроконтроллера
  • МИНИКС 3
  • MQX
  • Nucleus PLUS
  • NuttX
  • Встроенная операционная система (OSE)
  • ОС-9 [164]
  • Фарос [165]
  • План 9
  • PikeOS [166]
  • QNX
  • БУНТ
  • RTEMS
  • RTXC Quadros
  • SCIOPTA [167]
  • ThreadX
  • TizenRT
  • Т-ядро
  • VxWorks
  • Windows Embedded Compact
  • Windows 10 IoT Core
  • Зефир

Операционные системы мобильных устройств [ править ]

32-разрядная архитектура ARM является основной аппаратной средой для большинства операционных систем мобильных устройств, таких как:

  • Android
  • Bada
  • BlackBerry OS / BlackBerry 10
  • Chrome OS
  • ОС Firefox
  • MeeGo
  • Парусник
  • Symbian
  • Tizen
  • Ubuntu Touch
  • WebOS
  • Windows RT
  • Windows Mobile
  • телефон с операционной системой Виндоус
  • Windows 10 Mobile

Раньше, но сейчас снято с производства:

  • iOS 10 и ранее

Настольные / серверные операционные системы [ править ]

32-разрядная архитектура ARM поддерживается ОС RISC и несколькими Unix-подобными операционными системами, включая:

  • FreeBSD
  • NetBSD
  • OpenBSD
  • OpenSolaris [168]
  • несколько дистрибутивов Linux , таких как:
    • Debian
    • Армбиан
    • Gentoo
    • Ubuntu
    • ОС Raspberry Pi (ранее Raspbian)
    • Slackware

64-битные операционные системы [ править ]

Встроенные операционные системы [ править ]

  • Честность [169]
  • OSE [170]
  • SCIOPTA [167]
  • seL4 [171]
  • Фарос [165]
  • FreeRTOS
  • QNX [172]
  • Зефир

Операционные системы мобильных устройств [ править ]

  • iOS поддерживает ARMv8-A в iOS 7 и более поздних версиях на 64-битных SoC Apple . iOS 11 и новее поддерживает только 64-битные процессоры и приложения ARM.
  • Android поддерживает ARMv8-A в Android Lollipop (5.0) и более поздних версиях.

Настольные / серверные операционные системы [ править ]

  • Поддержка ARMv8-A была включена в ядро Linux версии 3.7 в конце 2012 года. [173] ARMv8-A поддерживается рядом дистрибутивов Linux , таких как:
    • Debian [174] [175]
    • Армбиан
    • Ubuntu [176]
    • Fedora [177]
    • openSUSE [178]
    • SUSE Linux Enterprise [179]
    • RHEL [180]
  • Поддержка ARMv8-A была включена во FreeBSD в конце 2014 года. [181]
  • OpenBSD имеет экспериментальную поддержку ARMv8 с 2017 года. [182]
  • NetBSD поддерживает ARMv8 с начала 2018 года. [183]
  • Windows 10 - запускает 32-разрядные « x86 и 32-разрядные приложения ARM» [184], а также собственные настольные приложения ARM64. [185] [186] Поддержка 64-битных приложений ARM в Microsoft Store доступна с ноября 2018 года. [187]
  • macOS имеет поддержку ARM, начиная с macOS Big Sur по состоянию на конец 2020 года. [188] Rosetta 2 добавляет поддержку приложений x86-64, но не виртуализацию компьютерных платформ x86-64. [189]

Перенос на 32- или 64-битные операционные системы ARM [ править ]

Приложения Windows, перекомпилированные для ARM и связанные с Winelib - из проекта Wine - могут работать на 32-битной или 64-битной ARM в Linux, FreeBSD или других совместимых операционных системах. [190] [191] двоичные файлы x86, например, когда они не были специально скомпилированы для ARM, были продемонстрированы на ARM с использованием QEMU с Wine (в Linux и других), [ необходима ссылка ], но не работают на полной скорости или с такими же возможностями, как с Winelib .

Заметки [ править ]

  1. ^ Используя 32-битные слова, 4 Мбит / сек соответствует 1 MIPS.
  2. ^ Мэтт Эванс отмечает, что, похоже, более быстрые версии были просто размещены выше и, похоже, не имеют никаких основных изменений. [36]

См. Также [ править ]

  • RISC
  • RISC-V
  • Процессоры Apple
  • ARM big.LITTLE - гетерогенная вычислительная архитектура ARM
    • DynamIQ
  • ARM Accredited Engineer - программа сертификации
  • ARMulator - симулятор набора команд
  • Янтарь (ядро процессора) - ядро процессора с открытым исходным кодом, совместимое с ARM
  • Микропроцессор AMULET - асинхронная реализация архитектуры ARM
  • Сравнение ядер ARMv7-A
  • Сравнение ядер ARMv8-A
  • Unicore - 32-регистровая архитектура, в значительной степени основанная на 32-битной ARM
  • Meltdown (уязвимость в системе безопасности) [192]
  • Spectre (уязвимость безопасности)

Ссылки [ править ]

Цитаты [ править ]

  1. ^ a b c d e Гризентуэйт, Ричард (2011). «Предварительный просмотр технологии ARMv8-A» (PDF) . Проверено 31 октября 2011 года .
  2. ^ «Стандарт вызова процедур для архитектуры ARM» (PDF) . Arm Holdings . 30 ноября 2013 . Проверено 27 мая 2013 года .
  3. ^ a b «ARM раскрывает технические подробности следующей версии архитектуры ARM» (пресс-релиз). Arm Holdings . 27 октября 2011 года Архивировано из оригинала на 1 января 2019 года . Проверено 20 сентября 2013 года .
  4. ^ «Объявление платформы ARM Neoverse N1» . community.arm.com . Проверено 8 апреля 2020 .
  5. ^ a b «Некоторые факты о Acorn RISC Machine», публикация Роджера Уилсона на comp.arch, 2 ноября 1988 г. Проверено 25 мая 2007 г.
  6. ^ a b Хахман, Марк (14 октября 2002 г.). «Ядра ARM захватывают территорию 3G» . ExtremeTech . Проверено 24 мая 2018 .
  7. ^ Turley, Джим (18 декабря 2002). «Двухпроцентное решение» . Встроенный . Проверено 24 мая 2018 .
  8. ^ Cutress, д - р Ян (22 июня 2020). «Новый суперкомпьютер №1: Fujitsu Fugaku и A64FX поднимают руку на вершину с 415 петафлопс» . www.anandtech.com . Проверено 25 января 2021 года .
  9. ^ «Экосистема Arm поставляет рекордные 6,7 миллиарда чипов на базе Arm за один квартал» . Рука | Архитектура цифрового мира (пресс-релиз) . Проверено 28 февраля 2021 года .
  10. ^ «Создание умного мира и использование искусственного интеллекта: ARM» . Кремниевый обзор . 2019 . Проверено 8 апреля 2020 .
  11. ^ «Обеспечение массового подключения к Интернету вещей, поскольку партнеры ARM поставляют 100 миллиардов чипов» . community.arm.com . Проверено 8 апреля 2020 . совокупное развертывание 100 миллиардов микросхем, половина из которых поставлена ​​за последние четыре года. [..] почему не триллион или больше? Это наша цель - за следующие два десятилетия развернуть триллион подключенных устройств.
  12. ^ «Рынок MCU на пути перехода к 32-битным устройствам и устройствам на базе ARM: 32-битные вершины продаж; 16-битные лидирующие позиции в единичных поставках» . IC Insights. 25 апреля 2013 . Проверено 1 июля 2014 года .
  13. ^ Терли, Джим (2002). «Двухпроцентное решение» . embedded.com.
  14. ^ «Arm Holdings стремится к расширению ПК и серверов» . 1 февраля 2011 г.
  15. ^ Керри McGuire Balanza (11 мая 2010). «ARM с нуля до миллиардов за 25 лет» . Arm Holdings . Проверено 8 ноября 2012 года .
  16. Fairbairn, Дуглас (31 января 2012 г.). "Устная история Софи Уилсон" (PDF) . Архивировано 3 марта 2016 года из оригинального (PDF) . Проверено 2 февраля +2016 .
  17. ^ Смит, Тони (30 ноября 2011 г.). «BBC Micro исполняется 30 лет» . Регистровое оборудование. Архивировано 12 декабря 2011 года . Проверено 12 декабря 2011 года .
  18. ^ Кен Полссон. «Хронология микропроцессоров» . Processortimeline.info . Проверено 27 сентября 2013 года .
  19. ^ Лиди, Гленн (апрель 1983). "Семейство микропроцессоров National Semiconductor NS16000" . БАЙТ . С. 53–66 . Проверено 22 августа 2020 .
  20. ^ Эванс 2019 , 6:00.
  21. Маннерс, Дэвид (29 апреля 1998 г.). «Путь АРМ» . Еженедельник электроники . Архивировано из оригинального 29 июля 2012 года . Проверено 26 октября 2012 года .
  22. ^ Эванс 2019 , 5:30.
  23. ^ а б Эванс 2019 , 7:45.
  24. ^ Эванс 2019 , 8:30.
  25. Софи Уилсон на Alt Party 2009 (Часть 3/8) .
  26. ^ Chisnall, Дэвид (23 августа 2010). Понимание архитектуры ARM . Проверено 26 мая 2013 года .
  27. ^ Эванс 2019 , 9:00.
  28. ^ Фербер, Стивен Б. (2000). Архитектура системы на кристалле ARM . Бостон: Эддисон-Уэсли. ISBN 0-201-67519-6.
  29. ^ Эванс 2019 , 9:50.
  30. ^ Эванс 2019 , 23:30.
  31. ^ Эванс 2019 , 26:00.
  32. ^ "История разработки набора инструкций ARM с Софи Уилсон (Часть 3)" . 10 мая 2015 . Проверено 25 мая 2020 года - через YouTube.
  33. ^ "Устная история Софи Уилсон - сотрудник Музея компьютерной истории 2012" (PDF) . Музей истории компьютеров . 31 января 2012 . Проверено 25 мая 2020 .
  34. Перейти ↑ Harker, T. (лето 2009 г.). «ARM серьезно относится к IP (вторая в серии из двух частей [мнение ассоциированных редакторов]» . Журнал IEEE Solid-State Circuits Magazine . 1 (3): 8–69. Doi : 10.1109 / MSSC.2009.933674 . ISSN 1943-0590 . S2CID 36567166 .  
  35. ^ Эванс 2019 , 20:30.
  36. ^ Эванс 2019 , 22:00.
  37. ^ Эванс 2019 , 21:30.
  38. ^ Эванс 2019 , 22:00 30.
  39. ^ а б Эванс 2019 , 14:00.
  40. ^ Леви, Маркус. «История архитектуры ARM: от зарождения до IPO» (PDF) . Проверено 14 марта 2013 года .
  41. ^ Сантану Чаттопадхьяй (2010). Встроенный системный дизайн . PHI Learning Pvt. ООО п. 9. ISBN 978-81-203-4024-4.
  42. ^ Ричард Мюррей. «32-битная операция» .
  43. ^ Вехи ARM, сайт компании ARM. Проверено 8 апреля 2015 г.
  44. ^ Эндрюс, Джейсон (2005). «3 темы проверки SoC для архитектуры ARM». Совместная проверка аппаратного и программного обеспечения для проектирования ARM SoC . Оксфорд, Великобритания: Эльзевир . С.  69 . ISBN 0-7506-7730-9. ARM началась как филиал Acorn Computer в Кембридже, Англия, с образования совместного предприятия между Acorn, Apple и VLSI Technology. Группа из двенадцати сотрудников разработала дизайн первого микропроцессора ARM в период с 1983 по 1985 год.
  45. Вебер, Джонатан (28 ноября 1990 г.). «Apple присоединится к Acorn и VLSI в предприятии по производству микросхем» . Лос-Анджелес Таймс . Лос-Анджелес . Проверено 6 февраля 2012 года . Apple инвестировала около 3 миллионов долларов (примерно 1,5 миллиона фунтов стерлингов) в приобретение 30% -ной доли в компании, получившей название Advanced Risc Machines Ltd. (ARM) [...]
  46. ^ "Корпоративный справочник ARM". Архивировано 4 октября 2006 г. в Wayback Machine , ARM Technology .
  47. ^ Монтанаро, Джеймс и др. (1997). «Микропроцессор CMOS RISC с частотой 160 МГц, 32 бит, 0,5 Вт» . Цифровой технический журнал , т. 9, вып. 1. С. 49–62.
  48. ^ Demone, Пол (9 ноября 2000). «Гонка ARM за мировое господство» . Технологии реального мира . Проверено 6 октября 2015 года .
  49. ^ «Марш машин» . technologyreview.com . Обзор технологий Массачусетского технологического института . 20 апреля 2010 . Проверено 6 октября 2015 года .
  50. ^ Krazit, Том (3 апреля 2006). «Вооружился для гостиной» . CNET.
  51. Трейси Робинсон (12 февраля 2014 г.). «Празднование 50 миллиардов отгруженных чипов на базе ARM» .
  52. Сара Мерри (3 марта 2014 г.). «Охват ARM: рубеж в 50 миллиардов чипов» .
  53. ^ Браун, Эрик (2009). «Нетбук ARM поставляется со съемным планшетом» . Архивировано из оригинального 3 -го января 2013 года . Проверено 19 августа 2009 года .
  54. Питер Кларк (7 января 2016 г.). «Amazon теперь продает собственные чипы ARM» .
  55. ^ «MACOM успешно завершает приобретение AppliedMicro» (пресс-релиз). 26 января 2017.
  56. ^ Frumusanu, Андрей. «Детали ARM, основанные на лицензии на технологию ARM Cortex» . AnandTech . Проверено 26 мая 2019 .
  57. ^ Катресс, доктор Ян. «Гибкий доступ ARM: спроектируйте SoC, прежде чем тратить деньги» . AnandTech . Проверено 9 октября 2019 .
  58. ^ "Часто задаваемые вопросы о гибком доступе к ARM" . ARM | Архитектура цифрового мира . Проверено 9 октября 2019 .
  59. ^ Нолтинг, Стефан. "Процессорная система STORM CORE" (PDF) . OpenCores . Проверено 1 апреля 2014 года .
  60. ^ "Ереван / ЗАП" . GitHub . Проверено 13 октября +2016 .
  61. ^ "Процессор Cortex-M23" . ARM . Проверено 27 октября 2016 года .
  62. ^ "Процессор Cortex-M33" . ARM . Проверено 27 октября 2016 года .
  63. ^ «Архитектура ARMv8-M упрощает безопасность для интеллектуальных встраиваемых систем» . ARM . Проверено 10 ноября 2015 года .
  64. ^ "Архитектура ARMv8-R" . Проверено 10 июля 2015 года .
  65. ^ "Архитектура ARM Cortex-R" (PDF) . Arm Holdings. Октябрь 2013 . Проверено 1 февраля 2014 года .
  66. Рианна Смит, Райан (20 сентября 2016 г.). «ARM объявляет о выпуске процессора Cortex-R52: детерминированный и безопасный для ADAS и др.» . AnandTech . Проверено 20 сентября 2016 года .
  67. ^ "Процессор Cortex-A32" . ARM . Проверено 10 октября 2019 .
  68. ^ "Процессор Cortex-A35" . ARM . Проверено 10 ноября 2015 года .
  69. ^ a b «ARM запускает серию Cortex-A50, самые энергоэффективные 64-битные процессоры в мире» (пресс-релиз). Arm Holdings . Проверено 31 октября 2012 года .
  70. ^ "Процессор Cortex-A72" . ARM . Проверено 10 июля 2015 года .
  71. ^ "Процессор Cortex-A73" . ARM . Проверено 2 июня +2016 .
  72. ^ "Архитектура ARMv8-A" . Проверено 10 июля 2015 года .
  73. ^ Предварительный просмотр архитектурной технологии ARMv8 (слайды); Arm Holdings.
  74. ^ «Cavium Thunder X увеличивает количество ядер ARM до 48 на одном чипе» . SemiAccurate . 3 июня 2014 г.
  75. ^ «Cavium на Supercomputing 2014» . Yahoo Finance . 17 ноября 2014. Архивировано из оригинала 16 октября 2015 года . Проверено 15 января 2017 года .
  76. ^ «Cray для оценки чипов ARM в суперкомпьютерах» . eWeek . 17 ноября 2014 г.
  77. ^ «Samsung анонсирует Exynos 8890 с модемом Cat.12 / 13 и специальным процессором» . AnandTech .
  78. ^ "Процессор Cortex-A34" . ARM . Проверено 10 октября 2019 .
  79. ^ «D21500 [AARCH64] Добавить поддержку Broadcom Vulcan» . reviews.llvm.org .
  80. ^ "Процессор Cortex-A55" . ARM . Проверено 29 мая 2017 года .
  81. ^ "Процессор Cortex-A75" . ARM . Проверено 29 мая 2017 года .
  82. ^ "Процессор Cortex-A76" . ARM . Проверено 11 октября 2018 года .
  83. ^ Беренис Манн (апрель 2017). «Архитектура ARM - эволюция и поставка ARMv8.2-A» . community.ARM.com .
  84. ^ Frumusanu, Андрей. «Samsung анонсирует Exynos 9825 SoC: первый 7-нм кремниевый чип EUV» . AnandTech . Проверено 11 октября 2019 года .
  85. ^ "Fujitsu начала производить миллиарды супер-вычислений в Японии с помощью самого мощного процессора ARM A64FX" . Новости информационных технологий Китая . Проверено 17 августа 2019 . Чип ARMv8 SVE (Scalable Vector Extension), использующий 512-битную плавающую точку.
  86. ^ "Cortex-A65AE - ARM" . ARM | Архитектура цифрового мира . Проверено 8 апреля 2020 . может выполнять два потока параллельно в каждом цикле. Каждый поток может находиться на разных уровнях исключения и запускать разные операционные системы.
  87. ^ Frumusanu, Андрей. «Marvell представляет ThunderX3: 96-ядерный и 384-поточный серверный процессор ARM третьего поколения» . AnandTech . Проверено 26 мая 2020 .
  88. ^ "Линейная карта" (PDF) . 2003 . Проверено 1 октября 2012 года .
  89. Пэрриш, Кевин (14 июля 2011 г.). «Один миллион ядер ARM, связанных для моделирования мозга» . EE Times . Проверено 2 августа 2011 года .
  90. ^ http://infocenter.arm.com/help/index.jsp
  91. ^ "Режим процессора" . Arm Holdings . Проверено 26 марта 2013 года .
  92. ^ "KVM / ARM" (PDF) . Проверено 3 апреля 2013 года .
  93. ^ Дерзкий, Дэвид (август 2010). «Расширения архитектуры ARMv7-A» (PDF) . ARM Ltd . Проверено 6 июня 2014 .
  94. ^ "Как компилятор ARM поддерживает невыровненный доступ?" . 2011 . Проверено 5 октября 2013 года .
  95. ^ «Невыровненный доступ к данным» . Проверено 5 октября 2013 года .
  96. ^ Cortex-M0 r0p0 Техническое справочное руководство; Arm Holdings.
  97. ^ "Справочное руководство по архитектуре ARMv7-M; Arm Holdings" . arm.com . Проверено 19 января 2013 года .
  98. ^ a b «Справочное руководство по архитектуре ARMv7-A и ARMv7-R; Arm Holdings» . arm.com . Проверено 19 января 2013 года .
  99. ^ "Информационный центр ARM" . Проверено 10 июля 2015 года .
  100. ^ «Коды состояния 1: флаги и коды условий» . Сообщество ARM . Проверено 26 сентября 2019 .
  101. ^ «9.1.2. Количество циклов команд» .
  102. ^ «Компоненты CoreSight: о порте доступа для отладки» .
  103. ^ "Cortex-M3: порт доступа отладки (DAP)" .
  104. ^ Майк Андерсон. «Понимание параметров отладки ARM HW» .
  105. ^ "Руководство пользователя отладчика CMSIS-DAP" .
  106. ^ "CMSIS-DAP" .
  107. ^ «SWDAP против CMSIS-DAP против DAPLink» .
  108. ^ "Расширения набора команд ARM DSP" . arm.com . Архивировано 14 апреля 2009 года . Проверено 18 апреля 2009 года .
  109. ^ "DSP & SIMD" . Проверено 10 июля 2015 года .
  110. ^ ARM7TDMI Техническое справочное руководство, стр. Ii
  111. ^ Джаггар, Дэйв (1996). Справочное руководство по архитектуре ARM . Прентис Холл. С. 6–1. ISBN 978-0-13-736299-8.
  112. Натан Уиллис (10 июня 2015 г.). «Возрождение архитектуры SuperH» . LWN.net .
  113. ^ "Архитектура набора команд процессора ARM" . ARM.com. Архивировано 15 апреля 2009 года . Проверено 18 апреля 2009 года .
  114. ^ "ARM нацелена на сына Большого пальца в uCs, ASSPs, SoCs" . Linuxdevices.com. Архивировано из оригинала 9 декабря 2012 года . Проверено 18 апреля 2009 года .
  115. ^ "Информационный центр ARM" . Infocenter.arm.com . Проверено 18 апреля 2009 года .
  116. ^ Том Р. Halfhill (2005). «ARM усиливает компиляторы Java: новые 16-разрядные инструкции Thumb-2EE сохраняют системную память» (PDF) . Архивировано из оригинального (PDF) 5 октября 2007 года.
  117. ^ Справочное руководство по архитектуре ARM, выпуск ARMv7-A и ARMv7-R, выпуск Cb, раздел A2.10, 25 июля 2012 г.
  118. ^ "Набор инструментов компилятора ARM с использованием ассемблера - сопроцессор VFP" . ARM.com . Проверено 20 августа 2014 года .
  119. ^ "Директивы VFP и векторные обозначения" . ARM.com . Проверено 21 ноября 2011 года .
  120. ^ a b «Различия между ARM Cortex-A8 и Cortex-A9» . Шервин Эмами . Проверено 21 ноября 2011 года .
  121. ^ "Лист данных FPA10" (PDF) . chrisacorns.computinghistory.org.uk . GEC Plessey Semiconductors. 11 июня 1993 . Проверено 26 ноября 2020 года . Что касается IEEE 754-1985, FPA обеспечивает соответствие в арифметике с одинарной точностью [...] Иногда умножение с двойной и увеличенной точностью может производиться с ошибкой в ​​1 или 2 единицы в наименее значимом месте мантиссы. .
  122. ^ a b «Справочное техническое руководство по Cortex-A7 MPCore - 1.3 Функции» . ARM . Проверено 11 июля 2014 года .
  123. ^ "ARMHardFloatPort - Debian Wiki" . Wiki.debian.org. 20 августа 2012 . Проверено 8 января 2014 года .
  124. ^ "Процессор Cortex-A9" . arm.com . Проверено 21 ноября 2011 года .
  125. ^ "О Cortex-A9 NEON MPE" . arm.com . Проверено 21 ноября 2011 года .
  126. ^ "US20050125476A1" .
  127. ^ "US20080141004A1" .
  128. ^ «Параметры ARM» . Руководство по сборнику компиляторов GNU . Проверено 20 сентября 2019 года .
  129. ^ «Ne10: проект открытой оптимизированной библиотеки программного обеспечения для архитектуры ARM» . GitHub . Проверено 20 сентября 2019 года .
  130. Джозеф Ю. «Введение в архитектуру ARMv8.1-M» (PDF) . Дата обращения 5 марта 2020 .
  131. ^ «Genode - Исследование технологии ARM TrustZone» . Проверено 10 июля 2015 года .
  132. ^ «ARM объявляет о доступности мобильных потребительских программных решений DRM на основе технологии ARM TrustZone» (пресс-релиз). News.thomasnet.com . Проверено 18 апреля 2009 года .
  133. ^ Laginimaineb (8 октября 2015). «Биты, пожалуйста !: Полный эксплойт TrustZone для MSM8974» . Биты, пожалуйста! . Дата обращения 3 мая 2016 .
  134. ^ Ди Шен. «Атака на ваше« доверенное ядро ​​»с использованием TrustZone на Android» (PDF) . Брифинги Black Hat . Дата обращения 3 мая 2016 .
  135. ^ «ARM TrustZone и программное обеспечение с открытым исходным кодом для гипервизора ARM» . Откройте виртуализацию. Архивировано из оригинального 14 июня 2013 года . Проверено 14 июня 2013 года .
  136. ^ «Защищенная технология AMD» . AMD . AMD . Проверено 6 июля +2016 .
  137. ^ Смит, Райан (13 июня 2012 г.). «APU AMD 2013 будут включать процессор ARM Cortex A5 для возможностей Trustzone» . AnandTech . Проверено 6 июля +2016 .
  138. ^ a b Шимпи, Ананд Лал (29 апреля 2014 г.). «Предварительный просмотр производительности архитектуры AMD Beema Mullins A10 micro 6700T» . AnandTech . Проверено 6 июля +2016 .
  139. Рианна Уолтон, Джарред (4 июня 2014 г.). «AMD запускает APU Mobile Kaveri» . AnandTech . Проверено 6 июля +2016 .
  140. ^ «Платформа Samsung KNOX» (PDF) . Samsung Electronics . Апрель 2016 г.
  141. ^ "Справочное руководство по архитектуре ARM" (PDF) . п. B4-8. Архивировано из оригинального (PDF) 6 февраля 2009 года. Биты APX и XN (никогда не выполнять) были добавлены в VMSAv6 [Архитектура системы виртуальной памяти]
  142. ^ Справочное руководство по архитектуре ARM, выпуск ARMv7-A и ARMv7-R . ARM Limited.
  143. ^ "Cortex-A65AE" . ARM Разработчик . Проверено 26 апреля 2019 .
  144. ^ "Процессор Cortex-A32 - ARM" . Проверено 18 декабря +2016 .
  145. ^ «AppliedMicro демонстрирует первое в мире 64-битное ядро ​​ARM v8» (пресс-релиз). AppliedMicro. 28 октября 2011 . Проверено 11 февраля 2014 .
  146. ^ "Exynos 5433 от Samsung - это процессор ARM A57 / A53" . AnandTech . Проверено 17 сентября 2014 года .
  147. ^ "ARM Cortex-A53 MPCore Processor Техническое справочное руководство: Расширение криптографии" . ARM . Проверено 11 сентября +2016 .
  148. ^ Frumusanu Андрей (3 сентября 2020). «ARM объявила о выпуске Cortex-R82: первого 64-разрядного процессора реального времени» . AnandTech .
  149. ^ Frumusanu, Андрей (30 марта 2021). «Arm объявляет об архитектуре Armv9: SVE2, безопасность и следующее десятилетие» . AnandTech .
  150. ^ "Arm запускает архитектуру v9" (пресс-релиз). Arm Ltd. 30 марта 2021 г.
  151. Осборн, Чарли. «ARM анонсирует архитектуру безопасности PSA для устройств IoT» . ZDNet.
  152. Вонг, Уильям Г. (25 октября 2017 г.). "Архитектура безопасности платформы Arm нацелена на Cortex-M" . Электронный дизайн.
  153. ^ Вонг, Уильям. «Архитектура безопасности платформы ARM нацелена на Cortex-M» . Электронный дизайн .
  154. ^ Хоффенберг, Стив. «ARM: безопасность - это не просто технологический императив, это социальная ответственность» . VDC Research .
  155. ^ ARMasu, Люциан. «ARM раскрывает более подробную информацию о своей архитектуре безопасности платформы Интернета вещей» . Оборудование Тома .
  156. ^ Уильямс, Крис. «ARM PSA IoT API? BRB ... Набор инструментов для защиты подключенного к сети набора открывает еще кое-что» . Реестр .
  157. ^ Хейс, Кэролайн (25 февраля 2019 г.). «Embedded World: Arm представляет четвертый элемент безопасности в PSA» . Еженедельник электроники .
  158. ^ «Сертифицировано PSA: построение доверия к IoT» . Сертифицировано PSA .
  159. ^ a b «Сертификат PSA - построение доверия, повышение ценности» . EE Times . 4 марта 2019.
  160. ^ «Важность стандартов безопасности и регулирования в эпоху Интернета вещей на $ 6 трлн» . Интернет вещей сейчас. 16 марта 2020.
  161. МакГрегор, Джим (4 марта 2019 г.). «Arm представляет тестирование сертификации безопасности для Интернета вещей» . Forbes .
  162. Скорость, Ричард (26 февраля 2019 г.). «Azure IoT движется вперед, чтобы поддерживать подключение на периферии, любезно предоставлено Inmarsat» . Регистр .
  163. ^ «OS-9 Технические характеристики» . Микроволновая печь .
  164. ^ а б "Фарос" . SourceForge . Проверено 24 мая 2018 .
  165. ^ «Безопасная и надежная виртуализация PikeOS» . Проверено 10 июля 2013 года.
  166. ^ a b «Операционные системы реального времени, сертифицированные по безопасности - Поддерживаемые процессоры» .
  167. ^ "Порт платформы ARM" . opensolaris.org. Архивировано из оригинального 2 -го декабря 2012 года . Проверено 29 декабря 2012 года .
  168. ^ «Мультивизор на базе INTEGRITY от Green Hills Software представляет первое в отрасли 64-разрядное решение для безопасной виртуализации» . ghs.com . Проверено 14 марта 2018 .
  169. ^ "Операционная система реального времени Enea OSE для 5G и LTE-A | Enea" . www.enea.com . Проверено 17 апреля 2018 года .
  170. ^ «Поддерживаемые платформы» . docs.sel4.systems . Проверено 23 ноября 2018 года .
  171. ^ «Платформа разработки программного обеспечения QNX (SDP 7.0) | BlackBerry QNX» . www.blackberry.qnx.com . Проверено 27 июля 2020 .
  172. Линус Торвальдс (1 октября 2012 г.). «Re: [GIT PULL] arm64: порт ядра Linux» . Список рассылки ядра Linux (список рассылки) . Дата обращения 2 мая 2019 .
  173. ^ Larabel, Майкл (27 февраля 2013). "64-битная версия Ubuntu / Debian для ARM загружается" . Фороникс . Проверено 17 августа 2014 .
  174. ^ «Новости проекта Debian - 14 августа 2014 г.» . Debian . 14 августа 2014 . Проверено 17 августа 2014 .
  175. ^ "Сервер Ubuntu для ARM" . ubuntu.com .
  176. ^ "Архитектуры / AArch64" . Проверено 16 января 2015 года .
  177. ^ "Портал: ARM / AArch64" . Проверено 16 января 2015 года .
  178. ^ «Примечания к выпуску SUSE Linux Enterprise 12 SP2» . Проверено 11 ноября +2016 .
  179. ^ «Red Hat представляет поддержку сервера ARM для Red Hat Enterprise Linux» . redhat.com . Проверено 18 января 2019 .
  180. ^ "Обновление проекта 64-битной архитектуры ARM" . Фонд FreeBSD. 24 ноября 2014 г.
  181. ^ "OpenBSD / arm64" . Проверено 7 августа 2017 года .
  182. ^ "NetBSD / arm64" . Проверено 5 августа 2018 .
  183. ^ "HP и Asus анонсируют первые ПК с Windows 10 ARM: 20 часов автономной работы, гигабитный LTE" . Ars Technica . Проверено 22 января 2018 . Эта новая версия Windows 10 - первая 64-разрядная операционная система Microsoft ARM. Он будет запускать x86- и 32-разрядные приложения ARM из Магазина, а со временем - 64-разрядные приложения ARM. Однако Microsoft еще не доработала свой 64-битный ARM SDK. Есть много компонентов (например, есть 64-битный компилятор ARM), но компания еще не принимает 64-битные приложения ARM, представленные в Store, и нет никаких 64-битных настольных приложений ARM.
  184. ^ Hassan, Мехеди (10 декабря 2016). «Windows 10 на ARM64 получает свои первые скомпилированные приложения» . MSPoweruser .
  185. ^ Филиппидис, Катрина (1 июня 2018 г.). «VLC становится одним из первых приложений ARM64 для Windows» . Engadget .
  186. ^ Sweetgall, Марк (15 ноября 2018). «Официальная поддержка Windows 10 при разработке ARM» . Разработчик Windows. Блоги Windows . Microsoft . Проверено 17 декабря 2019 .
  187. ^ Gartenberg, Хаим (12 ноября 2020). «macOS Big Sur теперь доступен для загрузки» . Грань . Проверено 13 ноября 2020 .
  188. Clover, Juli (23 июня 2020 г.). «Rosetta не будет поддерживать приложения виртуализации x86 под управлением Windows» . MacRumors . Проверено 13 ноября 2020 .
  189. ^ "ARM - Официальная винная вики" . Проверено 10 июля 2015 года .
  190. ^ "ARM64 - Официальная винная вики" . Проверено 10 июля 2015 года .
  191. ^ «Обновления безопасности ARM - разработчик ARM» . ARM Разработчик . Проверено 24 мая 2018 .

Библиография [ править ]

  • Эванс, Мэтт (27 декабря 2019 г.). Абсолютный Желудь Архимед говорит .

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

  • Официальный сайт , ООО «АРМ».
  • Расширения виртуализации ARM
Карточки с краткими справками
  • Инструкции: большой палец , рука и большой палец-2 , вектор с плавающей запятой
  • Коды операций: большой палец , большой палец , ARM , ARM , директивы ассемблера GNU