Вы находитесь на странице: 1из 52

ARM’s Vision

Архитектура ARM (Advanced RISC Machine —


усовершенствованная RISC-машина,
ранее — Acorn RISC Machine) —
32-64-битная архитектура набора RISC-команд, разрабатываемая
ARM Limited.
ARM -семейство лицензируемых 32 и 64- битных микропроцессорных ядер
разработки компании ARM Limited.
Бизнес-модель компании ARM
Limited
• Сейчас компания ARM Limited занимается лишь
разработкой референсных процессорных
архитектур и их лицензированием.
• Создание же конкретных моделей чипов и их
последующее массовое производство – это уже
дело лицензиатов ARM, которых насчитывается
превеликое множество. Есть среди них как
известные лишь в узких кругах компании вроде
STMicroelectronics, HiSilicon и Atmel, так и IT-
гиганты, имена которых у всех на слуху – Samsung,
NVIDIA и Qualcomm.
▪ История ARM
▪ 2020
▪ Nvidia купила ARM за $40 млрд

▪ 2017: Увеличение штата и доли ИТ-специалистов


▪ 2016
▪ Выход на рынок процессоров для суперкомпьютеров

▪ SoftBank покупает ARM за $32 млрд

▪ 2014
▪ Среди клиентов - более 40 крупных производителей электроники

▪ Facebook внедряет ARM в дата-центрах

▪ 2012
▪ Подготовка к разработке процессоров для серверов

▪ Поставка свыше 15 млрд микрочипов ARM

▪ 2009: Выручка - 305 млн фунтов стерлингов


▪ 2007: Запуск Apple iPhone на процессорах ARM
▪ 1998: Размещение акций на бирже, Apple продает свою долю в
компании
▪ 1992: Процессор для наладонника Apple Newton
▪ 1990: Основание компании ARM
▪ 1978-1984: Эпоха Acorn
ARM Краткая история
История ARM началась в 1978 году, когда была создана британская компания Acorn
Computers. Под маркой Acorn выпускались несколько популярных на местном рынке
моделей персональных компьютеров на основе восьмибитных чипов MOS Tech 6502.
История ARM точнее начинается с ее компьютера BBC Micro. В нем использовался
«камень» MOS Technology 6502 (этот чип, кстати, стоял в первых версиях
персоналок Apple) , однако его производительности было недостаточно, чтобы
создать десктоп следующего поколения. Прежний процессор был недостаточно
мощным для работы с графическим интерфейсом. Но другие процессоры, такие
как Motorola 68000 и National Semiconductor 32016, тоже не подходили для этой
задачи.
Поэтому в компании задумались о создании собственного чипа. После изучения
различных архитектур, инженеры Acorn взяли за основу процессоры RISC
История ARM Acorn RISC Machine:ARM2
Официальный проект Acorn RISC Machine был начат в октябре 1983 года. Разработку
возглавили Уилсон и Фербер; основной их целью было достижение низкой задержки
ввода/вывода(прерывания) обработки, как у MOS Technology 6502 (уже используемой в существующих
разработках Acorn).
VLSI Technology была выбрана в качестве поставщика кремниевых компонентов, так как
она уже снабжала Acorn ROM и некоторыми нестандартными чипами.
Первый процессор был произведен 26 апреля 1985 года — тогда он впервые заработал и был назван
ARM1. Первые «реальные» производственные системы ARM2 стали доступны в следующем году. Его
первое применение было в качестве второго процессора с BBC Micro, где он был использован при
разработке программного обеспечения для моделирования, чтобы завершить работу по поддержке
чипов (VIDC, IOC, MEMC), а также ускорить работу программного обеспечения CAD, используемого
при разработке ARM2. Уилсон впоследствии закодировала BBC Basic в ассемблере ARM, а знания,
полученные от разработки набора команд позволили создать наиболее полный код, сделав ARM BBC
Basic невероятно хорошим тестом для любого эмулятора ARM. Изначальная цель компьютера,
полностью построенного на базе ARM, была достигнута в 1987 году с выходом Acorn Archimedes.
Атмосфера вокруг проекта ARM была настолько секретна, что когда компания Olivetti вела
переговоры о покупке контрольного пакета акций Acorn в 1985 году, они не стали рассказывать о
развитии команды до конца переговоров. В 1992 году Acorn еще раз выиграл премию королевы за
ARM.
В ARM2 была 32-разрядная шина данных, 26-битное адресное пространство и 16 32-
разрядных регистров. Программный код должен был лежать в первых 64 мегабайтах памяти, а
программный счетчик был ограничен 26 битами, так как верхние 4 и нижние 2 бита 32-битного
регистра служили флагами. ARM2 стал, возможно, самым простым из полезных 32-битных
процессоров в мире, имея всего лишь 30000 транзисторов (для сравнения, в сделанном на 6 лет раньше
процессоре Motorola 68000 было около 70000 транзисторов). Многое из этой простоты обусловлено
отсутствием микрокода(который в процессоре 68000 занимает от одной четверти до одной трети), и
отсутствием кэша, как и в многих процессорах того времени. Эта простота привела к низким затратам
энергии, в то время как ARM был гораздо более производителен, чем Intel 80286. У его преемника —
• К концу 1980-х годов Acorn занималась разработкой архитектуры ARM
уже не в одиночку – к ней присоединилась Apple. В связи с этим
подразделение, занимавшееся непосредственно ARM-процессорами,
было преобразовано в отдельную компанию – Advanced RISC
Machines. Advanced RISC Machines стала ARM, когда ее
родительская компания ARM Holdings вышла на Лондонскую
фондовую биржу и NASDAQ в 1998 году
• Первым продуктом новой компании стало процессорное ядро ARM6 и
процессор ARM610, который использовался в одном из первых в мире
КПК Apple Newton.
• Apple использовала основанный на базе ARM6 процессор
ARM 610 в качестве основы для своего продукта Apple Newton
PDA. В 1994 году Acorn стала использовать ARM 610 как главный
центропроцессор в своих компьютерах RISC PC.
• Компания DEC запатентовала архитектуру ARM6 (чем вызвала
небольшую путаницу, поскольку они так же производили
процессоры Alpha) и начала производить StrongARM. На 233МГц
этот процессор требовал всего 1 Вт мощности (более поздние
версии требовали гораздо меньше).
• Эта работа позднее перекочевала в Intel в рамках судебного
процесса, и Intel воспользовалась возможностью дополнить их
Архитектура Семейства

