Arm64 что это

Arm64 что это

ARM64 и Ты

Несколько запоздалый перевод заинтересовавшего меня блогпоста о том, что в действительности дает 64-битность процессора в iPhone без маркетинговой шелухи. Если текст покажется вам слишком очевидным, пропустите часть «Базовые преимущества и недостатки».

Как только был анонсирован iPhone 5S, технические медия были переполнены недостоверными статьями. К сожалению, написание хороших статей занимает время, а мир технической журналистики больше ценит скорость, чем достоверность. Сегодня, по просьбе нескольких своих читателей, я кратко изложу, что дает 64-bit ARM в iPhone 5S в плане производительности, возможностей и разработки.

64 бита

Давайте для начала рассмотрим что, собственно, 64-битность означает. С этим термином связанно много путаницы, в основном из-за того, что нет единого устоявшегося определения. Однако, существует общее понимание этого термина. «Битность» обычно означает либо размер числового регистра, или размер указателя. К счастью, для большинства современных процессоров, их размер совпадает. Таким образом, 64-битность означает что процессор обладает 64-битными числовыми регистрами и 64-битными указателями.

Базовые преимущества и недостатки

Если вы будете сравнивать идентичные процессоры 32 и 64 битные CPU, вы не найдете больших различий, так что значительность перехода Apple на 64-битные ARM несколько преувеличена. Это важный шаг, но важный, в основном, из-за особенностей ARM и особенностью использования процессора компанией Apple. Тем не менее, некоторые различия имеются. Самым очевидным является 64-битные числовые регистры более эффективно работают с 64-битными числами. Вы можете работать с 64-битными числами и на 32-битном процессоре, но это обычно приводит к работе с двумя 32-битными частями, что работает ощутимо медленнее. 64-битные процессоры, обычно, выполняют операции над 64-битными числами также быстро как и над 32-битными, так что код активно использующий вычисления с 64-битными числами будет работать значительно быстрее.

Не смотря на то, что 64-битность не связана напрямую с объемом адресуемой памяти, она значительно облегчает использование большого объема RAM в рамках одной программы. Программа, запущенная на 32-битном процессоре может адресовать не больше 4GB адресного пространства. Часть памяти выделена под операционную систему и стандартные библиотеки, что оставляет 1-3GB на саму программу. Если у 32-битной системы больше 4GB RAM, то использование всего этого адресного пространства для программы значительно усложняется. Вам придется заняться махинациями вроде последовательного отображение разных частей RAM на часть виртуального адресного пространства или разбивание одной программы на несколько процессов.

Подобные трюки крайне трудозатраны и могут сильно замедлить систему, так что мало кто из программистов реально их использует. На практике, на 32-битных процессорах каждая программа используют до 1-3GB RAM, а вся ценность в обладании большего объема физической оперативной памяти заключается в возможности больше запускать программ одновременно и возможность кеширования больше данных с диска.

Увеличение объема адресного пространства полезно и для систем с небольшим объемом оперативной памяти — memory-mapped файлы, размеры которых могут быть и больше доступной оперативной памяти, т.к. операционная система реально загружает только те части файла, к которым производились обращения и, кроме того, умеет «вытеснять» загруженные данные обратно в файл, освобождая оперативную память. На 32-битных системах нельзя отобразить файлы размером больше 1-3GB. На 64-битных системах, адресное пространство значительно больше, так что такой проблемы нет.

Увеличение размера указателя может быть и ощутимым минусом: таже программа будет использовать больше памяти (возможно, сильно больше) будучи запущенной на 64 битном процессоре. Увеличение используемой памяти также «забивает» кэш, что снижает производительность.

В двух словах: 64-битность может увеличить производительность некоторых частей кода и упрощает некоторые техники, вроде memory-mapped файлов. Однако, производительность может и пострадать из-за увеличения используемой памяти.

ARM64

64-битный процессор в iPhone 5S не просто ARM с увеличенным размером регистров, есть и существенные изменения.

Во-первых, отмечу название: официального название от ARM — «AArch64», однако это — глупое название, печатать которое меня раздражает. Apple называет архитектуру ARM64 и я буду называть также.

ARM64 увеличил вдвое число целочисленных регистров. 32-битный ARM предоставляет 16 целочисленных регистров, из которых один — счетчик команд (program counter), еще два используются для указателя на стэк и регистра связи (link register) и 13 регистров общего назначения. В ARM64 32 целочисленных регистра, с выделенным нулевым регистром, регистром связи и регистром указателя кадра (frame pointer register). Еще один регистр зарезервирован платформой, что оставляет 28 регистров общего назначения.

ARM64 также увеличивает число регистров для чисел с плавающей запятой. Регистры в 32-битных ARM несколько странные, так что сложно сравнивать. У 32-битного ARM 32 32-битных регистров с плавающей запятой, которые могут быть представлены как 16 перекрывающихся 64-битных регистров. Кроме того, есть еще 16 независимых 64-битных регистров. ARM64 упрощает это до 32 неперекрывающихся 128-битных регистров, которые могут быть использован для данных меньшего размера.

Число регистров может значительно влиять на производительность. Память значительно медленнее процессора, и чтение/запись памяти занимает значительно больше времени, чем выполнение инструкций процессора. Процессор пытается исправить это при помощи кэшей, но даже самый быстрый кэш значительно медленнее регистров процессора. Больше регистров — больше данных могут храниться внутри процессора. Насколько это влияет на производительность зависит от конкретного кода и эффективности компилятора, который оптимизирует использование регистров. Когда архитектура Intel перешла от 32 к 64 битам, число регистров увеличилось с 8 до 16, и это было значительное изменение производительности. У ARM уже было больше регистров чем у 32-битной архитектуры Intel, так что увеличение регистров хоть и меньше повлияет на производительность, но это изменение все еще будет заметно.

ARM64 также привнес существенные изменения помимо увеличения числа регистров.

Большинство 32-битных инструкций ARM могут выполняться/не выполняться в зависимости от состояние регистра-условия. Это позволяет транслировать условные выражения (if-statements) без использования ветвления. Предполагалось, что это увеличит производительность, однако, судя по тому, что в ARM64 от этой возможности отказались, она порождала больше проблем, чем давала пользы.

В ARM64 набор SIMD (одна-инструкция-много-данных) NEON полностью поддерживает стандарт IEEE754 для чисел с плавающей запятой с двойной точностью, в то время как 32-битная версия NEON поддерживала только одинарную точность и не в точности следовала стандарту для некоторых битов.

В ARM64 добавили специализированные инструкции для AES шифрования и SHA-1 & SHA-256 хешей. Не слишком полезное в общем, однако существенный бонус если вы занимаетесь именно этими вопросами.

В целом, самым важным отличаем является увеличение числа регистров общего назначения и полная поддержка IEEE754-совметимой арифметики на числах с двойной точностью в NEON. Это может дать ощутимый прирост в производительности в большом числе мест.

Совместимость с 32-битным приложениями

Важно отметить, что A7 включает в себя 32-битный режим совместимости, который позволяет запускать 32-битные приложения без каких либо изменений. Это означает, что iPhone 5S может исполнять любые старые приложения без какого-то влияния на производительность.

Изменения в системе периода исполнения

Apple использует преимущества новой архитектуры в своих библиотеках. Так как им нет надобности беспокоиться о бинарной обратной совместимости при таких изменениях, это отличное время чтобы внести изменения которые в противном случае «поломали» уже существующие приложения.

В Max OS X 10.7 Apple ввела меченные указатели (tagged pointers). Меченные указатели позволяют хранить некоторые классы с небольшим количеством данных в экземпляре напрямую в указателе. Это позволяет избежать выделений памяти в некоторых случаях, например NSNumber и может дать существенный прирост производительности. Меченные указатели поддерживаются только на 64-битной платформе, частично из-за вопроса производительности, а частично из-за того что в 32-битном указателе не так много остается места под «метки». Видимо по-этому, у iOS не было поддержки меченных указателей. Таким образом, в ARM64 в рантайме Objective-C включена поддержка меченных указателей, что дает те же преимущества, что в Mac.

Не смотря на то, что размер указателя составляет 64 бита, не все эти биты на самом деле используются. В Mac OS X на x86-64 используется только 47 битов. В iOS на ARM64 используется еще меньше — только 33 бита. Если маскировать эти биты каждый раз перед использованием то можно использовать остальные биты чтобы хранить дополнительные данные. Это позволило внести одно из самых значительных изменений в рантайм Objective-C за всю его историю.

Переосмысление указателя isa

Большая часть информации в этой секции почерпана из статьи Грега Паркера. Во первых, для освежения памяти: объекты в Objective-C представляют выделенные блоки памяти. Первый часть, размером с указатель, это isa. Обычно, isa это указатель на класс объекта. Чтобы узнать больше о том, как объекты хранятся в памяти, читайте мою другую статью.

Использовать весь размер указателя на указатель isa несколько расточительно, особенно на 64-битной платформе, которая не использует все 64-бита. ARM64 на iOS реально использует 33 бита, оставляя 31 бит для других вещей. Классы в памяти выровнены по границе 8 байт, так что последние 3 бита можно отбросить, что дает 34 бита из isa доступные для хранения дополнительной информации. И Apple-овский рантайм в ARM64 использует это для повышения производительности.

Наверно, самой важной оптимизацией стало встраивание (inline) счетчика ссылок. Практически все объекты в Objective-C обладают счетчиком ссылок (за исключение неизменяемых объектов, таких как литералы NSString) и операции retain/release, которые меняют этот счетчик случаются очень часто. Это особенно критично для ARC, который вставляет вызовы retain/release чаще, чем бы это делал программист. Таким образом, высокая производительность retain/release методов крайне важна.

Суммарно, это существенный выигрыш. Мои бенчмарки показали, что создание и удаление простого объекта занимает 380нс на 5S в 32-битном режиме, в то время как в 64-битном только 200нс. Если хоть один экземпляр когда-либо имел слабую ссылку на себя, то в 32-битном режим время удаления для всех увеличивалось до 480нс, в то время как в 64-битном режиме время осталось в районе 200нс для всех экземпляров, на которых слабых ссылок не было.

Короче говоря, улучшения в рантайме таковы, что в 64-битном режиме время аллокации занимают 40-50% от времени аллокации в 32-битном режиме. Если ваше приложение создает и удаляет много объектов, это может оказаться существенным.

Заключение

64-битность A7 не просто маркетинговая уловка, но это и не поражающий воображение прорыв который позволит создавать новый класс приложений. Истина, как всегда, лежит посередине.

Один только факт перехода на 64 бита дает немного. Это в некоторых случая ускоряет приложения, несколько увеличивает объем используемой памяти большинство программ. В общем, большой разницы нет.

Архитектура ARM изменилась не только в 64-битности. Увеличенное число регистров и пересмотренный, модернизированный набор инструкций дает неплохой прирост производительности по сравнению с 32-битным ARM.

Apple использовала переход на новую архитектуру для улучшения в рантайме. Основное изменение — встраиваемый (inlined) счетчик ссылок, который позволяет избежать дорогого поиска по хеш-таблице. Так операции retain/release очень часты в Objective-C, это существенный выигрыш. Удаление ресурсов в зависимости от флагов делает удаление объектов почти вдвое быстрее. Меченные (tagged) указатели также добавляют производительность и уменьшают потребление памяти.

ARM64 — приятное добавление от Apple. Мы все знали, что это рано или поздно случится, но мало кто ожидал что так скоро. Но оно есть, и это отлично.

Источник

ARM против x86: В чем разница между двумя архитектурами процессоров?

Вы наверняка знаете, что мир процессоров разбит на два лагеря. Если вы смотрите это видео со смартфона, то для вас работает процессор на архитектуре ARM, а если с ноутбука, для вас трудится чип на архитектуре x86.

А теперь еще и Apple объявила, что переводит свои Mac на собственные процессоры Apple Silicon на архитектуре ARM. Мы уже рассказывали, почему так происходит. А сегодня давайте подробно разберемся, в чем принципиальные отличия x86 и ARM. И зачем Apple в это все вписалась?