ARMv1 ARM1

ARMv2 ARM2, ARM3

ARMv3 ARM6, ARM7

ARMv4 StrongARM, ARM7TDMI, ARM9TDMI

ARMv5 ARM7EJ, ARM9E, ARM10E, XScale

ARMv6 ARM11, ARM Cortex-M

ARMv7 ARM Cortex (A, M, R)

Ядра Cortex-A53 и Cortex-A57


ARMv8
Cortex-A73 и Cortex-A77,
с набором команд ARM 64 бит
Cortex-A55, Cortex-A78, Cortex-X1
Следует иметь в виду, что читая обзоры о мобильных устройствах, следует
помнить, что семейство ARM7 - это совсем не то же самое, что и архитектура
ARMv7.
Каждая архитектура может разделяться на несколько семейств.
Наиболее значимыми семействами являются: ARM7, ARM9, ARM11 и Cortex. А
самыми современными являются семейства ARM11 и Cortex. Начиная с
архитектуры ARMv7, процессоры имеют 3 профиля: "A"(application) -
процессоры приложений, "R" (real time) - контроллёры реального времени, "M"
(microcontroller) - микроконтроллеры.
Процессорные ядра Cortex — результат прогрессивного развития классической
архитектуры ARM. Ядра Cortex – это семейство со стандартизированной
архитектурой, предназначенное для решения широкого круга технологических
задач. Таким образом в семействе Cortex реализуются три подсемейства:
Cortex-M – для микроконтроллерных и недорогих встроенных приложений;
Cortex-A – для высокопроизводительных приложений;
Cortex-R – для приложений реального времени.
Cortex-X-для сверхвысокопроизводительных приложений
Нумерация после буквы означает относительную градацию вычислительной
мощности микросхемы семейства.
Во второй половине 2020 года ARM представила высокопроизводительную
микроархитектуру Cortex-X1, основанную на Cortex-A78 и относящуюся к
ARMv8.
В 2011 году компания ARM Limited анонсировала новое семейство процессоров под названием ARMv8.
А в 2013 году компания Apple выпустила первый ARMv8-процессор – однокристальную систему А7,
которая применяется в iPhone 5S, iPad Air и iPad mini Retina. Архитектура ARMv8 получила 64-битный
набор команд, но это далеко не единственное её преимущество над предшественницей ARMv7
Нововведения ARMv8
Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила
64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4
Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch32).
Другими важными нововведениями ARMv8 стали:
— 31 регистр общего назначения, каждый длиной 64 бита, тогда как SP и PC не являются регистрами
общего назначения. Чем выше разрядность регистров, тем больше числа можно в них хранить. А чем
больше количество регистров, тем больше данних в них помещается одновременно. Как результат, за
одну инструкцию можно обработать больший объем данних и весь алгоритм выполнится быстрее;
— трансляция виртуальных адресов из 48-битного формата работает с помощью механизмов LPAE,
позаимствованных у ARMv7;
— новый набор инструкций с фиксированной длинной. Инструкции имеют размер 32 бита и многие
совпадают с командами AArch32, хотя условных инструкций стало меньше;
— увеличено с 16 до 32 количество 128-битных регистров (совместимы с 64-битными регистрами),
доступных сопроцессорам SIMD NEON и VFP, а также добавлены новые криптографические
инструкции AES и SHA. Набор инструкций SIMD NEON ускоряет работу приложений, отвечающих за
обработку медиаданных и сигналов. В свою очередь VFP отвечает за малоэнергозатратные вычисления
над числами с плавающей запятой;
— поддержка вычислений над числами с плавающей запятой двойной точности и стандарта IEEE 754,
который является общепринятым форматом представления чисел с плавающей запятой, используемый
в программных реализациях арифметических действий.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно
компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является
среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что
находится примерно по середине между нынешними Cortex-A7 (1,9
DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент,
ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-
битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).

Помимо лицензирования референсных процессорных ядер компания ARM


Limited продает расширенные лицензии, позволяющие чипмейкерам по
своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть,
к примеру, у Apple, Qualcomm и NVIDIA.
Поэтому ничто не мешает производителям процессоров создавать
собственные решения на базе ARMv8, существенно отличающиеся от
референсных Cortex-A53 и A57.
Фирма ARM продает лицензии на свои разработки огромному
количеству ведущих компаний в области разработки и производства:
микропроцессоров и микроконтроллеров; процессоров и систем.Сеть партнеров
фирмы ARM является всемирной . Среди ее партнеров такие всемирно известные
брэнды, как: Atmel, Cirrus Logic (англ.), Intel, Marvell (англ.), NXP, Samsung,
Qualcomm, Sony Ericsson, Sharp, Plessy, Sony, Microsoft, 3Com, и многие, многие
другие.
Архитектура ARM значительно расширяет коцепцию RISC. Современные
ARM-процессоры часто поставляются в формате SoC (System On Chip) и имеют на
одном кристалле с процессором контроллер памяти, графическое ядро, аудио
интерфейс, модули беспроводной связи и многое другое. Это позволяет
производителям оборудования не тратить ресурсы на разработку собственных
сложных систем под каждое устройство отдельно, а интегрировать уже готовую
аппаратную платформу, сосредоточившись только на разработке необходимых
функций конечного продукта.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно
компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является
среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что
находится примерно по середине между нынешними Cortex-A7 (1,9
DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент,
ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-
битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).

Помимо лицензирования референсных процессорных ядер компания ARM


Limited продает расширенные лицензии, позволяющие чипмейкерам по
своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть,
к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает
производителям процессоров создавать собственные решения на базе
ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.
Системы на кристалле (SoC)
Обычно мы представляем себе процессор в виде главной микросхемы на
системной плате, а ядра, которых может быть несколько, - как его составные
части, непосредственно отвечающие за исполнение инструкций.
В мире ARM термины "процессор" и "ядро" имеют несколько иное значение.
Процессором называется конструкция, состоящая из одного или нескольких
ядер, кэш-памяти, системной шины и прочих элементов, которую
производитель может немедленно превратить в микросхему.
Ядро - это центральный элемент микропроцессора, который производитель
может использовать для создания микросхем собственной конструкции.
Такая "система на чипе" (SoC) может представлять собой гораздо более
сложное изделие, чем процессор, и отвечать за большую часть
функциональности того или иного устройства в целом. Подобные микросхемы
позволяют свести к минимуму число компонентов для сборки конечного
продукта, уменьшить габариты печатной платы и снизить себестоимость, что
особенно важно для крупносерийного производства.
•ARM7 (с тактовой частотой до 60-72 МГц), был предназначенные для недорогих мобильных
телефонов и встраиваемых решений средней производительности. В настоящее время активно
вытесняется семейством Cortex.
•ARM9, ARM11 (с частотами до 1 ГГц) для телефонов, встраиваемых решений высокой
производительности.
•Cortex A —семейство процессоров на смену ARM9 и ARM11.
•Cortex M — семейство процессоров на смену ARM7, также призванное занять новую для ARM
нишу встраиваемых решений низкой производительности. В семействе присутствуют четыре
значимых ядра:
• Cortex-M0, Cortex-M0+ (более энергоэффективное) и Cortex-M1 (оптимизировано для
применения в ПЛИС) с архитектурой ARMv6-M;
• Cortex-M3 с архитектурой ARMv7-M;
• Cortex-M4 (добавлены SIMD-инструкции, опционально FPU) и
• Cortex-M7 (FPU с поддержкой чисел одинарной и двойной точности) с архитектурой
ARMv7E-M;
• Cortex-M23 и Cortex-M33 с архитектурой ARMv8-M ARMv8-M .
• Cortex-X1-для сверхвысокопроизводительных приложений- , основанную на
Cortex-A78 и относящуюся к ARMv8.
В 2010 году производитель анонсировал процессоры Cortex-A15 под кодовым названием Eagle,
ARM утверждает, что ядро Cortex A15 на 40 процентов производительнее на той же частоте, чем
ядро Cortex-A9 при одинаковом числе ядер на чипе[12]. Изделие, изготовленное по 28-
нанометровому техпроцессу, имеет 4 ядра, может функционировать на частоте до 2,5 ГГц и
будет поддерживаться многими современными операционными системами[13][14].
Популярное семейство микропроцессоров xScale фирмы Marvell (до 27 июня 2007 года —
Intel[15]) в действительности является расширением архитектуры ARM9, дополненной набором
инструкций Wireless MMX, специально разработанных фирмой Intel для поддержки
По лицензии британской корпорации ARM микропроцессоры производят Atmel,
Cirrus Logic , Intel (до 27 июня 2006 года), Marvell , NXP, STMicroelectronics,
Samsung, Qualcomm, Sony Ericsson, Texas Instruments, nVidia, Freescale. Microsoft,
3Com,
Значимые семейства процессоров: ARM7, ARM9, ARM11 и Cortex.
Многие лицензиаты делают собственные версии ядер на
базе ARM:
1. DEC ---StrongARM,
2. Freescale ----iMX,
3. Intel Xscale(в 2007г. Продана фирме Marvell ),
4. NVIDIA ------Tegra,
5. STMicroelectronics: STM32F0 (Cortex-M0) 24 МГц; STM32F1 72 МГц,
STM32F2 120 МГц (Cortex-M3); STM32F3 72МГц, STM32F4 168 МГц
(Cortex-M4).
6. Qualcomm---- Snapdragon,
7. Texas Instruments ---OMAP,
8. Samsung ----- Hummingbird и или Exynos
9. Apple Ax. (сверхпопулярный чип Apple A14 Bionic, которыми оснащаются
iPhone 12)
Производители процессоров архитектуры ARM
•Apple: Apple Ах,Apple M1 (MacBook Air, MacBook Pro 13 и Mac mini).
•Freescale: i.MX515 — архитектура на ядре ARM Cortex-A8.
•Marvell: Marvell PXA168 на ядре Marvell Sheeva — ARM-процессор на
1,2 ГГц.
•Nvidia: Tegra, Tegra 2, Tegra 3, Tegra 4.
•Qualcomm: Snapdragon.
•Samsung: Samsung 2440A — 400 МГц, Samsung S5P6440 — на ядре
ARM11, Hummingbird — процессор на 1 ГГц на ядре ARM Cortex-A8.
•Rockchip: RK2918 — ARM-процессор на 1ГГц, архитектура ARM
Cortex-A8.
•Texas Instruments: TI OMAP 3-5
•VIA: VT8500 — процессор ARM-926 на 266—400 МГц.
•Миландр: 1986ВЕ91-1986ВЕ93 80 МГц.
•STMicroelectronics: STM32F0 (Cortex-M0) 24 МГц; STM32F1 72 МГц,
STM32F2 120 МГц (Cortex-M3); STM32F3 72МГц, STM32F4 168 МГц
(Cortex-M4). STM32F746IGT6 (Cortex-M7 c FPU)
Производители процессоров архитектуры ARM
Серия SecureCore
• В состав серии входят микропроцессорные ядра SC100™, SC110™, SC200™ и
SC210™, нацеленные на нужды быстро растущего рынка средств
безопасности. Технология SecureCore представляет собой самую
распространенную 32-разрядную RISC-архитектуру, доработанную под смарт-
карты и другие средства контроля и безопасности. Серия SecureCore дает
возможность системным разработчикам создавать на базе процессорных ядер
ARM безопасные решения для электронной коммерции, банковских и сетевых
операций, мобильных мультимедиа, систем идентификации и передачи
данных. Отличительной чертой серии SecureCore является
«антижульническая» методология защиты от копирования, уникальная для
ARM. Эта методология позволяет отражать проникновения на уровнях
«железа» и программного обеспечения, а также препятствовать попыткам
проведения послойного, энергетического или временного анализа с целью вос-
создать прибор. Процессорные ядра SC100 и SC110 полностью совместимы по
командам с процессорами серий ARM7 и ARM9, содержат высококлассный
криптографический акселератор, ОС поддержки Java Card™ и MULTOS, а
также операционную систему реального времени (RTOS — Real Time Operating
System) для передовых применений сетевой безопасности. Ядра SC200 и
SC210 обладают всеми вышеперечисленными свойствами, а кроме того, имеют
встроенное ядро безопасности, технологию ARM Jazelle для ускорения Java
Card-приложений, интерфейс памяти Харварда и кэш-память, ориенти-
рованную на смарт-карты. Лицензии на серию SecureCore имеют Atmel, Philips
и Samsung.
Список операционных систем с
поддержкой процессоров ARM
.
Поддерживается множеством операционных
систем. Среди них есть Unix и Unix-подобные
ОС: GNU/Linux, BSD, QNX, Plan
9, Inferno, Solaris, iOS, Android, Firefox OS.
Также на платформе могут работать отдельные
варианты семейства Windows: Windows
CE, Windows Phone, Windows RT.
Кроме того ARM поддерживают
ОС: A2, ReactOS[1][2], FreeRTOS, Nucleus, Symbia
n OS, RISC OS.
ARM Interface Signals
mclk A [31 :0]
clock
control w ait
Din[31:0]
eclk
configuration bigend Dout[31:0]