Итак, большинство мобильных устройств, iPhone и Android’ы работают на ARM’е. Qualcomm, HUAWEI Kirin, Samsung Exynos и Apple A13/A14 Bionic — это все ARM-процессоры.

А вот на компьютере не так — там доминирует x86 под крылом Intel и AMD. Именно поэтому на телефоне мы не можем запустить Word с компьютера.

x86 — так называется по последним цифрам семейства классических процессоров Intel 70-80х годов.

Arm64 что это

Чем же они отличаются?

Есть два ключевых отличия.

Первое — это набор инструкций, то есть язык который понимает процессор

Второе отличие — это микроархитектура. Что это такое?

От того на каком языке говорят процессоры, зависит и то, как они проектируются. Потому как для выполнения каждой инструкции на процессоре нужно расположить свой логический блок. Соответственно, разные инструкции — разный дизайн процессора. А дизайн — это и есть микроархитектура.

Но как так произошло, что процессоры стали говорить на разных языках?

История CISC

Arm64 что это
Памятка программиста, 1960-е годы. Цифровой (машинный) код «Минск-22».

Всё началось в 1960-х. Поначалу программисты работали с машинным кодом, то есть реально писали нолики и единички. Это быстро всех достало и появился Assembler. Низкоуровневый язык программирования, который позволял писать простые команды типа сложить, скопировать и прочее. Но программировать на Assembler’е тоже было несладко. Потому как приходилось буквально “за ручку” поэтапно описывать процессору каждое его действие.

Поэтому, если бы вы ужинали с процессором, и попросили передать его вам соль, это выглядело бы так:

Этот подход стал настоящим спасением как для разработчиков, так и для бизнеса. Захотел клиент новую инструкцию — не проблема, были бы деньги — мы сделаем. А деньги у клиентов были.

Недостатки CISC

Но был ли такой подход оптимальным. С точки зрения разработчиков — да. Но вот микроархитектура страдала.

Представьте, вы купили квартиру и теперь вам нужно обставить её мебелью. Площади мало, каждый квадратный метр на счету. И вот представьте, если бы CISC-процессор обставил мебелью вам гостиную, он бы с одной стороны позаботился о комфорте каждого потенциального гостя и выделил бы для него своё персональное место.

С другой стороны, он бы не щадил бюджет. Диван для одного человека, пуф для другого, кушетка для третьего, трон из Игры Престолов для вашей Дейенерис. В этом случае площадь комнаты бы очень быстро закончилась. Чтобы разместить всех вам бы пришлось увеличивать бюджет и расширять зал. Это не рационально. Но самое главное, CISC-архитектура существует очень давно и те инструкции, которые были написаны в 60-х годах сейчас уже вообще не актуальны. Поэтому часть мебели, а точнее исполнительных блоков, просто не будут использоваться. Но многие из них там остаются. Поэтому появился RISC…

Преимущества RISC

С одной стороны писать на Assembler’е под RISC процессоры не очень-то удобно. Если в лоб сравнивать код, написанный под CISC и RISC процессоры, очевидно преимущество первого.

Так выглядит код одной и той же операции для x86 и ARM.

x86

Представьте, что вы проектируете процессор. Расположение блоков на х86 выглядело бы так.

Arm64 что это

Каждый цветной квадрат — это отдельные команды. Их много и они разные. Как вы поняли, здесь мы уже говорим про микроархитектуру, которая вытекает из набора команд. А вот ARM-процессор скорее выглядит так.

Arm64 что это

Ему не нужны блоки, созданные для функций, написанных 50 лет назад.

По сути, тут блоки только для самых востребованных команд. Зато таких блоков много. А это значит, что можно одновременно выполнять больше базовых команд. А раритетные не занимают место.

Еще один бонус сокращенного набора RISC: меньше места на чипе занимает блок по декодированию команд. Да, для этого тоже нужно место. Архитектура RISC проще и удобнее, загибайте пальцы:

Поэтому наши смартфоны, которые работают на ARM процессорах с архитектурой RISC, долго живут, не требуют активного охлаждения и такие быстрые.

Лицензирование

Но это все отличия технические. Есть отличия и организационные. Вы не задумывались почему для смартфонов так много производителей процессоров, а в мире ПК на x86 только AMD и Intel? Все просто — ARM это компания которая занимается лицензированием, а не производством.

Даже Apple приложила руку к развитию ARM. Вместе с Acorn Computers и VLSI Technology. Apple присоединился к альянсу из-за их грядущего устройства — Newton. Устройства, главной функцией которого было распознавание текста.

Даже вы можете начать производить свои процессоры, купив лицензию. А вот производить процессоры на x86 не может никто кроме синей и красной компании. А это значит что? Правильно, меньше конкуренции, медленнее развитие. Как же так произошло?

Arm64 что это

Ну окей. Допустим ARM прекрасно справляется со смартфонами и планшетами, но как насчет компьютеров и серверов, где вся поляна исторически поделена? И зачем Apple вообще ломанулась туда со своим Apple Silicon.

Что сейчас?

Допустим мы решили, что архитектура ARM более эффективная и универсальная. Что теперь? x86 похоронен?

На самом деле, в Intel и AMD не дураки сидят. И сейчас под капотом современные CISC-процессоры очень похожи на RISC. Постепенно разработчики CISC-процессоров все-таки пришли к этому и начали делать гибридные процессоры, но старый хвост так просто нельзя сбросить.

Arm64 что это

Но уже достаточно давно процессоры Intel и AMD разбивают входные инструкции на более мелкие микро инструкции (micro-ops), которые в дальнейшем — сейчас вы удивитесь — исполняются RISC ядром.

Да-да, ребята! Те самые 4-8 ядер в вашем ПК — это тоже RISC-ядра!

Надеюсь, тут вы окончательно запутались. Но суть в том, что разница между RISC и CISC-дизайнами уже сейчас минимальна.

А что остается важным — так это микроархитектура. То есть то, насколько эффективно все организовано на самом камне.

Ну вы уже наверное знаете, что Современные iPad практически не уступают 15-дюймовым MacBook Pro с процессорами Core i7 и Core i9.

Arm64 что это

А что с компьютерами?

Недавно компания Ampere представила свой 80-ядерный ARM процессор. По заявлению производителя в тестах процессор Ampere показывает результат на 4% лучше, чем самый быстрый процессор EPYC от AMD и потребляет на 14% меньше энергии.

Arm64 что это

Arm64 что это

Компания Ampere лезет в сегменты Cloud и Workstation, и показывает там отличные цифры. Самый быстрый суперкомпьютер в мире сегодня работает на ARM ISA. С обратной стороны, Intel пытается все таки влезть в сегмент low power и для этого выпускает новый интересный процессор на микроархитектуре lakefield.

И Apple та компания, которая способна мотивировать достаточное количество разработчиков пилить под свой ARM. Но суть этого перехода скорее не в противостоянии CISC и RISC. Поскольку оба подхода сближаются, акцент смещается на микроархитектуру, которую делает Apple для своих мобильных устройств. И судя по всему микроархитектура у них крута. И они хотели бы ее использовать в своих компьютерах.

И если бы Intel лицензировал x86 за деньги другим людям, то вероятно Apple просто адаптировали свою текущую микроархитектуру под x86. Но так как они не могут этого сделать, они решили просто перейти на ARM. Проблема для нас с микроархитектурой в том, что она коммерческая тайна. И мы про нее ничего не знаем.

Итоги

Arm64 что это

Спрос на ARM в итоге вырастет. Для индустрии это не просто важный шаг, а архиважный. Линус Торвальдс говорил, что пока рабочие станции не станут работать на ARM — на рынке серверов будут использовать x86.

И вот это случилось — в перспективе это миллионы долларов, вложенных в серверные решения. Что, конечно, хорошо и для потребителей. Нас ждет светлое будущее и Apple, действительно, совершила революцию!

Редактор материала: Антон Евстратенко. Этот материал помогли подготовить наши зрители Никита Куликов и Григорий Чирков. Спасибо ребята!

Источник

Что такое ARM

Arm64 что это

Название ARM, безусловно, слышали все, кто интересуется мобильными технологиями. Многие понимают данную аббревиатуру как тип процессора для смартфонов и планшетов, другие уточняют, что это вовсе не процессор, а его архитектура. И уж точно мало, кто вникал в историю появления ARM. В этой статье мы попробуем разобраться во всех этих нюансах и расскажем зачем нужны процессоры ARM современным гаджетам.

Содержание

Краткий экскурс в историю

По запросу «ARM» Википедия выдает два значения этой аббревиатуры: Acorn RISC Machine и Advanced RISC Machines. Начнем по порядку. В 1980-х годах в Великобритании была основана компания Acorn Computers, которая начинала свою деятельность созданием персональных компьютеров. В то время Acorn еще называли «британской Apple». Решающим периодом для компании стал конец 80-х годов, когда ее главный инженер воспользовался решением двух выпускников местного университета, придумавших новый вид процессорной архитектуры с сокращенным набором команд (RISC). Так появился первый компьютер на базе процессора Acorn Risc Machine. Успех не заставил себя долго ждать. В 1990 году британцы заключили договор с Apple и вскоре начали работу над новой версией чипсета. В итоге команда разработчиков сформировала компанию под названием Advanced RISC Machines по аналогии с процессором. Чипы с новой архитектурой также стали именоваться Advanced Risc Machine или сокращенно ARM.

Arm64 что это

Технические особенности чипов ARM

Существует два типа современных процессорных архитектур: CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). К архитектуре CISC относится семейство процессоров x86 (Intel и AMD), к архитектуре RISC – семейство ARM. Основным формальным отличием RISC от CISC и, соответственно, x86 от ARM является сокращенный набор команд, используемый в RISC-процессорах. Так, например, каждая инструкция в CISC-архитектуре трансформируется в несколько RISC-команд. В добавок, RISC-процессоры используют меньше транзисторов и, таким образом, потребляют меньше энергии.

Arm64 что это

Основным приоритетом ARM-процессоров является отношение производительности к потреблению энергии. ARM имеет большее соотношение производительности на ватт чем x86. Вы можете получить необходимую мощность из 24 ядер x86 или из сотен маленьких ядер ARM с низким энергопотреблением. Разумеется, один даже самый мощный процессор на архитектуре ARM никогда не будет сопоставим по мощности с Intel Core i7. Но тот же Intel Core i7 нуждается в активной системе охлаждения и никогда не поместится в корпус телефона. Здесь ARM вне конкуренции. С одной стороны, это выглядит привлекательным вариантом для построения суперкомпьютера с использованием миллиона ARM-процессоров вместо тысячи процессоров x86. С другой стороны, нельзя однозначно сравнивать две архитектуры. В чем-то преимущество будет за ARM, а в чем-то – за x86.

Однако называть чипы архитектуры ARM процессорами не совсем корректно. Кроме нескольких процессорных ядер, они также включают другие компоненты. Наиболее подходящим будет термин «однокристальная система» или «система на кристалле» (SoC). Современные однокристальные системы для мобильных устройств включают контроллер оперативной памяти, графический ускоритель, видеодекодер, аудиокодек и модули беспроводной связи. Как уже было сказано ранее, отдельные компоненты чипсета могут быть разработаны сторонними производителями. Наиболее ярким примером этого являются графические ядра, разработкой которых кроме ARM Limited (графика Mali), занимаются Qualcomm (Adreno), NVIDIA (GeForce ULP) и Imagination Technologies (PowerVR).

Arm64 что это

На практике это выглядит следующим образом. Большинство бюджетных мобильных устройств на Android поставляются с чипсетами производства компании MediaTek, которая практически неизменно следует инструкциям ARM Limited и комплектует их ядрами Cortex-A и графикой Mali (реже PowerVR).

Arm64 что это

А-бренды для своих флагманских устройств зачастую используют чипсеты производства Qualcomm. К слову, последние чипы Qualcomm Snapdragon (820, 821, 835) оснащены полностью кастомными ядрами Kryo – для центрального процессора и Adreno – для графического ускорителя.

Arm64 что это