irq D[31:0] memory


interrupts ¼q interface
isync bl[3:0]
r/w
initialization re set mas[1:0]
mreq
enin
enout seq
lock
enouti
abe trans
ale MMU
mode [4:0] interface
bus ape abor t
control dbe
tbe Tbit s tate
busen
highz ARM7TDMI tapsm[3:0]
busdis ir[3:0]
ecapclk core tdoen TAP
tck1 inform ation
dbgr q
tck2
br eakpt
scr eg[3:0]
dbgack
exec dr ivebs
extern1 ecapclkb s
extern0 icapclkbs
debug dbgen highz
ra ngeout0 boundary
pclkbs scan
ra ngeout1 rs tclkbs
dbgr qi
extension
sdinbs
commrx sdoutbs
commtx shclkbs
opc shclk2bs
coprocessor cpi
interface cpa TRST
TCK JTAG
cpb
TMS controls
V dd TDI
power
V ss TDO
ARM Core Diagram
Архитектура ARM содержит следующие особенности RISC:
• Архитектура загрузки/хранения
• Нет поддержки нелинейного (не выровненного по словам) доступа к
памяти (теперь поддерживается в процессорах ARMv6 за некоторыми
исключениями)
• Равномерный 16х32-битный регистровый файл
• Фиксированная длина команд (32 бита) для упрощения декодирования за
счет снижения плотности кода. Позднее режим Thumb повысил плотность кода.
• Одноцикловое исполнение
Чтобы компенсировать простой дизайн, в сравнении с современными
процессорами вроде Intel 80286 или Motorola 68020 были использованы некоторые
особенности дизайна:
• Арифметические инструкции заменяют условные коды только когда это
необходимо
• 32-битное многорегистровое циклическое сдвиговое устройство, которое
может быть использовано без потерь производительности в большинстве
арифметических инструкций и адресных расчетов.
• Мощные индексированные адресные режимы
• Регистр ссылок для быстрого вызова функций листьев
• Простые, но быстрые, с двумя уровнями приоритетов подсистемы
прерываний с включенными банками регистров.
Архитектура ARM

7 операционных режимов:
•User mode — обычный режим выполнения программ. В этом режиме
выполняется большинство программ.
•Fast Interrupt (FIQ) — режим быстрого прерывания (меньшее время
срабатывания)
•Interrupt (IRQ) — основной режим прерывания.
•System mode — защищённый режим для использования операционной
системой.
•Abort mode — режим, в который процессор переходит при возникновении
ошибки доступа к памяти (доступ к данным или к инструкции на этапе prefetch
конвейера).
•Supervisor mode — привилегированный пользовательский режим.
•Undefined mode — режим, в который процессор входит при попытке
выполнить неизвестную ему инструкцию.
Режимы МП ARM
Процессор может находиться в одном из следующих операционных режимов:
• User mode — обычный режим выполнения программ. В этом режиме
выполняется большинство программ.
• Fast Interrupt (FIQ) — режим, оптимизированный для передачи
данных.
• Interrupt (IRQ) — основной режим для управления прерываниями.
• Supervisor mode — защищённый режим для использования
операционной системой.
• Abort mode — режим, в который процессор переходит при
возникновении ошибки доступа к памяти (доступ к данным или к
инструкции на этапе prefetch конвейера).
• System mode — привилегированный пользовательский режим.
• Undefined mode — режим, в который процессор входит при попытке
выполнить неизвестную ему инструкцию.
Переключение режима процессора происходит при возникновении
соответствующего исключения или модификацией регистра статуса.
Работа с памятью Поддерживаемые системы ввода-вывода
• В большинстве существующих моделей
микропроцессоров реализована шина PCI и возможность
работы с внешней динамической оперативной памятью
(DRAM).
• В процессорах, предназначенных для потребительских
устройств, также обычно интегрируются: контроллеры
шин USB, IIC, AC’97-совместимое звуковое устройство,
устройство для работы с флэш-носителями стандарта SD
и MMC, контроллер последовательного порта.
• Все процессоры имеют линии ввода-вывода общего
назначения (GPIO). В потребительских устройствах к
ним могут быть подключены кнопки «быстрого
запуска», сигнальные светодиоды, колесо прокрутки
(JogDial), клавиатура.
Memory Access
0x1A

▪ The ARM is a Von Neumann, 0x19

0x18
load/store architecture, i.e., 0x17

▪ Only 32 bit data bus for both inst. And data. 0x16

▪ Only the load/store inst. (and SWP) access 0x15

memory. 0x14

0x13
▪ Memory is addressed as a 32 bit
0x12
address space

0x11
Data type can be 8 bit bytes, 16 bit
half-words or 32 bit words, and may be 0x10

seen as a byte line folded into 4-byte 0x0C

words 0x08

0x04

0x00

Memory as words
ARM Registers
System & User FIQ Supervisor Abort IRQ Undefined
R0 R0 R0 R0 R0 R0
R1 R1 R1 R1 R1 R1
R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3
R4 R4 R4 R4 R4 R4
R5 R5 R5 R5 R5 R5
R6 R6 R6 R6 R6 R6
R7 R7_fiq R7 R7 R7 R7
R8 R8_fiq R8 R8 R8 R8
R9 R9_fiq R9 R9 R9 R9
R10 R10_fiq R10 R10 R10 R10
R11 R11_fiq R11 R11 R11 R11
R12 R12_fiq R12 R12 R12 R12
R13 R13_fiq R13_svc R13_abt R13_irq R13_und
R14 R14_fiq R14_svc R14_abt R14_irq R14_und
R15 (PC) R15 (PC) R15 (PC) R15 (PC) R15 (PC) R15 (PC)
CPSR CPSR CPSR CPSR CPSR CPSR
SPSR_fiq SPSR_svc SPSR_abt SPSR_irq SPSR_und
28
Регистры
ARM предоставляет 31 регистр общего назначения разрядностью 32 бит. В
зависимости от режима и состояния процессора пользователь имеет доступ
только к строго определенному набору регистров.
В ARM state разработчику постоянно доступны 17 регистров:
• 13 регистров общего назначения (r0..r12).
• Stack Pointer (r13) — содержит указатель стека выполняемой программы.
• Link register (r14) — содержит адрес возврата в инструкциях ветвления.
• Program Counter (r15) — биты [31:1] содержат адрес выполняемой
инструкции.
• Current Program Status Register (CPSR) — содержит флаги, описывающие
текущее состояние процессора. Модифицируется при выполнении многих
инструкций: логических, арифметических, и др.
Во всех режимах кроме User mode и System mode доступен также Saved Program
Status Register (SPSR). После возникновения исключения регистр CPSR
сохраняется в SPSR. Тем самым фиксируется состояние процессора (режим,
состояние; флаги арифметических, логических операций, разрешения
прерываний) на момент непосредственно перед прерыванием.
Условное исполнение
• Одним из существенных отличий архитектуры ARM от других архитектур
ЦПУ является так называемая предикация — возможность условного
исполнения команд. Под «условным исполнением» здесь понимается то, что
команда будет выполнена или проигнорирована в зависимости от текущего
состояния флагов состояния процессора.
• В то время как для других архитектур таким свойством, как правило,
обладают только команды условных переходов, в архитектуру ARM была
заложена возможность условного исполнения практически любой команды.
Это было достигнуто добавлением в коды их инструкций особого 4-битового
поля (предиката). Одно из его значений зарезервировано на то, что
инструкция должна быть выполнена безусловно, а остальные кодируют то
или иное сочетание условий (флагов). С одной стороны, с учётом
ограниченности общей длины инструкции, это сократило число бит,
доступных для кодирования смещения в командах обращения к памяти, но с
другой — позволило избавляться от инструкций ветвления при генерации
кода для небольших if-блоков.
Режим Thumb
Для улучшения плотности кода процессоры, начиная с ARM7TDMI, снабжены
режимом «thumb». В этом режиме процессор выполняет альтернативный набор 16-
битных команд. Большинство из этих 16-разрядных команд переводятся в
нормальные команды ARM. Уменьшение длины команды достигается за счет
сокрытия некоторых операндов и ограничения возможностей адресации по
сравнению с режимом полного набора команд ARM.
В режиме Thumb меньшие коды операций обладают меньшей функциональностью.
Например, только ветвления могут быть условными, и многие коды операций имеют
ограничение на доступ только к половине главных регистров процессора. Более
короткие коды операций в целом дают большую плотность кода, хотя некоторые
операции требуют дополнительных команд. В ситуациях, когда порт памяти или
ширина шины ограничены 32 битами, более короткие коды операций режима Thumb
становятся гораздо производительнее по сравнению с обычным 32-битным ARM
кодом, так как меньший программный код придется загружать в процессор при
ограниченной пропускной способности памяти.
Аппаратные средства типа Game Boy Advance, как правило, имеют небольшой объем
оперативной памяти доступной с полным 32-битным информационным каналом. Но
большинство операций выполняется через 16-битный или более узкий
информационный канал. В этом случае имеет смысл использовать тумбовый код и
вручную оптимизировать некоторые тяжелые участки кода, используя переключение
в режим полных 32-битных инструкций ARM.
Первым процессором с декодером тумбовых команд был ARM7TDMI. Все
процессоры семейства ARM9, а также XScale, имели встроенный декодер тумбовых
команд.
ARM Thumb
Еще в 1994 году фирмой ARM было разработано 32-разрядное процессорное RISC-ядро ARM7. Оно
оказалось настолько удачным, что легло в основу целого ряда 32-разрядных процессоров и с
различными модификациями используется до настоящего времени.
Система команд RISC-ядра ARM и связанный с нею механизм декодирования намного проще, чем у
CISC-ядер, работающих на базе микропрограмм, что приводит к высокой скорости обработки команд
и малому времени отклика на прерывания. Кроме того, RISC-процессор реализуется на кристалле
меньших размеров, что снижает его стоимость.
Технология Thumb — дополнительное расширение архитектуры ARM. Система команд Thumb являет-
ся производной от стандартной 32-разрядной системы команд ARM, перекодированных в 16-
разрядные коды, что позволяет достичь очень высокой плотности кода. В процессе выполнения 16-
разрядные Thumb-коды декомпрессируются процессором в соответствующие эквивалентные команды
ARM, которые затем и выполняются процессорным ядром. Thumb-ориентированные ядра имеют по
сути две отдельные системы команд — уникальное достоинство, позволяющее разработчику
использовать как производительность 32-разрядной системы команд ARM, так и преимущества
малого размера кода Thumb. Средства декодирующей логики Thumb чрезвычайно просты и лишь
незначительно увеличивают размер кристалла и энергопотребление. Впервые технология Thumb была
встроена в ядро ARM7 еще в 1995 году. Адаптированное под нее ядро получило типовое обозначение
ARM7TDMI (ARM7, Т — наличие Thumb; D — возможность внутрисхемной аппаратной отладки; М
— наличие аппаратного перемножителя; I — наличие модуля управления отладкой) и за короткое
время было лицензировано большим количеством фирм-производителей — Atmel, CirrusLogic, Sharp,
Samsung, Triscend и др. Ядро ARM7TDMI используется как при создании различных устройств типа
ASIC, так и при создании МК общего назначения и реконфигурируемых систем на кристалле.
Основные достоинства ARM Thumb — высокая производительность при низком энергопотреблении и
многофункциональность — определяют основную нишу для конечных приложений —
интеллектуальной портативной и носимой аппаратуры, в том числе и с батарейным питанием. Многие
производители сложной электронной техники уже используют ядро ARM Thumb, встраивая его в свои
законченные интегральные изделия. Это например, приемники GPS (фирмы Mitel и SiRF),
оборудование для базовых станций GSM (Ericsson) и сами телефоны GSM, приложения Audio
WMA/MP3 (dBTech и Microsoft), модемы (Ericsson), пейджеры (Motorola), торговые терминалы,
Thumb-2 — технология, стартовавшая с ARM1156 core, анонсированного в
2003 году. Он расширяет ограниченный 16-битный набор команд Thumb
дополнительными 32-битными командами, чтобы задать набору команд
дополнительную ширину. Цель Thumb-2 — достичь плотности кода как у
Thumb, и производительности как у набора команд ARM на 32 битах.
Можно сказать, что в ARMv7 эта цель была достигнута.
Thumb-2 расширяет как команды ARM, так и команды Thumb еще
большим количеством команд, включая управление битовым полем,
табличное ветвление, условное исполнение. Новый язык «Unified
Assembly Language» (UAL) поддерживает создание команд как для ARM,
так и для Thumb из одного и того же исходного кода. Версии Thumb на
ARMv7 выглядят как код ARM. Это требует осторожности и
использования новой команды if-then, которая поддерживает исполнение
до 4 последовательных команд испытываемого состояния. Во время
компиляции в ARM код она игнорируется, но во время компиляции в код
Thumb-2 генерирует команды
Все чипы ARMv7 поддерживают набор команд Thumb-2, а некоторые
чипы, вроде Cortex-m3, поддерживают только Thumb-2. Остальные чипы
Cortex и ARM11 поддерживают наборы команд как Thumb-2, так и ARM.
Расширения безопасности
Расширения безопасности, позиционируемые как TrustZone Technology, находятся
в ARMv6KZ и других, более поздних, профилированных на приложениях
архитектурах. Оно обеспечивает низкозатратную альтернативу добавлению
специального ядра безопасности, обеспечивая 2 виртуальных процессора,
поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения
переключаться между двумя состояниями, называемыми «миры» (чтобы избежать
путаницы с названиями возможных доменов), чтобы не допустить утечку
информации из более важного мира в менее важный. Этот переключатель миров
обычно ортогонален всем другим возможностям процессора. Таким образом,
каждый мир может работать независимо от других миров, используя одно и то же
ядро. Память и периферия соответственно изготавливаются с учетом
особенностей мира ядра, и могут использовать это, чтобы получить контроль
доступа к секретам и кодам ядра. Типичные приложения TrustZone Technology
должны запускать полноценную операционную систему в менее важном мире, и
компактный, специализированный на безопасности, код в более важном мире,
позволяя Digital Rights Management’у намного точнее контролировать
использование медиа на устройствах на базе ARM, и предотвращая
несанкционированный доступ к устройству.
На практике же, так как конкретные детали реализации TrustZone остаются
собственностью компании и не разглашаются, остается неясным, какой уровень
безопасности гарантируется для данной модели угрозы.
Отладка
Все современные процессоры ARM включают аппаратные средства
отладки, так как без них отладчики ПО не смогли бы выполнить самые
базовые операции типа остановки, отступа, установка контрольных точек
после перезагрузки.
Архитектура ARMv7 определяет базовые средства отладки на
архитектурном уровне. К ним относятся точки останова, точки просмотра
и выполнение команд в режиме отладки. Такие средства были также
доступны с модулем отладки EmbeddedICE. Поддерживаются оба
режима — остановки и обзора. Реальный транспортный механизм,
который используется для доступа к средствам отладки, не
специфицирован архитектурно, но реализация, как правило, включает
поддержку JTAG.
Существует отдельная архитектура отладки «с обзором ядра», которая
не требуется архитектурно процессорами ARMv7.
Усовершенствованный SIMD(NEON)
Расширение усовершенствованного SIMD, также называемое технологией NEON — это
комбинированный 64- и 128-битный набор команд SIMD (single instruction multiple data), который
обеспечивает стандартизованное ускорение для медиа приложений и приложений обработки сигнала.
NEON может выполнять декодирование аудио формата mp3 на частоте процессора в 10Мгц, и может
работать с речевым кодеком GSM AMR (adaptive multi-rate) на частоте более чем 13Мгц. Он обладает
внушительным набором команд, отдельными регистровыми файлами, и независимой системой
исполнения на аппаратном уровне. NEON поддерживает 8-,16-,32-,64-битную информацию целого
типа, одинарной точности и с плавающей точкой, и работает в операциях SIMD по обработке аудио и
видео (графика и игры). В NEON SIMD поддерживает до 16 операций единовременно.
VFP
Технология VFP (Vector Floating Point, вектора чисел с плавающей точкой) — это расширение
сопроцессора в архитектуре ARM. Она производит низкозатратные вычисления над числами с
плавающей запятой одинарной двойной точности, в полной мере соответствующие стандарту
ANSI/IEEE Std 754—1985 Standard for Binary Floating-Point Arithmetic.VFP производит вычисления с
плавающей точкой, подходящие для широкого спектра приложений — например, для КПК,
смартфонов, сжатие звука, 3д-графики и цифрового звука, а также принтеров и телеприставок.
Архитектура VFP также поддерживает исполнение коротких векторных команд. Но, поскольку
процессор выполняет операции последовательно над каждым элементом вектора, то VFP нельзя
назвать истинным SIMD набором инструкций. Этот режим может быть полезен в графике и
приложениях обработки сигнала, так как он позволяет уменьшить размер кода и выработку команд.
Другие сопроцессоры с плавающей точкой и/или SIMD, находящиеся в ARM процессорах включают в
себя FPA, FPE, iwMMXt. Они обеспечивают ту же функциональность, что и VFP, но не совместимы с
ним на уровне опкода.
Jazelle
Jazelle — это метод, который позволяет байткоду Java
исполняться прямо в архитектуре ARM в качестве 3го
состояния исполнения (и набора команд) наряду с
обычными командами ARM и режимом бегунка.
Поддержка этого свойства обозначается буквой «J» в
названии процессора — например, ARMv5TEJ.
Необходимость такой поддержки появляется начиная с
процессоров ARMv6, хотя новые ядра лишь содержат
тривиальные реализации, которые не поддерживают
аппаратного ускорения.
ВСПОМОГАТЕЛЬНЫЕ ИНСТРУМЕНТЫ
Для сокращения времени выхода разработок на рынок, а также для упрощения
самого процесса разработки, ARM предоставляет большой набор различных
вспомогательных инструментов, таких как:
• Отладочные средства: компанией ARM разработан комплекс отладочных
средств, включающих в себя RealView Debugger, MultilCE,
MultiTrace™, EmbeddedlCE и EmbeddedlCE-RT.Они позволяют разработчику
многоядерных систем проводить отладку всей системы с
синхронизацией работы всех ядер.
• Программное обеспечение: ADS (ARM Developer Suite — набор
разработчика от ARM) обеспечивает полное программное решение для
быстрого и эффективного применения ARM-архитектуры.
• Оценочные средства: с помощью различных эволюционных плат и
наборов ARM дает возможность пользователю проработатьвсе этапы
создания встроенной системы. Среди таких оценочных средств — серия
Integrator™, набор Evaluator-7T™ и набор ARM Developer Kit™.
• Инструменты моделирования: компания ARM предоставляет разра-
ботчикам широкий диапазон моделирующих инструментов, позволяющих
моделировать различные этапы разработки. Среди них такие, как
ModelGen™, DSM (Design Signoff Models), PrimeXsys™, ARMulator®,
AMBA.
Принципиальная схема микроконтроллера на базе ядра ARM Cortex-M3
Cовместную работу в составе одной SoC-сборки вычислительных
ядер разных поколений.
Чипсеты ARM
Для систем, использующих процессоры ARM,
также создавались и создаются чипсеты. И если
первые образцы (такие как ARM2 для Acorn
Archimedes в составе собственно процессора и
чипов IOC, MEMC, VIDC, VIDC20 и более
поздний ARM3) были в целом похожи на
современные им чипсеты IBM PC, то
современные (такие как Qualcomm Snapdragon и
Texas Instruments DaVinci), из-за
ориентированности на мобильные устройства,
заметно отличаются как по структуре, так и по
техническим особенностям.
Современное состояние
Производители процессоров архитектуры ARM
•Apple: Apple Ах,Apple M1 (MacBook Air, MacBook Pro 13 и Mac mini).
•Freescale: i.MX515 — архитектура на ядре ARM Cortex-A8.
•Marvell: Marvell PXA168 на ядре Marvell Sheeva — ARM-процессор на
1,2 ГГц.
•Nvidia: Tegra, Tegra 2, Tegra 3, Tegra 4.
•Qualcomm: Snapdragon.
•Samsung: Samsung 2440A — 400 МГц, Samsung S5P6440 — на ядре
ARM11, Hummingbird — процессор на 1 ГГц на ядре ARM Cortex-A8.
•Rockchip: RK2918 — ARM-процессор на 1ГГц, архитектура ARM
Cortex-A8.
•Texas Instruments: TI OMAP 3-5
•VIA: VT8500 — процессор ARM-926 на 266—400 МГц.
•Миландр: 1986ВЕ91-1986ВЕ93 80 МГц.
•STMicroelectronics: STM32F0 (Cortex-M0) 24 МГц; STM32F1 72 МГц,
STM32F2 120 МГц (Cortex-M3); STM32F3 72МГц, STM32F4 168 МГц
(Cortex-M4). STM32F746IGT6 (Cortex-M7 c FPU)
Почти год назад компания Qualcomm представила 7-нанометровый
мобильный процессор Snapdragon 865, который появился в
большинстве флагманов 2020 года.