Что касается Apple, то для iPhone и iPad компания использует собственные чипы А-серии с графическим ускорителем PowerVR, производством которых занимаются сторонние компании. Так, в iPhone 7 и iPhone 7 Plus установлен 64-битный четырехъядерный процессор A10 Fusion и графический процессор PowerVR GT7600.

Arm64 что это

Актуальной на момент написания статьи считается архитектура процессоров семейства ARMv8. В ней впервые стал использоваться 64-битный набор инструкций и появилась поддержка более 4 ГБ оперативной памяти. Архитектура ARMv8 имеет обратную совместимость с 32-битными приложениями. Наиболее эффективным и самым мощным процессорным ядром, разработанным ARM Limited, на данный момент является Cortex-A73, и большинство производителей однокристальных систем используют его без изменений.

Arm64 что это

Cortex-A73 обеспечивает на 30% более высокую производительность по сравнению с Cortex-А72 и поддерживает полный набор ARMv8-архитектуры. Максимальная частота процессорного ядра составляет 2,8 ГГц.

Сфера использования ARM

Наибольшую славу ARM принесло развитие мобильных устройств. В преддверии массового производства смартфонов и другой портативной техники энергоэффективные процессоры пришлись как нельзя кстати. Кульминацией развития ARM Limited стал 2007 год, когда британская компания возобновила партнерство с Apple, а спустя некоторое время купертиновцы представили свой первый iPhone с процессором на архитектуре ARM. В последующем однокристальная система на базе архитектуры ARM стала неизменным компонентом практически всех смартфонов, представленных на рынке.

Arm64 что это

Портфолио компании ARM Limited не ограничивается только ядрами семейства Cortex-A. Фактически, под маркой Cortex существует три серии процессорных ядер, которые обозначаются буквами A, R, M. Семейство ядер Cortex-А, как мы уже знаем, является наиболее мощными. Их в основном используют в смартфонах, планшетах, ТВ-приставках, спутниковых ресиверах, телевизорах, автомобильных системах, робототехнике. Процессорные ядра Cortex-R оптимизированы для выполнения высокопроизводительных задач в режиме реального времени, поэтому такие чипы встречаются в медицинском оборудовании, автономных системах безопасности, носителях информации. Основной задачей семейства Cortex-M является простота и низкая стоимость. Технически это самые слабые процессорные ядра с наиболее низким энергопотреблением. Процессоры на базе таких ядер используются практически везде, где от устройства требуется минимальная мощность и низкая стоимость: сенсоры, контроллеры, сигнализации, дисплеи, умные часы и другая техника.

В общем, большинство современных устройств от маленьких до больших, нуждающихся в центральном процессоре, используют чипы ARM. Огромным плюсом при этом является тот факт, что архитектура ARM поддерживается множеством операционных систем на платформе Linux (в том числе Android и Chrome OS), iOS, и Windows (Windows Phone).

Конкуренция на рынке и перспективы на будущее

Стоит признать, на данный момент у ARM нет серьезных конкурентов. И по большому счету это связано с тем, что компания ARM Limited в определенное время сделала правильный выбор. А ведь в самом начале своего пути компания выпускала процессоры для ПК и даже пыталась конкурировать с Intel. После того, как ARM Limited поменяла направление своей деятельности, ей также было непросто. Тогда программный монополист в лице Microsoft, заключив партнерское соглашение с Intel, не оставил никаких шансов другим производителям, в том числе и ARM Limited – ОС Windows просто не работала на системах с процессорами ARM. Как бы парадоксально это не звучало, но сейчас ситуация может кардинально измениться, и уже ОС Windows готова поддерживать процессоры на этой архитектуре.

Arm64 что это

На волне успехов чипов ARM компания Intel предприняла попытку создать конкурентоспособный процессор и вышла на рынок с чипом Intel Atom. Для этого ей потребовалось гораздо больше времени, нежели ARM Limited. В производство чипсет поступил в 2011 году, но, как говорится, поезд уже ушел. Intel Atom является CISC-процессором с архитектурой x86. Инженеры компании добились более низкого энергопотребления, нежели в ARM, однако на текущий момент разнообразный мобильный софт имеет плохую адаптацию к архитектуре x86.

Arm64 что это

В прошлом году Intel отказалась от нескольких ключевых решений в дальнейшем развитии мобильных систем. Фактически компания признала провал и отказалась от разработки процессоров для мобильных устройств, поскольку они стали нерентабельными. Единственным крупным производителем, который комплектовал свои смартфоны чипсетами Intel Atom, был ASUS. Однако массовое использование Intel Atom все же получил в нетбуках, неттопах и других портативных устройствах.

Arm64 что это

Положение ARM Limited на рынке уникальное. На данный момент практически все производители пользуются ее разработками. При этом у компании нет собственных заводов. Это не мешает ей стоять в одном ряду с Intel и AMD. История ARM включает еще один любопытный факт. Не исключено, что сейчас технология ARM могла бы принадлежать компании Apple, которая стояла в основе формирования ARM Limited. По иронии судьбы в 1998 году купертиновцы, переживая кризисные времена, продали свою долю. Теперь Apple вынуждена наряду с другими компаниями покупать лицензию на процессоры ARM, используемые в iPhone и iPad.

Сейчас процессоры ARM способны выполнять серьезные задачи. В ближайшей перспективе – использование их в серверах, в частности такие решения уже имеют дата-центры Facebook и PayPal. В эпоху развития интернета вещей (IoT) и «умных» бытовых устройств чипы ARM получили еще большую востребовательность. Так что самое интересное у ARM еще впереди.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

ARM (Advanced RISC Machine)

Многие лицензиаты разрабатывают собственные версии ядер на базе ARM: DEC StrongARM, Freescale i.MX, Intel XScale, NVIDIA Tegra, ST-Ericsson Nomadik, Krait в Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, LG H13, Apple A6 и HiSilicon K3.

Содержание

Процессоры ARM

В настоящее время значимыми считаются несколько семейств процессоров ARM:

Популярное семейство микропроцессоров xScale фирмы Marvell (до 27 июня 2007 года — Intel) — расширение архитектуры ARM9, дополненной набором инструкций Wireless MMX, специально разработанных компанией Intel для поддержки мультимедийных приложений. Здесь можно ознакомиться с версиями ядра ARM.

Архитектура

Уже давно существует справочное руководство по архитектуре ARM, что разграничивает все типы интерфейсов, которые поддерживает ARM, так как детали реализации каждого типа процессора могут отличаться.

Архитектура развивалась с течением времени, и, начиная с ARMv7, были определены три профиля:

Профили могут поддерживать меньшее количество команд (команды определенного типа).

AArch64

AArch64 это имя для новой 64-разрядной ARM архитектуры, также известной как ARMv8 или ARM64.

AArch64 увеличил вдвое число целочисленных регистров. 32-битный ARM предоставляет 16 целочисленных регистров, из которых один — счетчик команд (англ. program counter ), еще два используются для указателя на стэк и регистра связи (англ. link register ) и 13 регистров общего назначения. В AArch64 32 целочисленных регистра, с выделенным нулевым регистром, регистром связи и регистром указателя кадра (англ. frame pointer register ). Еще один регистр зарезервирован платформой, что оставляет 28 регистров общего назначения.

AArch64 также увеличивает число регистров для чисел с плавающей запятой. Регистры в 32-битных ARM несколько странные, так что сложно сравнивать. У 32-битного ARM 32 32-битных регистров с плавающей запятой, которые могут быть представлены как 16 перекрывающихся 64-битных регистров. Кроме того, есть еще 16 независимых 64-битных регистров. AArch64 упрощает это до 32 неперекрывающихся 128-битных регистров, которые могут быть использован для данных меньшего размера. Преимущества AArch64:

Насколько это влияет на производительность зависит от конкретного кода и эффективности компилятора, который оптимизирует использование регистров. Когда архитектура Intel перешла от 32 к 64 битам, число регистров увеличилось с 8 до 16, и это было значительное изменение производительности.У ARM уже было больше регистров чем у 32-битной архитектуры Intel, так что увеличение регистров хоть и меньше повлияет на производительность, но это изменение все еще будет заметно.

AArch64 также привнес существенные изменения помимо увеличения числа регистров.

Большинство 32-битных инструкций ARM могут выполняться/не выполняться в зависимости от состояние регистра-условия. Это позволяет транслировать условные выражения (if-statements) без использования ветвления. Предполагалось, что это увеличит производительность, однако, судя по тому, что в AArch64 от этой возможности отказались, она порождала больше проблем, чем давала пользы.

В AArch64 набор SIMD (англ. single instruction, multiple data — одна инструкция, много данных) NEON полностью поддерживает стандарт IEEE754 для чисел с плавающей запятой с двойной точностью, в то время как 32-битная версия NEON поддерживала только одинарную точность и не в точности следовала стандарту для некоторых битов. В AArch64 добавили специализированные инструкции для AES шифрования и SHA-1 & SHA-256 хешей. Не слишком полезное в общем, однако существенный бонус если вы занимаетесь именно этими вопросами.

В целом, самым важным отличаем является увеличение числа регистров общего назначения и полная поддержка IEEE754-совметимой арифметики на числах с двойной точностью в NEON. Это может дать ощутимый прирост в производительности в большом числе мест.

ARMhf

ARMhf код может выполняться только на процессорах с аппаратной поддержкой вычислений с плавающей точкой. В настоящее время Debian ARMhf порт требует, по крайней мере, центральный процессор ARMv7 с Thumb-2 и VFP3D16.

Многие приложения для управления в режиме реального времени в промышленных и автомобильных полей выгоду из динамического диапазона и точности с плавающей точкой, предложенной ARM VFP. Автомобильная трансмиссия, антиблокировочная тормозная, контроль тяги, и активные системы подвески все критически важных приложений, где точность и предсказуемость являются необходимыми требованиями.

До ARMv7 архитектуры VFP стоял Вектор с плавающей точкой архитектуры, используется для векторных операций.

Там были три основные версии VFP на сегодняшний день:

Режимы

Процессор может находиться в одном из следующих операционных режимов:

Режим процессора переключается, когда возникает соответствующее исключение, или же при модификации регистра статуса.

Набор команд

Чтобы сохранить устройство чистым, простым и быстрым, оригинальное изготовление ARM было исполнено без микрокода, как и более простой 8-разрядный процессор 6502, используемый в предыдущих микрокомпьютерах от Acorn Computers. Набор команд ARM — режим, в котором исполняется 32-битный набор команд.

Набор команд Thumb

Для улучшения плотности кода процессоры, начиная с ARM7TDMI, снабжены режимом «thumb». В этом режиме процессор выполняет альтернативный набор 16-битных команд. Большинство из этих 16-разрядных команд переводятся в нормальные команды ARM. Уменьшение длины команды достигается за счёт сокрытия некоторых операндов и ограничения возможностей адресации по сравнению с режимом полного набора команд ARM.

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

Аппаратные средства типа Game Boy Advance, как правило, имеют небольшой объём оперативной памяти, доступной с полным 32-битным информационным каналом. Но большинство операций выполняется через 16-битный или более узкий информационный канал. В этом случае имеет смысл использовать Thumb-код и вручную оптимизировать некоторые тяжелые участки кода, используя переключение в режим полных 32-битных инструкций ARM.

Первым процессором с декодером Thumb-команд был ARM7TDMI. Все процессоры семейства ARM9, а также XScale, имели встроенный декодер Thumb-команд.

Набор команд Thumb-2

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.

Набор команд Jazelle

Jazelle — это технология, которая позволяет байткоду Java исполняться прямо в архитектуре ARM в качестве 3-го состояния исполнения (и набора команд) наряду с обычными командами ARM и режимом Thumb. Поддержка технологии Jazelle обозначается буквой «J» в названии процессора — например, ARMv5TEJ. Данная технология поддерживается, начиная с архитектуры ARMv6, хотя новые ядра содержат лишь ограниченные реализации, которые не поддерживают аппаратного ускорения.

ARMv8 и набор команд ARM 64 бит