что Snapdragon 875 реализован по самому


прогрессивному на сегодня 5-
нанометровому техпроцессу
• Характеристики Snapdragon 875
• Сразу стоит отметить, что Snapdragon 875 реализован по самому прогрессивному на сегодня
5-нанометровому техпроцессу. Процессор включает в себя высокоскоростные ядра Kryo 685
(Cortex V8). Здесь работает система 4+3+1. То есть, речь идет о четырех энергоэффективных
ядрах Cortex A-55 для решения стандартных задач. Они функционируют на частоте 1800
МГц. Для более сложных сценариев используются три мощных ядра Cortex-A78 (2420 МГц).
А вот вишенкой на торте является суперядро Cortex X1 с тактовой частотой 2840 МГц.
Такая связка способна выдавать по-настоящему впечатляющий результат. К кэшу первого
уровня (512 Кб) нужно приплюсовать кэш L2 (1 Мб) и кэш L3 (4 Мб).
• Работу с графикой возложил на себя 3D-ускоритель Adreno 660. Он функционирует в паре с
графическим модулем Adreno 665 для обеспечения идеальной визуализации. Частота такого
GPU составляет 700 МГц. Присутствует поддержка DirectX 12, Vulcan 1.1 и OpenCL 2.1. Но
и это еще не все. Отдельный чип Spectra 580 дополнительно обрабатывает изображение,
делая его практически идеальным. Естественно, такой продвинутый и технологичный
процессор не обошелся без поддержки сетей пятого поколения 5G. Причем скорость
загрузки файлов в теории может достигать 7,5 гигабит в секунду благодаря модему
Snapdragon X60. Флагманский чип с удовольствием «дружит» с LPDDR5.
• Поэтому можно смело рассчитывать на полную совместимость с данной 4-канальной
оперативкой, пропускная способность которой составляет до 44 Гбит в секунду. Что
касается частоты ОЗУ, то речь идет о 2750 МГц. Высокое качество звука гарантируют
кодеки Aqstic WCD9385, WCD9380. И, конечно же, при помощи 5 нанометров существенно
уменьшилось энергопотребление, а вот быстродействие, наоборот, значительным образом
увеличилась.
Приобретение компанией Apple P. A. Semi
23 Апреля 2008 года Apple объявила о покупке компании P. A. Semi.
11 июня 2008 года, на ежегодной конференции Worldwide Developer’s
Conference, CEO Apple Стив Джобc заявил, что целью приобретения был
талант инженеров P. A. Semi, который будет использоваться при создании
микросхем для iPod, iPhone и других мобильных
устройств,[8] например, iPad.[9] P.A. Semi заявила, что поставки процессора
PWRficient PA6T-1682M продолжатся, при условии, что лицензия на
разработку процессоров с архитектурой Power (выданная компанией IBM)
может быть передана в покупающую компанию.[10]
Вскоре после покупки Apple тайно подписала с
компанией ARM соглашение, разрешающее разрабатывать собственные
микропроцессоры с архитектурой ARM.
Apple Silicon (ранее Apple Ax) — серия систем на кристалле (СнК,
SoC), используемых в компьютерных устройствах компании Apple:
мобильных (iPhone, iPad, iPod, Apple Watch), телевизионной
приставке Apple TV и компьютерах Mac. В этих системах используются
микропроцессорные ядра с архитектурой ARM. Старший вице-
президент Apple Inc по аппаратным технологиям Джони Сруджи с 2008
года возглавляет разработку и проектирование микропроцессоров серии
Apple Ax[1]. C 10 ноября 2020 года компания Apple начала переход на
10 ноября 2020 компания Apple
представила новый чип для
ноутбуков Apple M1.
Apple M1 – система на чипе (SoC),
вмещающая 16 миллиардов транзисторов,
имеющая 8-ядерный центральный
процессор, 8-ми или 7-ми ядерный
графический процессор, систему Neural
Engine, контроллеры ввода-вывода,
оперативную память и множество других
компонентов.
SoC Apple M1 изготавливается по 5-
нанометровому техпроцессу, основана на
Apple A14 bionic.
Система имеет 4 ядра со сверхвысокой
производительностью и 4
энергоэффективных ядра.
По заявлениям компании Apple, система на
чипе M1 в 3 раза энергоэффективней, чем
аналогичные решения от Intel и не уступает
им по производительности.
• Синтетические тесты показывают, что производительность новых
MacBook в одноядерном тесте на чипе M1 более чем на 50% выше, чем
предыдущих решений компании Apple на топовых процессорах Intel (Intel
i9-9980HK);
• В многоядерном тесте новые MacBook незначительно превосходят по
производительности MacBook на топовых решениях от Intel.
• Реальные тесты подтверждают преимущества Apple M1;
• Поддерживает набор инструкций AArch64, ARMv8-A;
• Производительный кластер имеет микроархитектуру Firestorm и работает
на частоте от 0.6 до 3.204 ГГц, потребляя до 13.8 ватт энергии;
• Энергоэффективный кластер имеет микроархитектуру Icestorm и работает
на частоте от 0.6 до 2.064 ГГц, потребляя до 1.3 ватт энергии;
• Производительный кластер имеет 192 Кб кэша инструкций, 128 Кб кэша
данных L1-уровня и 12 Мб L2-кэша;
• Энергоэффективные ядра имеют 128 Кб кэша инструкций, 64 Кб кэша
данных L1-уровня и 4 Мб кэша;
• Изготовлением занимается TSMC;
• Оперативная память имеет объем 8 или 16 Гб;
• Имеет нейронный сопроцессор, имеющий производительность 11
триллионов операций в секунду.

Вам также может понравиться