В конце 2011 года была опубликована новая версия архитектуры, ARMv8. В ней появилось определение архитектуры AArch64, в которой исполняется 64-битный набор команд A64. Поддержка 32-битных команд получила название A32 и исполняется на архитектурах AArch32. Инструкции Thumb поддерживаются в режиме T32, только при использовании 32-битных архитектур. Допускается исполнение 32-битных приложений в 64-битной ОС, и запуск виртуализованной 32-битной ОС при помощи 64-битного гипервизора. [Источник 7] Applied Micro, AMD, Broadcom, Calxeda, HiSilicon, Samsung, STM и другие заявили о планах использовать ARMv8. Ядра Cortex-A53 и Cortex-A57, поддерживающие ARMv8, были представлены компанией ARM 30 октября 2012 года. [Источник 8]

Как AArch32, так и AArch64, поддерживают VFPv3, VFPv4 и advanced SIMD (NEON). Также добавлены криптографические инструкции для работы с AES, SHA-1 и SHA-256.

Функции RISC

Архитектура ARM обладает следующими особенностями RISC:

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

Условное исполнение

Одно из существенных отличий архитектуры ARM (изначальная архитектура) от других архитектур ЦПУ — так называемая предикация, то есть возможность условного исполнения команд. Под «условным исполнением» здесь понимается то, что команда будет выполнена или проигнорирована в зависимости от текущего состояния флагов состояния процессора. В Thumb и Arm 64 предикация не используется — в первом режиме для неё нет места в команде (всего 16 бит), а во втором предикация бессмысленна и сложна для реализации на суперскалярных архитектурах.

В то время как для других архитектур таким свойством, как правило, обладают только команды условных переходов, в архитектуру ARM была заложена возможность условного исполнения практически любой команды. Это было достигнуто добавлением в коды их инструкций особого 4-битового поля (предиката). Одно из его значений зарезервировано на то, что инструкция должна быть выполнена безусловно, а остальные кодируют то или иное сочетание условий (флагов). С одной стороны, с учётом ограниченности общей длины инструкции, это сократило число битов, доступных для кодирования смещения в командах обращения к памяти, но с другой — позволило избавляться от инструкций ветвления при генерации кода для небольших if-блоков.

Пример, обычно рассматриваемый для иллюстрации — основанный на вычитании алгоритм Евклида. В языке C он выглядит так:

А на ассемблере ARM — так:

Из кода видно, что использование предикации позволило полностью избежать ветвления в операторах else и then. Заметим, что если Ri и Rj равны, то ни одна из SUB-инструкций не будет выполнена, полностью убирая необходимость в ветке, реализующей проверку while при каждом начале цикла, что могло быть реализовано, например, при помощи инструкции SUBLE (меньше либо равно).

Один из способов, которым уплотнённый (Thumb) код достигает большей экономии объёма — это именно удаление 4-битового предиката из всех инструкций, кроме ветвлений.

Другие особенности

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

может быть преобразовано в команду из одного слова и одного цикла в ARM:

Это приводит к тому, что типичные программы ARM становятся плотнее, чем обычно, с меньшим доступом к памяти. Таким образом, конвейер используется гораздо более эффективно. Даже несмотря на то, что ARM работает на скоростях, которые многие бы сочли низкими, он довольно-таки легко конкурирует с многими более сложными архитектурами ЦПУ.

ARM-процессор также имеет некоторые особенности, редко встречающиеся в других архитектурах RISC — такие, как адресация относительно счётчика команд (на самом деле счётчик команд ARM — это один из 16 регистров), а также пре- и пост-инкрементные режимы адресации.

Другая особенность, что стоит отметить, — это то, что некоторые ранние ARM-процессоры (до ARM7TDMI), например, не имеют команд для хранения 2-байтных чисел. Таким образом, строго говоря, для них невозможно сгенерировать эффективный код, который бы вел себя так, как ожидается от объектов С, типа «volatile int16_t».

Конвейер и другие аспекты реализации

ARM7 и более ранние версии имеют трехступенчатый конвейер. Это ступени переноса, декодирования и исполнения. Более производительные архитектуры, типа ARM9, имеют более сложные конвейеры. Cortex-a8 имеет 13-ступенчатый конвейер.

Сопроцессоры

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

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

Усовершенствованный 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 операций единовременно.

Один из недостатков (или же особенностью) усовершенствованного SIMD — то, что сопроцессор выполняет команды усовершенствованного SIMD с достаточно значительной задержкой относительно кода основного процессора, задержка достигает двух десятков тактов и более (зависит от архитектуры и конкретных условий). По этой причине при попытке основного процессора воспользоваться результатами вычисления сопроцессора исполнение будет заморожено на значительное время.

Технология VFP (Vector Floating Point, вектора чисел с плавающей запятой) — расширение сопроцессора в архитектуре ARM. Она производит низкозатратные вычисления над числами с плавающей запятой одинарной/двойной точности, в полной мере соответствующие стандарту ANSI/IEEE Std 754—1985 Standard for Binary Floating-Point Arithmetic. VFP производит вычисления с плавающей запятой, подходящие для широкого спектра приложений — например, для КПК, смартфонов, сжатие звука, трёхмерной графики и цифрового звука, а также принтеров и телеприставок. Архитектура VFP также поддерживает исполнение коротких векторных команд. Но, поскольку процессор выполняет операции последовательно над каждым элементом вектора, то VFP нельзя назвать истинным SIMD-набором инструкций. Этот режим может быть полезен в графике и приложениях обработки сигнала, так как он позволяет уменьшить размер кода и выработку команд.

Другие сопроцессоры с плавающей запятой и/или SIMD, находящиеся в ARM-процессорах, включают в себя FPA, FPE, iwMMXt. Они обеспечивают ту же функциональность, что и VFP, но не совместимы с ним на уровне опкодов.

Расширения безопасности

Расширения безопасности, позиционируемые как TrustZone Technology, находятся в ARMv6KZ и других, более поздних, профилированных на приложениях архитектурах. Оно обеспечивает низкозатратную альтернативу добавлению специального ядра безопасности, обеспечивая 2 виртуальных процессора, поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения переключаться между двумя состояниями, называемыми «миры» (чтобы избежать путаницы с названиями возможных доменов), чтобы не допустить утечку информации из более важного мира в менее важный. Этот переключатель миров обычно ортогонален всем другим возможностям процессора. Таким образом, каждый мир может работать независимо от других миров, используя одно и то же ядро. Память и периферия соответственно изготавливаются с учетом особенностей мира ядра, и могут использовать это, чтобы получить контроль доступа к секретам и кодам ядра. Типичные приложения TrustZone Technology должны запускать полноценную операционную систему в менее важном мире, и компактный, специализированный на безопасности, код в более важном мире, позволяя Digital Rights Management’у намного точнее контролировать использование медиа на устройствах на базе ARM, и предотвращая несанкционированный доступ к устройству.

На практике же, так как конкретные детали реализации TrustZone остаются собственностью компании и не разглашаются, остается неясным, какой уровень безопасности гарантируется для этой модели угроз.

Отладка

Все современные процессоры ARM включают аппаратные средства отладки, так как без них отладчики ПО не смогли бы выполнить самые базовые операции типа остановки, отступа, установки контрольных точек после перезагрузки.

Архитектура ARMv7 определяет базовые средства отладки на архитектурном уровне. К ним относятся точки останова, точки просмотра и выполнение команд в режиме отладки. Такие средства были также доступны с модулем отладки EmbeddedICE. Поддерживаются оба режима — остановки и обзора. Реальный транспортный механизм, который используется для доступа к средствам отладки, не специфицирован архитектурно, но реализация, как правило, включает поддержку JTAG.

Существует отдельная архитектура отладки «с обзором ядра», которая не требуется архитектурно процессорами ARMv7.

Регистры

ARM предоставляет 31 регистр общего назначения разрядностью 32 бит. В зависимости от режима и состояния процессора пользователь имеет доступ только к строго определённому набору регистров. В ARM state разработчику постоянно доступны 17 регистров:

Во всех режимах, кроме User mode и System mode, доступен также Saved Program Status Register (SPSR). После возникновения исключения регистр CPSR сохраняется в SPSR. Тем самым фиксируется состояние процессора (режим, состояние; флаги арифметических, логических операций, разрешения прерываний) на момент непосредственно перед прерыванием. [Источник 9]

usrsyssvcabtundirqfiq
R0
R1
R2
R3
R4
R5
R6
R7
R8R8_fiq
R9R9_fiq
R10R10_fiq
R11R11_fiq
R12R12_fiq
R13R13_svcR13_abtR13_undR13_irqR13_fiq
R14R14_svcR14_abtR14_undR14_irqR14_fiq
R15
CPSR
SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq

Работа с памятью

Поддерживаемые системы ввода-вывода

В большинстве существующих моделей микропроцессоров реализована шина PCI и возможность работы с внешней динамической оперативной памятью (DRAM). В процессорах, предназначенных для потребительских устройств, также обычно встраиваются: контроллеры шин USB, IIC, AC’97-совместимое звуковое устройство, устройство для работы с флэш-носителями стандарта SD и MMC, контроллер последовательного порта.

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

Процесс запуска ОС на ARM-машинах

После включения системы на базе ARM-процессора, из ROM-памяти загружается начальный загрузчик и адрес его точки входа. Начальный загрузчик проводит предварительную инициализацию системы, исполняя тем самым ту же роль, которую исполняет BIOS на системах x86, после чего может загрузить либо системный загрузчик, либо напрямую ОС.

Единого стандарта на начальный загрузчик не существует: хотя современные версии стандарта UEFI предусматривают возможность реализации этого стандарта для архитектуры ARM, но на практике UEFI используется редко — большинство ОС используют собственные загрузчики, или реализуют совместимость с одним из загрузчиков других систем.

ОС, поддерживающие ARM

Архитектура ARM поддерживается множеством операционных систем. Наиболее широко используемые: Linux (в том числе Android), iOS, Windows Phone.

Работать на системах с ARM-процессором могут различные Unix и Unix-подобные ОС: Linux (многие дистрибутивы), iOS, Android, BSD (FreeBSD, NetBSD, OpenBSD), QNX, Plan 9, Inferno, OpenSolaris (2008—2009), Firefox OS.

Также на платформе запускаются отдельные варианты семейства Windows: Windows CE, Windows Phone, Windows RT, Windows 10 (только на Raspberry Pi)

Кроме того, ARM поддерживают: FreeRTOS, Nucleus, Symbian OS, RISC OS, RISC iX.

Источник

Процессоры x86 и ARM — в чём разница?

Правда ли, что процессор в вашем мобильнике мощнее, чем в вашем компьютере?

Раньше было так: есть мощные процессоры для настольных компьютеров, ноутбуков и серверов, а есть слабые процессоры для мобильных устройств — телефонов и планшетов.

Теперь ситуация меняется: мобильные процессоры постепенно обгоняют настольные, а настольные начинают заимствовать технологии из мобильных.

RISC — простые команды, много кода

На заре процессоров у программистов не было языков высокого уровня, например JavaScript или Python. Все команды писались машинным кодом или на ассемблерах. Программист в то время работал с процессором напрямую, и каждая команда в коде обозначала какую-то инструкцию для процессора.

Например, типичная программа того времени по умножению одного числа на другое могла выглядеть для процессора так:

В итоге получалась большая программа, которую было довольно сложно прочитать.

Такую технологию назвали RISC — Reduced-instruction-set Computing, компьютер с ограниченным набором команд.

Некоторое время спустя технологию RISC усовершенствовали двумя разными способами — так появились архитектуры x86 и ARM. Первые ориентировались на мощные компьютеры, вторые — на небольшие устройства с пониженным энергопотреблением.

x86 — это сложный RISC

С развитием компьютеров программисты захотели писать более сложные программы. Но чем сложнее программа, тем больше кода приходилось писать.

Тогда компания Intel выпустила процессор 8086, который поддерживал много новых команд. Они упрощали написание кода, частично закрывая разрыв между машинным кодом и высокоуровневым языком программирования.

Возьмём тот же пример кода для перемножения двух чисел. Для процессора 8086 код выглядел так:

«Перемножь числа» — это новая сложная команда, доступная в этом процессоре. Когда процессор встречает её в коде, он выполняет много других инструкций, похожих на те, которые мы писали в начале, и получает тот же результат.

Такая технология называется CISC — complex instruction set computer, вычислительная машина со сложным набором команд.

✅ С одной стороны, программистам теперь проще писать код: вместо тридцати инструкций можно написать три, а результат будет таким же. Чем больше новых сложных команд поддерживает процессор, тем быстрее идёт разработка.

❌ С другой — процессору теперь нужно тратить некоторое время на перевод сложных команд в простые. Когда он получает от программиста команду «Перемножь эти два числа», то превращает её в те самые тридцать строк кода и выполняет каждую команду.

После процессора 8086 вышли процессоры 80286 и 80386. Они получились настолько удачными для того времени, что с тех пор Intel маркировку всех своих основных процессоров заканчивала на «86», а технология и набор команд получили название «x86».

ARM — это продвинутый RISC

По другому пути пошла компания ARM, название которой расшифровывается как «Улучшенные RISC-машины». Подход был такой: зачем нужно много сложных команды для процессора, если можно по максимуму использовать простейшие команды и сосредоточиться на эффективности работы?

В итоге ARM усовершенствовали RISC-архитектуру, сделали команды проще и сосредоточились на эффективности.

В те времена ARM-процессоры работали не так быстро, как процессоры семейства x86, зато они потребляли гораздо меньше энергии. Со временем это позволило использовать ARM-процессоры в мобильных телефонах.

Получается, процессоры отличаются тем, что x86 это CISC, а ARM — это RISC?

Большинство думает именно так, и в каком-то смысле это похоже на правду. Но это не совсем точно.

Современные x86-процессоры на 80% состоят из RISC-модулей, которые обрабатывают RISC-команды. Каждая сложная CISC-команда специальным декодером разбивается на много простых команд, которые и выполняют эти модули.

Получается, что в основе любого современного процессора всё равно лежит RISC-архитектура, сверху которой для каждого устройства наслаиваются свои дополнительные команды.

В чём успех ARM

Чтобы сделать процессор с x86-архитектурой, компании нужно самой придумать и нарисовать все транзисторы и соединения между ними. Это сложный и дорогой процесс, который не могут себе позволить маленькие компании. Из крупных производителей x86-процессоров остались только Intel и AMD.

В ARM сделали иначе — они продают лицензии на производство процессоров по своей архитектуре всем желающим. Получается, что любая компания может купить лицензию и делать свои ARM-процессоры. При этом компания может как угодно улучшать свои процессоры — изменять компоновку, добавлять новые модули и так далее.

Именно доступность лицензии и конкуренция привели к быстрому развитию ARM-процессоров, а не RISC-архитектура или наборы команд.

Сейчас на ARM свои процессоры выпускают Samsung, Nvidia, Qualcomm, Atmel, Huawei и многие другие. Если вы производитель смартфонов, вы можете разработать свой собственный процессор на ARM, а можете купить готовый у любой другой компании. Это создаёт конкуренцию на рынке, гонку технологий и всеобщий прогресс.

Главное — внутреннее устройство процессора

Современные процессоры состоят из множества отдельных модулей, каждый из которых делает что-то своё, например:

От того, как производитель реализует компоновку и соединение модулей, зависит быстродействие процессора и его применимость в разных областях. А из-за того, что ARM-архитектура основана на простых командах, в ней проще соединять такие модули между собой. Получается, что сила ARM — в простоте и гибкости.

Источник

Чем архитектура ARM отличается от x86

Обе архитектуры имеют свои плюсы и минусы, а также сферы применения, но есть и общие черты. Многие специалисты говорят, что за ARM будущее, но у нее остаются некоторые недостатки, которых нет в x86. В нашей сегодняшней статье мы рассмотрим чем архитектура arm отличается от x86. Рассмотрим принципиальные отличия ARM или x86, а также попытаемся определить что лучше.

Что такое архитектура?

Arm64 что это

Архитектура x86

Первый процессор Intel 8086 имел разрядность 16 бит, далее в 2000 годах вышел процессор 32 битной архитектуры, и еще позже появилась архитектура 64 бит. Мы подробно рассматривали разрядность процессоров в отдельной статье. За это время архитектура очень сильно развилась были добавлены новые наборы инструкций и расширения, которые позволяют очень сильно увеличить производительность работы процессора.

Архитектура ARM

При разработке этой архитектуры инженеры ставили перед собой цель устранить все недостатки x86 и создать совершенно новую и максимально эффективную архитектуру. ARM чипы получили минимальное энергопотребление и низкую цену, но имели низкую производительность работы по сравнению с x86, поэтому изначально они не завоевали большой популярности на персональных компьютерах.

В отличие от x86, разработчики изначально пытались получить минимальные затраты на ресурсы, они имеют меньше инструкций процессора, меньше транзисторов, но и соответственно меньше всяких дополнительных возможностей. Но за последние годы производительность процессоров ARM улучшалась. Учитывая это, и низкое энергопотребление они начали очень широко применяться в мобильных устройствах, таких как планшеты и смартфоны.

Отличия ARM и x86

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

Производство

Производство x86 vs arm отличается. Процессоры x86 производят только две компании Intel и AMD. Изначально эта была одна компания, но это совсем другая история. Право на выпуск таких процессоров есть только у этих компаний, а это значит, что и направлением развития инфраструктуры будут управлять только они.

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

Количество инструкций

Это главные различия архитектуры arm и x86. Процессоры x86 развивались стремительно, как более мощные и производительные. Разработчики добавили большое количество инструкций процессора, причем здесь есть не просто базовый набор, а достаточно много команд, без которых можно было бы обойтись. Изначально это делалось чтобы уменьшить объем памяти занимаемый программами на диске. Также было разработано много вариантов защит и виртуализаций, оптимизаций и многое другое. Все это требует дополнительных транзисторов и энергии.

ARM более прост. Здесь намного меньше инструкций процессора, только те, которые нужны операционной системе и реально используются. Если сравнивать x86, то там используется только 30% от всех возможных инструкций. Их проще выучить, если вы решили писать программы вручную, а также для их реализации нужно меньше транзисторов.

Потребление энергии

Из предыдущего пункта выплывает еще один вывод. Чем больше транзисторов на плате, тем больше ее площадь и потребление энергии, правильно и обратное.

Arm64 что это

За последние годы потребление энергии процессорами x86 очень сильно уменьшилось, например, новые процессоры Intel Haswell могут работать дольше от батареи. Сейчас разница arm vs x86 постепенно стирается.

Тепловыделение

Производительность процессоров

ARM изначально не были заточены для максимальной производительности, это область преуспевания x86. Отчасти этому причина меньше количество транзисторов. Но в последнее время производительность ARM процессоров растет, и они уже могут полноценно использоваться в ноутбуках или на серверах.

Выводы

В этой статье мы рассмотрели чем отличается ARM от x86. Отличия довольно серьезные. Но в последнее время грань между обоими архитектурами стирается. ARM процессоры становятся более производительными и быстрыми, а x86 благодаря уменьшению размера структурного элемента платы начинают потреблять меньше энергии и выделять меньше тепла. Уже можно встретить ARM процессор на серверах и в ноутбуках, а x86 на планшетах и в смартфонах.

А как вы относитесь к этим x86 и ARM? За какой технологией будущее по вашему мнению? Напишите в комментариях! Кстати, Линус Торвальдс предпочитает x86.

На завершение видео о развитии арихтектуры ARM:

Источник

Определение типа архитектуры процессора Android-устройств

Arm64 что это

Часто при загрузке Андроид-приложений на сайтах предлагающих такую возможность, у пользователей есть возможность выбора файлов для различных архитектур системы. И тут возникают сложности — какую из загрузок нужно скачивать и устанавливать.

Архитектура процессора — это, простыми словами, схема по которой работают части процессора между собой, а также набор команд с помощью которых они «общаются» с другими частями устройства.

Многие разработчики делают универсальные приложения и игры, которые подходят под любые архитектуры процессоров. Но некоторые из них создают несколько версий программ специально «заточенных» под ту или иную архитектуру. При установке такого продукта из Google Play, сервис автоматически определяет все необходимые параметры установки и загружает на пользовательское устройство необходимые файлы. Пользователю не нужно думать над тем какой файл скачать.

Если же установка (по той или иной причине) из Google Play невозможна или нежелательна, пользователь может скачать файл APK на стороннем сайте. С его помощью можно установить приложение или игру «в ручном режиме». Вот тут-то, если на сайте есть несколько вариантов таких файлов, и появляются муки выбора.

На сегодняшний день, сайты предлагающие файлы для установки приложений и игр могут распространять APK-файлы следующих архитектур: armeabi-v7a, arm64-v8a, x86 и x86_64.

Ниже мы несколько более детально рассмотрим разные типы архитектуры для Android-устройств. Вы можете пропустить этот блок и перейти к следующему, но все-таки мы бы рекомендовали ознакомиться с этой информацией для более ясного понимания.

Файлы начинающиеся на «x86» и «arm» не являются взаимно совместимыми — вы должны использовать версию, предназначенную для конкретной архитектуры устройства.

Также, если ваш девайс имеет 32-разрядный процессор, 64-разрядный файл на нем работать не будет. А вот 64-разрядные процессоры обратно совместимы, поэтому на них можно устанавливать 32-разрядный файл.

Исходя из вышесказанного, можно составить такие правила совместимости:

В большинстве случаев телефоны используют архитектуру ARM. Более дешевые устройства используют версию armeabi-v7a, более мощные — версию arm64-v8a. Поэтому, если сомневаетесь в том, какую версию файла выбрать, выбирайте ту, которая имеет отметку «armeabi-v7a».

Определение архитектуры процессора устройства

Теперь, когда мы разобрались с теоретической частью, пора определить — на какой архитектуре разработан ваш телефон или планшет.

Для этого можно воспользоваться инструкцией к устройству (но в ней не всегда можно найти нужную информацию) или же найти данные в интернете. Но лучше всего это сделать с помощью специального приложения.

Самый простой способ!

Droid Hardware Info

Если вышеописанный способ вас чем-то не устраивает или же вы хотите получить более расширенные данные о системе вашего устройства, воспользуйтесь приложением Droid Hardware Info.

Установите эту утилиту в Google Play или с помощью APK-файла (скачав его на сайте Biblprog). Для получения нужной нам информации запустите Droid Hardware Info, перейдите на вкладку «Система» и обратите свое внимание на раздел «Процессор».

Как вам данная инструкция? Все ли понятно? Если у вас появились дополнительные вопросы или же возникли замечания к информации выложенной на данной странице — не стесняйтесь. Напишите в комментариях!

Источник

Почему мы используем платформу ARM в промышленном оборудовании

Arm64 что это

Сегодня почти каждый из нас использует устройства на базе ARM-процессоров — это смартфоны, телевизоры и даже холодильники с кофеварками. Несколько дней назад в прессу просочились слухи, что компания Apple объявит о переходе с платформы X86 на ARM на своих ноутбуках.

Мы в Advantech уже много лет производим устройства на платформе ARM и на это множество причин. В этой статье мы разберем что такое ARM (от англ. Advanced RISC Machine), в чем ее отличие от других архитектур и почему все больше производителей выбирает эту архитектуру.

Наборы инструкций RISC vs CISC

Arm64 что это

Для начала следует разобраться в чем принципиальное отличие процессоров ARM и X86. Для того, чтобы программисты смогли писать программы, работающие на разных процессорах, производители договорились унифицировать набор машинных инструкций до определенного формата и соблюдать его в разных моделях своих процессоров. Машинные инструкции это низкоуровневые команды, которые отвечают за базовые операции вроде записи/чтения/модификации данных в памяти, арифметику и т.д.

Существует несколько основных концепций, используемых при проектировании процессоров. Наиболее популярные и широко известные всем это RISC и CISC.

CISC (англ. Complex Instruction Set Computing) — этот подход используется для разработки универсальных и мощных процессоров, которые обычно используются в десктопных компьютерах и на серверах. Такие процессоры как Intel CoreiN/Xeon/Pentium, AMD Ryzen/Atlhon/Sempron и прочие хорошие знакомые процессоры имеют набор инструкций типа CISC, оформленную в виде стандарта x86.

Основные особенности концепции CISC:

RISC (англ. reduced instruction set computer) — противоположная концепция проектирования процессоров. В RISC команды максимально упрощены и имеют более строгий формат и фиксированную длину. За счет упрощенных инструкций достигается высокая производительность при малом энергопотреблении. Процессоры RISC требуют от программиста большой контроль над выполнением кода, так как не имеют встроенных микропрограмм, работающих внутри процессора. Архитектура ARM (от англ. Advanced RISC Machine — усовершенствованная RISC-машина) это продолжение идеи архитектуры RISC развиваемое компанией ARM Limited. Сегодня множество компаний производят свои собственные ARM процессоры по лицензии от ARM Limited — например, популярные в смартфонах Qualcomm Snapdragon, Mediatek, Allwiner, Apple An/Hn а также популярные во встраиваемых системах Freescale i.MX, Broadcom, Nvidia Tegra и другие.

Основные особенности концепции RISC:

X86 медленно развивается

Arm64 что это

Последнее десятилетие существенных инноваций в архитектуре X86 не наблюдается. Да, производители наращивают тактовую частоту и пытаются снижать энергопотребление, но такие процессоры по-прежнему остаются прожорливыми духовками, требующими много энергии и серьезную систему охлаждения. Именно поэтому мы, скорее всего, никогда не увидим смартфонов на X86 процессорах. Производители X86 процессоров пытаются наращивать мощность с помощью масштабирование в ширину: больше ядер, кеша и частот.

Arm64 что это
Современные X86 процессоры имеют десятки ядер

Попытки Intel создать энергоэффективный X86-процессор Atom были достаточно успешны, но кроме маломощных десктопов, ноутбуков и встраиваемых систем, этот процессор мало для чего подходит.

ARM это экономично и современно

Arm64 что это

Современные ARM-процессоры развиваются очень быстро. Каждый год выходят чипы существенно лучше своих предшественников. На данный момент средняя производительность ARM чипов все еще остается ниже X86, но в некоторых синтетических тестах они уже почти сравнялись.

Совершенно очевидно, что в будущем наши ноутбуки, и, возможно, десктопные компьютеры, будут работать на ARM-процессорах. Переходов ноутбуков Apple на собственные ARM-процессоры должно дать большой толчок всей индустрии в этом направлении.

Основные достоинства процессоров ARM:

Устройства Advantech на платформе ARM

Advantech давно производит продукты на базе платформы ARM для разных отраслей и задач. От промышленных контроллеров, до сетевого оборудования и компактных компьютеров. Мы уже рассказывали о некоторых наших продуктах на ARM в других статьях.

WISE-710 — IoT-шлюз на базе i.MX6

Arm64 что это

WISE-710 — универсальное устройство, которое одновременно может быть шлюзом для промышленных интерфейсов, устройством сбора и обработки данных, хабом для IoT устройств и маршрутизатором. Построено на базе SoC i.MX6, процессора на архитектуре ARM Cortex-A7.

ECU-1152 — Шлюз для промышленных интерфейсов на базе ARM Cortex A8

Arm64 что это

ECU-1152 — шлюз для промышленных интерфейсов а также устройство для связи с объектом и устройства сбора и передачи данных с объекта. Построено на базе процессора ARM процессора с ядром Cortex A8

Миниатюрный ARM-компьютер UNO-1251G

Arm64 что это
UNO-1251G — крохотных компьютер, умещающийся на DIN-рейку, на базе 32-битного процессора Cortex A8 под управлением Linux или Windows CE. Поддерживает модули расширения Wi-Fi/3G/4G. Имеет встроенную CAN-шину и два интерфейса RS-232. Два порта LAN позволяют подключать его к двум независимым Ethernet сетям или использовать как маршрутизатор.

Компьютеры для машинного обучения на базе Nvidia Jetson

Arm64 что это

MIC-720AI — построен на базе платформы Jetson TX2, работающей на собственных ядрах Nvidia ARM Cortex-A57 и NVIDIA Denver 2 с полностью пассивным охлаждением. Предназначен для установки в промышленные системы машинного зрения, на производстве и в подвижных объектах. Безвентиляторная конструкция обеспечивает полную бесшумность в работе и позволяет использовать компьютер в пыльных помещениях без необходимости обслуживания. Работает под управлением Linux

Будущее за ARM

Наверняка архитектура X86 с нами еще надолго. Все профессиональные высокопроизводительные вычисления пока делаются на этой платформе. Под X86 написаны основные десктопные операционные системы и прикладные программы. Однако уже сегодня ARM активно вытесняет устаревший X86 даже в сфере больших вычислений. Платформы вроде Nvidia Jetson сравнимы по производительности, а в некоторых задачах и превосходят системы на базе X86. Так что нас обязательно ждет яркое противостояние двух платформ, от которой в конечном счете потребители только выиграют.

Расскажите, как вы используете ARM-процессоры сегодня или как планируете использовать в будущем.

Источник

Война за чипы: сменят ли ARM процессоры x86 и почему все зависит от Apple

Arm64 что это

Содержание

Какими бывают процессоры: x86 и ARM

В мобильных устройствах (планшеты, смартфоны) и классических компьютерах (ноутбуки, настольные ПК, серверы) используются разные процессоры. Они по-разному взаимодействуют с операционными системами и программами — взаимной совместимости нет. Именно поэтому вы не сможете запустить привычные Word или Photoshop на своем iPhone или Android-смартфоне. Вам придется скачивать из AppStore или Google Play специальную версию софта для мобильных устройств. И она будет сильно отличаться от версии для настольного ПК: как визуально, так и по функциональности, не говоря уже о программном коде, который пользователь обычно не видит.

Arm64 что это

Процессоры для классических компьютеров строятся на архитектуре x86. Своим названием она обязана ранним чипам компании Intel c модельными индексами 8086, 80186 и так далее. Первым таким решением с полноценной реализацией x86 стал Intel 80386, выпущенный в 1985 году. Сегодня подавляющее большинство процессоров в мире с архитектурой x86 делают Intel и AMD. При этом у AMD, в отличие от Intel, нет собственного производства: с 2018 года им по заказу компании занимается тайваньская корпорация TSMC.

Arm64 что это

Когда Acer, Asus, Dell, HP, Lenovo и любые другие производители классических компьютеров используют процессоры Intel или AMD, то им приходится работать с тем, что есть. Они вынуждены закупать готовые решения без возможности гибко доработать чипы под свой конкретный продукт. А свои собственные процессоры на архитектуре x86 никто из производителей ПК делать не может. Дело не только в том, что это крайне сложно и дорого, но и в том, что лицензия на архитектуру принадлежит Intel, и компания не планирует ее ни с кем делить. AMD же воевала в американских судах за право создавать чипы на архитектуре x86 со своим главным конкурентом более десяти лет в 1980-х и 1990-х годах.

Процессоры для мобильных устройств строятся на базе архитектуры ARM. И это не какая-то быстро и внезапно взлетевшая вверх молодая компания. Корни истории современной британской ARM Limited уходят далеко в 1980-е. Только в отличие от своих доминирующих на рынке «больших» ПК-конкурентов ARM Limited процессоры не делает. Бизнес компании построен на том, что она продает лицензии на производство чипов по своей технологии всем желающим. Причем возможности для доработки у лицензиатов максимально широкие — отсюда популярность и многообразие решений. Именно на основе архитектуры ARM Huawei делает свои мобильные чипы Kirin, у Samsung это Exynos, у Apple — серия Ax. В этот же список входят Qualcomm, MediaTek, NVIDIA и другие компании. А еще свои процессоры на ARM делает Fujitsu. Японцы назвали их A64X, и именно они в количестве 158 976 штук используются в самом мощном на момент выхода этой статьи суперкомпьютере в мире — Fujitsu Fugaku.

Arm64 что это

Из открытого подхода ARM вытекает и главный недостаток: архитектура очень фрагментирована. Для x86 достаточно написать программу один раз, и она будет одинаково стабильно работать на всех устройствах. Для ARM приходится адаптировать софт под процессоры каждого производителя, что замедляет и удорожает разработку. Ну, а главный недостаток x86 вытекает из отсутствия конкуренции. В последние годы Intel, например, много упрекали за медленный или порой вовсе едва ощутимый прирост производительности от поколения к поколению. Также есть проблемы с высокими уровнями нагрева и энергопотребления.

Архитектура процессоров: CISC, RISC, и в чем разница

Ключевое отличие между x86 и ARM кроется в разной архитектуре набора инструкций. По-английски — ISA, Instruction Set Architecture. В основе x86 изначально лежала технология CISC. Это расшифровывается как Complex Instruction Set Command — вычислительная машина со сложным набором инструкций. «Сложность» здесь в том, что в одну инструкцию для процессора может быть заложено сразу несколько действий.

Полвека назад, когда первые процессоры только появились, программисты писали код вручную (сейчас для этого есть компиляторы). Одну сложную команду на старом низкоуровневом языке программирования Assembler написать было гораздо проще, чем множество простых, досконально разъясняющих весь процесс. А еще сложная команда занимала меньше места, потому что код для нее был короче, чем несколько отдельных простых команд. Это было важно, потому что объем памяти в те времена был крайне ограничен, стоила она дорого и работала медленно. Заказчики от этого тоже выигрывали — под любой их запрос можно было придумать специальную команду.

Но вот архитектура самого процессора страдала. По мере развития микроэлектроники в чипах с CISC копились команды, которые использовались редко, но все еще были нужны для совместимости со старыми программами. При этом под них резервировалось пространство на кристалле (место, где расположены физические блоки процессора). Это привело к появлению альтернативной технологии RISC, что расшифровывается как Reduced Instruction Set Command — вычислительная машина с сокращенным набором инструкций. Именно она легла в основу процессоров ARM и дала им название: Advanced RISC Machines.

Здесь ставку сделали на простые и наиболее востребованные команды. Да, код поначалу писать было сложнее, поскольку он занимал больше места, но с появлением компиляторов это перестало быть значимым недостатком. Результат — экономия места на кристалле и, как следствие, сокращение нагрева и потребления энергии. Плюс множество других преимуществ.

Почему о превосходстве ARM заговорили только недавно и при чем здесь Apple?

Если архитектура ARM так хороша, то почему же Intel и AMD не бросили все и не стали строить свои чипы на ней? На самом деле, они не оставили технологию без внимания, и к сегодняшнему дню CISC в чистом виде фактически уже не существует. Еще в середине 1990-х годов процессоры обеих компаний (начиная с Pentium Pro у Intel и K5 у AMD) обзавелись блоком преобразования инструкций. Сложные команды разбиваются на простые и затем выполняются именно там. Так что современные процессоры на архитектуре x86 в плане набора инструкций гораздо ближе к RISC, чем к CISC.

Кроме того, важно понимать, что противостояние x86 и ARM — это прежде всего противостояние Intel (потому что AMD гораздо меньше во всех отношениях: от капитализации до доли на рынках) и множества разрозненных производителей чипов для мобильных устройств. Долгое время два направления развивались как бы отдельно друг от друга. У Intel не получалось сделать достаточно мощное и энергоэффективное решение на x86 для мобильных устройств, а производители ARM-процессоров не стремились на рынок «больших» ПК. В нише мобильных устройств хватало места всем, и конкурировать там было проще, чем на фактически монополизированном Intel рынке процессоров для традиционных компьютеров.

Однако в последние годы доминирующее положение Intel пошатнулось. Прежде всего из-за того, что бизнес компании перестал соответствовать ее же собственной производственной стратегии. Согласно прогнозу одного из основателей Intel Гордона Мура, количество транзисторов в процессорах должно удваиваться каждые два года за счет перехода на более компактный технологический процесс производства (измеряется в нанометрах — нм). Как раз за счет этого повышается производительность. Впоследствии впервые озвученный в середине 1960-х годов «Закон Мура» корректировался, но сегодня стало ясно, что бесконечным этот рост быть не может. Технологии Intel дошли до «потолка возможностей» и пока уперлись в него. Переход на 14 нм, а потом и на 10 нм сильно затянулся, в то время как AMD в партнерстве с TSMC уже работает по техпроцессу 7 нм, а первым 5-нанометровым процессором в мире стал Apple M1 на архитектуре ARM.

Решая множество технологических проблем с процессорами для «больших» компьютеров, Intel полностью упустила из вида рынок мобильных чипов, и теперь здесь господствуют решения ARM. Проблемы, кстати, при этом никуда не делись — чипы Intel для настольных ПК последних лет активно и справедливо критикуют. Мощные процессоры компании страдают от высокого нагрева и сильного энергопотребления, а энергоэффективные, наоборот, сильно ограничены в плане производительности.

Большинство производителей ноутбуков и компьютеров продолжают с этим мириться, и не уходят на ARM — не позволяет огромный багаж популярного софта и массовость их техники. Как вы помните, одна и та же программа не сможет работать и на x86 и, на ARM — ее нужно обязательно программировать заново. Но в 2020 году после почти 15 лет выпуска компьютеров с процессорами Intel компания Apple объявила о переходе на процессоры ARM собственной разработки. Они, кстати, тоже производятся внешним подрядчиком: на заводах уже упомянутой TSMC.

И это крайне важное заявление, потому что на рынке только у Apple есть все возможности для того, чтобы сделать этот переход успешным. Во-первых, компания сама разрабатывает процессоры на базе ARM много лет. Настольные M1 «выросли»

из мобильных чипов серии Ax. У производителей ПК на других ОС такого опыта нет или он сильно ограничен. Во-вторых, у Apple огромный опыт разработки собственных операционных систем: как мобильной, так и настольной. Конкуренты в основном используют Windows или «надстройки» для Android.

Остается совместить две системы (OS X для компьютеров, iOS для смартфонов), «заточенные» под разную архитектуру вместе, унифицировав софт, и это самый сложный пункт программы. Но и тут у Apple есть целая россыпь козырей. Это и лояльная аудитория, не готовая смотреть на продукцию конкурентов, но готовая подождать пока программы адаптируют под ARM. И собственный язык программирования Swift, который давно унифицировал процесс разработки ПО для iOS и OS X. И пусть небольшая в количестве устройств, но зато очень заметная доля на рынке ПК в деньгах, чтобы процесс адаптации «настольного» софта для x86 под работу с «мобильным» ARM стал интересен крупным разработчикам ПО. За примерами далеко ходить не надо: в Adobe на зов откликнулись одними из первых.

Немаловажно и то, что переход с Intel на ARM для Apple — далеко не первый опыт смены процессоров в своих устройствах. На Intel корпорация из Купертино переходила с PowerPC в 2005 году. А чипы PowerPC пришли на замену Motorola 68K в начале 1990-х.

Процессор Apple M1: чем он так хорош?

Apple M1 интересен не столько тем, что построен на базе технологий ARM, сколько своей архитектурой. Здесь на одной подложке собраны сам процессор, в котором по 4 производительных и энергоэффективных ядра, восьмиядерная графическая подсистема, нейромодуль для машинного обучения, огромные (по меркам процессоров) объемы кэш-памяти плюс тут же распаяна оперативная память. Такое решение занимает совсем мало места в корпусе компьютера, потребляет мало энергии (аккумулятор ноутбука дольше не разрядится) и может работать без активного охлаждения (ноутбук будет тихим или вовсе бесшумным) при хорошем уровне производительности.

Arm64 что это

И совсем не просто так первым компьютером Apple с процессором M1 стал MacBook Air. С одной стороны, это лэптоп, главными преимуществами которого как раз и должно быть все, что дает новый процессор: компактность, автономность, тишина. С другой стороны, это компьютер для наименее требовательных пользователей, которым практически не нужен никакой специфический софт — достаточно того, что сама Apple предлагает «из коробки»: браузера, проигрывателя, офисного пакета. А для софта, который под ARM адаптировать пока не успели, Apple использует встроенный эмулятор Rosetta 2.

Следующими ПК Apple с M1 после MacBook Air стали 13-дюймовый MacBook Pro и Mac Mini. Также недавно был анонсирован новый iMac. Такие машины уже ориентированы на задачи посерьезнее, но все равно это еще далеко не профессиональный сегмент — на него в Купертино пока лишь намекают. И именно здесь к решению Apple на базе технологий ARM возникает основной вопрос: получится ли «отмасштабировать» M1 до уровня профессиональных решений, где компактность и энергоэффективность не так важны, а на первый план выходит именно производительность? Как реализовать связку М1 с мощными дискретными видеокартами, без которых о монтаже, рендеринге и других сложных вычислениях говорить не приходится? Или может быть Apple вообще готовится к выпуску собственной дискретной графики? Вопросов пока куда больше, чем ответов на них.

Arm64 что это

Уже готовые компактные устройства Apple с чипами M1 выглядят действительно интересно, правда выигрыш в производительности в них явно ощущается в основном только в уже адаптированных под ARM программах, но зато он очень заметный. Так что если Intel и AMD не смогут дать достойный ответ конкуренту в нише энергоэффективных ПК, то рост популярности решений Apple не заставит себя ждать даже несмотря на то, что еще какое-то время софта будет не хватать. Массовому пользователю ведь много не нужно.

Источник

ARM (архитектура)

Arm64 что это

Arm64 что это

Arm64 что это

Архитектура ARM (Advanced RISC Machine, Acorn RISC Machine, усовершенствованная RISC-машина) — семейство лицензируемых 32-битных и 64-битных микропроцессорных ядер разработки компании ARM Limited. Компания занимается исключительно разработкой ядер и инструментов для них (компиляторы, средства отладки и т. п.), зарабатывая на лицензировании архитектуры сторонним производителям.

В 2007 году около 98 % из более чем миллиарда мобильных телефонов, продаваемых ежегодно, были оснащены по крайней мере одним процессором ARM. [1] По состоянию на 2009 на процессоры ARM приходилось до 90 % всех встроенных 32-разрядных процессоров. [2] Процессоры ARM широко используются в потребительской электронике — в том числе КПК, мобильных телефонах, цифровых носителях и плеерах, портативных игровых консолях, калькуляторах и компьютерных периферийных устройствах, таких как жесткие диски или маршрутизаторы.

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

Значимые семейства процессоров: ARM7, ARM9, ARM11 и Cortex. Многие лицензиаты делают собственные версии ядер на базе ARM: DEC StrongARM, Freescale i.MX, Intel XScale, NVIDIA Tegra, ST-Ericsson Nomadik, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Hummingbird, Apple A4/A5/A6 и HiSilicon K3.

Содержание

История

Компании была нужна совершенно новая архитектура после того, как она протестировала все доступные ей процессоры и сочла их неэффективными. Acorn серьёзно настроился на разработку собственного процессора, и их инженеры начали изучать документацию проекта RISC, разработанного в Университете Калифорнии в Беркли. Они подумали, что раз уж группе студентов удалось создать вполне конкурентоспособный процессор, то их инженерам это будет не сложно. Поездка в Western Design Center в Фениксе показала инженерам Стиву Ферберу и Софи Уилсон, что им не потребуются невероятные ресурсы для осуществления этого плана.

Уилсон приступила к разработке системы команд, создавая симулятор нового процессора на компьютере BBC Micro. Это убедило инженеров Acorn, что они на верном пути. Но все же перед тем, как идти дальше, им требовалось больше ресурсов. Настало время для Уилсон подойти к директору Acorn Герману Хаузеру и объяснить, в чем же дело. После того как он дал добро, собралась небольшая команда для реализации модели Уилсон на аппаратном уровне.

Acorn RISC Machine: ARM2

Официальный проект Acorn RISC Machine был начат в октябре 1983 года. VLSI Technology (англ.) была выбрана в качестве поставщика кремниевых компонентов, так как она уже снабжала Acorn микросхемами ПЗУ и некоторыми нестандартными интегральными схемами. Разработку возглавили Уилсон и Фербер. Их основной целью было достижение низкой латентности обработки прерывания, как у MOS Technology 6502. Архитектура доступа к памяти, взятая от 6502, позволила разработчикам достичь хорошей производительности без использования дорогостоящего в реализации модуля DMA. Первый процессор был произведен VLSI 26 апреля 1985 года — тогда он впервые заработал и был назван ARM1. Первые серийные процессоры под названием ARM2 стали доступны в следующем году.

Его первое применение было в качестве второго процессора в BBC Micro, где он был использован при разработке программного обеспечения для моделирования, что позволило завершить работу над вспомогательными микросхемами компьютера, а также ускорить работу программного обеспечения CAD, используемого при разработке ARM2. Уилсон оптимизировала набор инструкций ARM для исполнения BBC BASIC. Изначальная цель компьютера, полностью построенного на базе ARM, была достигнута в 1987 году с выходом Acorn Archimedes.

Атмосфера вокруг проекта ARM была настолько секретна, что когда компания Olivetti вела переговоры о покупке контрольного пакета акций Acorn в 1985 году, они не стали рассказывать о развитии проекта до конца переговоров. В 1992 году Acorn еще раз выиграл премию королевы за ARM.

Apple, DEC, Intel: ARM6, StrongARM, XScale

В конце 1980-х годов Apple Computer и VLSI Technology начали работать с Acorn Computers над новыми версиями ядра ARM. Работа была настолько важна, что Acorn преобразовала команду разработчиков в 1990 году в новую компанию под названием Advanced RISC Machines. По этой причине ARM иногда расшифровывают как Advanced RISC Machines вместо Acorn RISC Machine. Advanced RISC Machines стала ARM, когда ее родительская компания ARM Holdings вышла на Лондонскую фондовую биржу и NASDAQ в 1998 году.

Новая работа Apple-ARM в конечном итоге превратилась в ARM6, впервые выпущенный в 1992 году. Apple использовала основанный на базе ARM6 процессор ARM610 в качестве основы для своего продукта Apple Newton PDA. В 1994 году Acorn стала использовать ARM610 как главный процессор в своих компьютерах RISC PC. Компания DEC также купила лицензию на архитектуру ARM6 (чем вызвала небольшую путаницу, поскольку они так же производили процессоры Alpha) и начала производить StrongARM. На 233МГц этот процессор требовал всего 1 Вт мощности (более поздние версии требовали гораздо меньше). Позднее Intel получил права на эту работу в результате судебного процесса. Intel воспользовалась возможностью дополнить их устаревшую линейку I960 процессором StrongARM. Intel позднее разработал свою версию ядра под торговой маркой XScale, которую они впоследствии продали компании Marvell.

Рост патентования

Ядро ARM сохранило все тот же размер после всех этих изменений. У ARM2 было 30000 транзисторов, в то время как ARM6 дорос всего лишь до 35000. Бизнесом компании ARM всегда была продажа лицензий на производство ядер и сопутствующих элементов полупроводниковым компаниям, которые создавали микропроцессоры и микроконтроллеры на их основе. Самой успешной версией ядра, продажи которой достигли сотен миллионов штук, был ARM7TDMI.

Под лицензией ARM к 2005 году было произведено около 1,6 миллиардов ядер. В 2005 году около миллиарда ядер ARM пошло на мобильные телефоны. По состоянию на январь 2008 года было произведено более 10 миллиардов ядер, а iSuppli прогнозирует, что к 2011 году будут производиться 5 миллиардов ядер ежегодно. [источник не указан 502 дня]

Влияние ARM-технологии на рынок

Процессоры ARM

Семейство ядерВерсия архитектурыЯдроФункцииКэш (I/D)/MMUТипичная MIPS @ MHzПриложения

Архитектура

Уже давно существует справочное руководство по архитектуре ARM, которое разграничивает все типы интерфейсов, которые поддерживает ARM, так как детали реализации каждого типа процессора могут отличаться. Архитектура развивалась с течением времени, и начиная с ARMv7 были определены 3 профиля: ‘A’(application) — приложения, ‘R’(real time) — в реальном времени,’M’(microcontroller) — микроконтроллер.

Профили могут поддерживать меньшее количество команд (команды определенного типа).

Режимы

Процессор может находиться в одном из следующих операционных режимов:

Переключение режима процессора происходит при возникновении соответствующего исключения, или же модификацией регистра статуса.

Набор команд

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

Набор команд ARM

Режим, в котором исполняется 32-битный набор команд.

Набор команд Thumb

Для улучшения плотности кода процессоры, начиная с ARM7TDMI, снабжены режимом «thumb». В этом режиме процессор выполняет альтернативный набор 16-битных команд. Большинство из этих 16-разрядных команд переводятся в нормальные команды ARM. Уменьшение длины команды достигается за счет сокрытия некоторых операндов и ограничения возможностей адресации по сравнению с режимом полного набора команд ARM.

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

Аппаратные средства типа Game Boy Advance, как правило, имеют небольшой объем оперативной памяти доступной с полным 32-битным информационным каналом. Но большинство операций выполняется через 16-битный или более узкий информационный канал. В этом случае имеет смысл использовать тумбовый код и вручную оптимизировать некоторые тяжелые участки кода, используя переключение в режим полных 32-битных инструкций ARM.

Первым процессором с декодером тумбовых команд был ARM7TDMI. Все процессоры семейства ARM9, а также XScale, имели встроенный декодер тумбовых команд.

Набор команд Thumb-2

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.

Набор команд Jazelle

Jazelle — это технология, которая позволяет байткоду Java исполняться прямо в архитектуре ARM в качестве 3-го состояния исполнения (и набора команд) наряду с обычными командами ARM и режимом Thumb. Поддержка технологии Jazelle обозначается буквой «J» в названии процессора — например, ARMv5TEJ. Данная технология поддерживается начиная с архитектуры ARMv6, хотя новые ядра содержат лишь ограниченные реализации, которые не поддерживают аппаратного ускорения.

Функции RISC

Архитектура ARM обладает следующими особенностями RISC:

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

Условное исполнение

Одним из существенных отличий архитектуры ARM от других архитектур ЦПУ является так называемая предикация — возможность условного исполнения команд. Под «условным исполнением» здесь понимается то, что команда будет выполнена или проигнорирована в зависимости от текущего состояния флагов состояния процессора.

В то время как для других архитектур таким свойством, как правило, обладают только команды условных переходов, в архитектуру ARM была заложена возможность условного исполнения практически любой команды. Это было достигнуто добавлением в коды их инструкций особого 4-битового поля (предиката). Одно из его значений зарезервировано на то, что инструкция должна быть выполнена безусловно, а остальные кодируют то или иное сочетание условий (флагов). С одной стороны, с учётом ограниченности общей длины инструкции, это сократило число бит, доступных для кодирования смещения в командах обращения к памяти, но с другой — позволило избавляться от инструкций ветвления при генерации кода для небольших if-блоков.

Пример, обычно рассматриваемый для иллюстрации — основанный на вычитании алгоритм Евклида. В языке C он выглядит так:

А на ассемблере ARM — так:

Из кода видно, что использование предикации позволило полностью избежать ветвления в операторах else и then. Заметим, что если Ri и Rj равны, то ни одна из SUB инструкций не будет выполнена, полностью убирая необходимость в ветке, реализующей проверку while при каждом начале цикла, что могло быть реализовано, например, при помощи инструкции SUBLE (меньше либо равно).

Один из способов, которым уплотнённый (Thumb) код достигает большей экономии объёма — это именно удаление 4-битового предиката из всех инструкций, кроме ветвлений.

Другие особенности

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

может быть преобразовано в команду из одного слова и одного цикла в ARM:

Это приводит к тому, что типичные программы ARM становятся плотнее, чем обычно, с меньшим доступом к памяти. Таким образом, конвейер используется гораздо более эффективно. Даже несмотря на то, что ARM работает на скоростях, которые многие бы сочли низкими, он довольно-таки легко конкурирует с многими более сложными архитектурами ЦПУ.

ARM процессор также имеет некоторые особенности, редко встречающиеся в других архитектурах RISC — такие, как адресация относительно счетчика команд (на самом деле счетчик команд ARM является одним из 16 регистров), а также пре- и пост-инкрементные режимы адресации.

Другая особенность, которую стоит отметить, это то, что некоторые ранние ARM процессоры (до ARM7TDMI), например, не имеют команд для хранения 2-байтных чисел. Таким образом, строго говоря, для них невозможно сгенерировать эффективный код, который бы вел себя так, как ожидается от объектов С, типа «volatile int16_t».

Конвейер и другие аспекты реализации

ARM7 и более ранние версии имеют трехступенчатый конвейер. Это ступени переноса, декодирования и исполнения. Более производительные архитектуры, типа ARM9, имеют более сложные конвейеры. Cortex-a8 имеет 13-ступенчатый конвейер.

Сопроцессоры

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

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

Усовершенствованный 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 (Vector Floating Point, вектора чисел с плавающей запятой) — расширение сопроцессора в архитектуре ARM. Она производит низкозатратные вычисления над числами с плавающей запятой одинарной/двойной точности, в полной мере соответствующие стандарту ANSI/IEEE Std 754—1985 Standard for Binary Floating-Point Arithmetic. VFP производит вычисления с плавающей запятой, подходящие для широкого спектра приложений — например, для КПК, смартфонов, сжатие звука, трёхмерной графики и цифрового звука, а также принтеров и телеприставок. Архитектура VFP также поддерживает исполнение коротких векторных команд. Но, поскольку процессор выполняет операции последовательно над каждым элементом вектора, то VFP нельзя назвать истинным SIMD набором инструкций. Этот режим может быть полезен в графике и приложениях обработки сигнала, так как он позволяет уменьшить размер кода и выработку команд.

Другие сопроцессоры с плавающей запятой и/или SIMD, находящиеся в ARM процессорах включают в себя FPA, FPE, iwMMXt. Они обеспечивают ту же функциональность, что и VFP, но не совместимы с ним на уровне опкодов.

Расширения безопасности

Расширения безопасности, позиционируемые как TrustZone Technology, находятся в ARMv6KZ и других, более поздних, профилированных на приложениях архитектурах. Оно обеспечивает низкозатратную альтернативу добавлению специального ядра безопасности, обеспечивая 2 виртуальных процессора, поддерживаемых аппаратным контролем доступа. Это позволяет ядру приложения переключаться между двумя состояниями, называемыми «миры» (чтобы избежать путаницы с названиями возможных доменов), чтобы не допустить утечку информации из более важного мира в менее важный. Этот переключатель миров обычно ортогонален всем другим возможностям процессора. Таким образом, каждый мир может работать независимо от других миров, используя одно и то же ядро. Память и периферия соответственно изготавливаются с учетом особенностей мира ядра, и могут использовать это, чтобы получить контроль доступа к секретам и кодам ядра. Типичные приложения TrustZone Technology должны запускать полноценную операционную систему в менее важном мире, и компактный, специализированный на безопасности, код в более важном мире, позволяя Digital Rights Management’у намного точнее контролировать использование медиа на устройствах на базе ARM, и предотвращая несанкционированный доступ к устройству.

На практике же, так как конкретные детали реализации TrustZone остаются собственностью компании и не разглашаются, остается неясным, какой уровень безопасности гарантируется для данной модели угрозы.

Отладка

Все современные процессоры ARM включают аппаратные средства отладки, так как без них отладчики ПО не смогли бы выполнить самые базовые операции типа остановки, отступа, установка контрольных точек после перезагрузки.

Архитектура ARMv7 определяет базовые средства отладки на архитектурном уровне. К ним относятся точки останова, точки просмотра и выполнение команд в режиме отладки. Такие средства были также доступны с модулем отладки EmbeddedICE. Поддерживаются оба режима — остановки и обзора. Реальный транспортный механизм, который используется для доступа к средствам отладки, не специфицирован архитектурно, но реализация, как правило, включает поддержку JTAG.

Существует отдельная архитектура отладки «с обзором ядра», которая не требуется архитектурно процессорами ARMv7.

Регистры

ARM предоставляет 31 регистр общего назначения разрядностью 32 бит. В зависимости от режима и состояния процессора пользователь имеет доступ только к строго определённому набору регистров. В ARM state разработчику постоянно доступны 17 регистров:

Во всех режимах, кроме User mode и System mode, доступен также Saved Program Status Register (SPSR). После возникновения исключения регистр CPSR сохраняется в SPSR. Тем самым фиксируется состояние процессора (режим, состояние; флаги арифметических, логических операций, разрешения прерываний) на момент непосредственно перед прерыванием. [40]

usrsyssvcabtundirqfiq
R0
R1
R2
R3
R4
R5
R6
R7
R8R8_fiq
R9R9_fiq
R10R10_fiq
R11R11_fiq
R12R12_fiq
R13R13_svcR13_abtR13_undR13_irqR13_fiq
R14R14_svcR14_abtR14_undR14_irqR14_fiq
R15
CPSR
SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq

Работа с памятью

Arm64 что это

Поддерживаемые системы ввода-вывода

В большинстве существующих моделей микропроцессоров реализована шина PCI и возможность работы с внешней динамической оперативной памятью (DRAM). В процессорах, предназначенных для потребительских устройств, также обычно интегрируются: контроллеры шин USB, IIC, AC’97-совместимое звуковое устройство, устройство для работы с флэш-носителями стандарта SD и MMC, контроллер последовательного порта.

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

Процесс запуска ОС на ARM-машинах

Arm64 что это

Поддержка Unix-подобными системами

Архитектура ARM поддерживается Unix и Unix-подобными ОС GNU/Linux, BSD, QNX, Plan 9, Inferno, Solaris, Mac OS X, iOS, WebOS и Android.

Linux

Следующие дистрибутивы поддерживают процессоры ARM:

Следующие производные от BSD поддерживают процессоры ARM:

Solaris

Поддержка других операционных систем

ARM лицензиаты и приблизительная стоимость лицензии

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

Годовой отчет ARM за 2006 год сообщает что в результате лицензирования 2,5 миллиардов единиц (процессоров) был выручен 161 миллион долларов. Это эквивалентно 0.067 доллара за единицу. Однако это очень усредненный показатель — ведь сюда входят и лицензии на очень дорогие новейшие процессоры, и старые дешевые процессоры.

Примечания

Ссылки

Arm64 что это

Arm64 что это Микроконтроллеры
Архитектура
8-битMCS-51 • MCS-48 • PIC • AVR • Z8 • H8 • COP8 • 68HC08 • 68HC11
16-битMSP430 • MCS-96 • MCS-296 • PIC24 • MAXQ • Nios • 68HC12 • 68HC16
32-битARM • MIPS • AVR32 • PIC32 • 683XX • M32R • SuperH • Nios II • Am29000 • LatticeMico32 • MPC5xx • PowerQUICC • Parallax Propeller
ПроизводителиAnalog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • Microchip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog • Cypress
КомпонентыРегистр • Процессор • SRAM • EEPROM • Флеш-память • Кварцевый резонатор • Кварцевый генератор • RC-генератор • Корпус
ПериферияТаймер • АЦП • ЦАП • Компаратор • ШИМ-контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer
ИнтерфейсыCAN • UART • USB • SPI • I²C • Ethernet • 1-Wire
ОСFreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus
ПрограммированиеJTAG • C2 • Программатор • Ассемблер • Прерывание • MPLAB • AVR Studio • MCStudio
Arm64 что это Процессорные архитектуры на базе RISC-технологий

Altera Nios II • AMD 29000 • Apollo PRISM • Analog Devices Blackfin • ARM • Atmel (AVR • AVR32) • Cambridge Consultants XAP • DEC Alpha • DLX • PA-RISC • Intel i960 • M32R • LatticeMico32 • Microchip PIC • MIPS • Motorola 88000 • OpenRISC • POWER • PowerPC • SPARC • SuperH • Xilinx (MicroBlaze • PicoBlaze) • XMOS XCore

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *