Процессоры ARM: особенности архитектуры, отличия и перспективы

Первые чипы ARM появились еще три десятилетия назад благодаря стараниям британской компании Acorn Computers (ныне ARM Limited), но долгое время пребывали в тени своих более именитых собратьев – процессоров архитектуры х86. Все перевернулось с ног на голову с переходом IT-индустрии в пост-компьютерную эпоху, когда балом стали править уже не ПК, а мобильные гаджеты.

Особенности архитектуры ARM

Начать стоит, пожалуй, с того, что в процессорной архитектуре x86, которую сейчас используют компании Intel и AMD, применяется набор команд CISC (Complex Instruction Set Computer), хоть и не в чистом виде. Так, большое количество сложных по своей структуре команд, что долгое время было отличительной чертой CISC, сначала декодируются в простые, и только затем обрабатываются. Понятное дело, на всю эту цепочку действий уходит немало энергии.

Чип ARM1 – первенец компании Acorn Computers, который производился на фабриках VLSI
Чип ARM1 – первенец компании Acorn Computers, который производился на фабриках VLSI

В качестве энергоэффективной альтернативы выступают чипы архитектуры ARM с набором команд RISC (Reduced Instruction Set Computer). Его преимущество в изначально небольшом наборе простых команд, которые обрабатываются с минимальными затратами. Как результат, сейчас на рынке потребительской электроники мирно (на самом деле, не очень мирно) уживаются две процессорные архитектуры – х86 и ARM, каждая из которых имеет свои преимущества и недостатки.

Первым в истории устройством на базе процессора архитектуры ARM был персональный компьютер BBC Micro
Первым в истории устройством на базе процессора архитектуры ARM был персональный компьютер BBC Micro

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

Архитектурные отличия процессоров x86 (набор команд CISC) и ARM (набор команд RISC)
Архитектурные отличия процессоров x86 (набор команд CISC) и ARM (набор команд RISC)

Бизнес-модель компании ARM Limited

Сейчас компания ARM Limited занимается лишь разработкой референсных процессорных архитектур и их лицензированием. Создание же конкретных моделей чипов и их последующее массовое производство – это уже дело лицензиатов ARM, которых насчитывается превеликое множество. Есть среди них как известные лишь в узких кругах компании вроде STMicroelectronics, HiSilicon и Atmel, так и IT-гиганты, имена которых у всех на слуху – Samsung, NVIDIA и Qualcomm. С полным списком компаний-лицензиатов можно ознакомиться на соответствующей странице официального сайта ARM Limited.

Только компаний, получивших лицензию на производство чипов семейства ARM Cortex-A, насчитается несколько десятков, а ведь в портфолио ARM Limited есть и другие разработки
Только компаний, получивших лицензию на производство чипов семейства ARM Cortex-A, насчитается несколько десятков, а ведь в портфолио ARM Limited есть и другие разработки

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

Российская компания «ПКК Миландр» со штаб-квартирой в Зеленограде, что интересно, тоже получила лицензию на производство чипов архитектуры ARM
Российская компания «ПКК Миландр» со штаб-квартирой в Зеленограде, что интересно, тоже получила лицензию на производство чипов архитектуры ARM

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

Однокристальная система

С технической точки зрения называть чипы архитектуры ARM процессорами не совсем верно, ведь помимо одного или нескольких вычислительных ядер они включают целый ряд сопутствующих компонентов. Более уместными в данном случае являются термины однокристальная система и система-на-чипе (от англ. system on a chip).

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

Схема строения однокристальной системы с четырьмя ядрами ARM Cortex-A9
Схема строения однокристальной системы с четырьмя ядрами ARM Cortex-A9

Отдельные компоненты однокристальной системы могут быть разработаны как непосредственно ARM Limited, так и сторонними компаниями. Ярким тому примером являются графические ускорители, разработкой которых помимо ARM Limited (графика Mali) занимаются Qualcomm (графика Adreno) и NVIDIA (графика GeForce ULP).

Не стоит забывать и про компанию Imagination Technologies, которая ничем другим, кроме проектирования графических ускорителей PowerVR, вообще не занимается. А ведь именно ей принадлежит чуть ли не половина глобального рынка мобильной графики: гаджеты Apple и Amazon, планшетники Samsung Galaxy Tab 2, а также недорогие смартфоны на базе процессоров MTK.

Устаревшие поколения чипов

Морально устаревшими, но все еще широко распространенными процессорными архитектурами являются ARM9 и ARM11, которые принадлежат к семействам ARMv5 и ARMv6 соответственно.

ARM9. Чипы ARM9 могут достигать тактовой частоты 400 МГц и, скорее всего, именно они установлены внутри вашего беспроводного маршрутизатора и старенького, но все еще надежно работающего мобильного телефона вроде Sony Ericsson K750i и Nokia 6300. Критически важным для чипов ARM9 является набор инструкций Jazelle, который позволяет комфортно работать с Java-приложениями (Opera Mini, Jimm, Foliant и др.).

ARM11. Процессоры ARM11 могут похвастаться расширенным по сравнению с ARM9 набором инструкций и куда более высокой тактовой частотой (вплоть до 1 ГГц), хотя для современных задач их мощности тоже не достаточно. Тем не менее, благодаря невысокому энергопотреблению и, что не менее важно, себестоимости, чипы ARM11 до сих пор применяются в смартфонах начального уровня: Samsung Galaxy Pocket и Nokia 500.

Чип Broadcom Thunderbird – один из немногочисленных представителей поколения ARM11, который до сих пор применяется в Android-смартфонах
Чип Broadcom Thunderbird – один из немногочисленных представителей поколения ARM11, который до сих пор применяется в Android-смартфонах

Современные поколения чипов

Все более-менее новые чипы архитектуры ARM принадлежат к семейству ARMv7, флагманские представители которого уже достигли отметки в восемь ядер и тактовой частоты свыше 2 ГГц. Разработанные непосредственно ARM Limited процессорные ядра принадлежат к линейке Cortex и большинство производителей однокристальных систем используют их без существенных изменений. Лишь компании Qualcomm и Apple создали собственные модификации на основе ARMv7 – первая назвала свои творения Scorpion и Krait, а вторая – Swift.

Чип Apple A6 (ядро Swift) – первая попытка Купертино собственноручно модифицировать архитектуру ARMv7
Чип Apple A6 (ядро Swift) – первая попытка Купертино собственноручно модифицировать архитектуру ARMv7

ARM Cortex-A8. Исторически первым процессорным ядром семейства ARMv7 было Cortex-A8, которое легло в основу таких известных SoC своего времени как Apple A4 (iPhone 4 и iPad) и Samsung Hummingbird (Samsung Galaxy S и Galaxy Tab). Оно демонстрирует примерно вдвое более высокую производительность по сравнению с предшествующим ARM11. К тому же, ядро Cortex-A8 получило сопроцессор NEON для обработки видео высокого разрешения и поддержку плагина Adobe Flash.

Правда, все это негативно сказалось на энергопотреблении Cortex-A8, которое значительно выше чем у ARM11. Несмотря на то, что чипы ARM Cortex-A8 до сих пор применяются в бюджетных планшетниках (однокристальная система Allwiner Boxchip A10), их дни пребывания на рынке, по всей видимости, сочтены.

Однокристальная система TI OMAP 3 – представитель некогда популярного, но сейчас уже угасающего поколения ARM Cortex-A8
Однокристальная система TI OMAP 3 – представитель некогда популярного, но сейчас уже угасающего поколения ARM Cortex-A8

ARM Cortex-A9. Вслед за Cortex-A8 компания ARM Limited представила новое поколение чипов – Cortex-A9, которое сейчас является самым распространенным и занимает среднюю ценовую нишу. Производительность ядер Cortex-A9 выросла примерно втрое по сравнению с Cortex-A8, да еще и появилась возможность объединять их по два или даже четыре на одном чипе.

Сопроцессор NEON стал уже необязательным: компания NVIDIA в своей однокристальной системе Tegra 2 его упразднила, решив освободить побольше места для графического ускорителя. Правда, ничего хорошего из этого не вышло, ведь большинство приложений-видеопроигрывателей все равно ориентировались на проверенный временем NEON.

Почти все флагманские планшетные компьютеры образца 2011 года были построены на базе чипа NVIDIA Tegra 2
Почти все флагманские планшетные компьютеры образца 2011 года были построены на базе чипа NVIDIA Tegra 2

Именно во времена «царствования» Cortex-A9 появились первые реализации предложенной ARM Limited концепции big.LITTLE, согласно которой однокристальные системы должны иметь одновременно мощные и слабые, но энергоэффективные процессорные ядра. Первой реализацией концепции big.LITTLE стала система-на-чипе NVIDIA Tegra 3 с четырьмя ядрами Cortex-A9 (до 1,7 ГГц) и пятым энергоэффективным ядром-компаньоном (500 МГц) для выполнения простеньких фоновых задач.

ARM Cortex-A5 и Cortex-A7. При проектировании процессорных ядер Cortex-A5 и Cortex-A7 компания ARM Limited преследовала одно и ту же цель – добиться компромисса между минимальным энергопотреблением ARM11 и приемлемым быстродействием Cortex-A8. Не забыли и про возможность объединения ядер по два-четыре – многоядерные чипы Cortex-A5 и Cortex-A7 мало-помалу появляются в продаже (Qualcomm MSM8625 и MTK 6589).

Схема строения однокристальной системы c четырьмя ядрами ARM Cortex-A5
Схема строения однокристальной системы c четырьмя ядрами ARM Cortex-A5

ARM Cortex-A15. Процессорные ядра Cortex-A15 стали логическим продолжением Cortex-A9 – как результат, чипам архитектуры ARM впервые в истории удалось примерно сравниться по быстродействию с Intel Atom, а это уже большой успех. Не зря ведь компания Canonical в системных требования к версии ОС Ubuntu Touch с полноценной многозадачностью указала двухъядерный процессор ARM Cortex-A15 или аналогичный Intel Atom.

Первой массовой однокристальной системой Cortex-A15 стала двухъядерная Exynos 5250, которая применяется в планшетнике Google Nexus 10 и лэптопе Samsung Chromebook
Первой массовой однокристальной системой Cortex-A15 стала двухъядерная Exynos 5250, которая применяется в планшетнике Google Nexus 10 и лэптопе Samsung Chromebook

Очень скоро в продажу поступят многочисленные гаджеты на базе NVIDIA Tegra 4 с четырьмя ядрами ARM Cortex-A15 и пятым ядром-компаньоном Cortex-A7. Вслед за NVIDIA концепцию big.LITTLE подхватила компания Samsung: «сердцем» смартфона Galaxy S4 стал чип Exynos 5 Octa с четырьмя ядрами Cortex-A15 и таким же количеством энергоэффективных ядер Cortex-A7.

Схема однокристальной системы big.LITTLE с процессорными ядрами ARM Cortex-A15 (big) и Cortex-A7 (LITTLE)
Схема однокристальной системы big.LITTLE с процессорными ядрами ARM Cortex-A15 (big) и Cortex-A7 (LITTLE)

Дальнейшие перспективы

Мобильные гаджеты на базе чипов Cortex-A15 еще толком не появились в продаже, а основные тенденции дальнейшего развития архитектуры ARM уже известны. Компания ARM Limited уже официально представила следующее семейство процессоров ARMv8, представители которого в обязательном порядке будут 64-разрядными. Открывают новую эпоху RISC-процессоров ядра Cortex-A53 и Cortex-A57: первое энергоэффективное, а второе высокопроизводительное, но оба способны работать с большими объемами оперативной памяти.

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


  • Arikkk

    Спасибо. интересно было почитать.

  • Darcklion

    Дякую за статтю. Приємно бачити такі статті на ITC.

  • Евгений Водяницкий

    интересно, спасибо

  • lowb0b

    Господа, прекратите спам. :)

  • http://twitter.com/Dinozavrr Динозавр

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

    Автор, ты с какого дуба рухнул вообще?

    Лучше сходить почитать http://ru.wikipedia.org/wiki/CISC , чем такую ахинею.
    “CISC (англ. Complex instruction set computing, или англ. complex instruction set computer — компьютер с комплексным набором команд) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:
    – нефиксированное значение длины команды;
    – арифметические действия кодируются в одной команде;
    – небольшое число регистров, каждый из которых выполняет строго определённую функцию.”

    И там же сказано, что современные процессоры Intel и AMD – не чистый CISC, а гибридные.

    • Ярослав Задоровський

      Не читайте рус вики, вечно что-то да недопишут – “However, modern x86
      processors also (typically) decode and split instructions into dynamic
      sequences of internally buffered micro-operations, which not only helps
      execute a larger subset of instructions in a pipelined (overlapping)
      fashion, but also facilitates more advanced extraction of parallelism
      out of the code stream, for even higher performance. Contrary to popular
      simplifications (present also in some academic texts), not all CISCs
      are microcoded or have “complex” instructions. As CISC became a catch-all term meaning anything that’s not a load-store (RISC) architecture, it’s not the number of instructions, nor the complexity of the implementation or of the instructions themselves, that define CISC,
      but the fact that arithmetic instructions also perform memory accesses.”

      • http://twitter.com/Dinozavrr Динозавр

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

        • Алексей Л

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

    • http://twitter.com/yura0605 Yu Ra

      Ну, при всех недостатках, сама попытка ИТС запостить аналитическую статью достойна всяческого уважения.
      Не стреляйте в пианиста….

  • Воніфатій

    Брєд. В школу.

    • http://www.facebook.com/people/Nikita-Zhyglinskyi/100003044878390 Nikita Zhyglinskyi

      Чего?

      • Воніфатій

        А тому, що x86 уже немає, є x86-64, x86-64 не CISC, окрім того є ще поширені MIPS etc etc etc

        Коротше, стаття написана школотою для школоти.

    • gerter

      Вы уже написали, куда вам надо пойти.

  • Валермон TIBER

    вот респект ITC.ua за такие статьи!

    еще было бы не плохо рассказать про модицицировавнные ARMv7, типа Krait, Swift, их отличия и чего производители добились, по сравнению с референсным ARMv7

    • yuriy_pt

      Может в будущем ;)

  • http://twitter.com/Alex_Privalov Александр Привалов

    BBC Micro был основан на MOST6502. Первый ARM’овый компьютер это Acorn Archimedes. А что касается мощностей, то в ARM’овых SoC’ах декодирование мультимедиа-данных (чаще всего) проводится не процессором, а аппаратными декодерами.

    • yuriy_pt

      Acorn Archimedes основывался на базе процессора ARM2. А чип ARM1 применялся в качество сопроцессора в некоторых модификациях BBC Micro. Аппаратный декодер современных SoC – упомянутый в статье NEON.

      • http://twitter.com/Alex_Privalov Александр Привалов

        О, спасибо за интересную информацию! Но все же он “не на базе” АРМа… Меня просто покоробила фраза “… архитектура ARM «выезжает» за счет … целом-то достаточной производительности для
        важнейших на сегодня целей: прорисовки веб-страниц и воспроизведения
        медиконтента.”

  • Norbert
  • http://www.ah.fm/ Laston Bar

    Автору безмерная благодарность! Всё “разжёвано” довольно подробно. Читать было интересно и познавательно.

    P.S.
    Ну и запутанно отчасти у ARM по части “линеек”, как у BMW с той же 7-й серией – вроде началась оная в 70-тых, а топ 760i вышел всего пару лет назад. Сорри за оффтопик.
    Так и тут: оказывается что vX это название целой серии (линейки), а в ней с нумерацией как придётся. Без пол литра не разобраться.

    • yuriy_pt

      ARM – дело тонкое :)

  • Anonymous

    Какая же это хуйня. Аффтар, википедию хотя бы почитай.

  • winnitod

    очень интересная и познавательная статья….

  • VladimirN

    А теперь пожалуйста еще ликбез о трудностях написания софта под разные платформы, и почему до сих пор софт под Х86 практически всегда намного функциональней? Почему развитие производительного железа пошло в основном путем Х86? Видимо эти преобразования в Х86 для чего то нужны и полезны, и они не лишние раз развитие пошло таким путем? В общем информация не полная, надо бы дополнить!

    • http://twitter.com/Alex_Privalov Александр Привалов

      Трудностей написания софта под разные платформы (если вы, конечно, пишете не на ассемблере) не существует – Си, С++ кросс платформенные. Например, недавно собирал под софт MIPS.
      А развитие пошло в сторону х86 (в области домашних ПК), потому что это единственная (Win8RT пока не считаем) платформа, на которую есть полноценная версия Windows.

      • VladimirN

        Все равно непонятно почему операционки начали делать под Х86 а не под RISC, почему железо пошло развиватся в сторону Х86?

        • http://twitter.com/Alex_Privalov Александр Привалов

          Влияние Intel? Вклад бабла? Влияние Microsoft?

          • Алексей Л

            Удачный коммерческий ход IBM, опубликование своей архитектуры и разрешение копировать устройства.

  • Александр

    Кто занимался ассемблером, тот понимает, что стилистика написания программы у каждого своя + есть множество ухищрений по оптимизации кода: череда конвейеров, то есть команд под разные конвейеры, выравнивание битности, и т.д. Так же программисты знают о ущербности оператора “IF” и подобных ему, причем во всех высокоуровневых языках и макро командах ассемблерных компиляторов, здесь тоже есть куча обходных путей, непосредственно поставленной задачи. Таким образом, код х86 (х86-64) можно довести до совершенства, где команды будут работать исключительно по делу.
    Теперь поговорим о трансляторе, о процессе декодирования команд х86 во внутренние абсолютно RISC микрокоды конвейеров о которых автор статьи видимо не в курсе, как не в курсе что уже много лет, процессоры х86 являются RISC и даже слово “гибрид” здесь неуместно, поясню почему: Декодирование занимает лишь маленький этап: один такт проца на 3 и более команд, а эффективность кода зависит от выше указанных корректив, позволяющих исключить лишний код. При компиляции из высокоуровневых языков, даже в трушной RISC архитектуре, результат далек от идеала и выполнения “мусорных” команд не избежать.
    Копаем дальше, оказывается в трушных RISC процессорах (arm и тд), тоже не всё так просто с командами и имеется транслятор, тоже происходит декодировка на внутренние микрокоды, причем в зависимости от режима работы (у арм их уже несколько), имеют разную длинну “МОПов”- пакетов конвейерных кодов. Всё просто, забивать внешне программу простейшими кодами не рентабельно, слишком много памяти это займет и слишком быстро её придется читать, плюс страдает адресация. Так что не стройте иллюзий относительно разницы архитектур, чистый RISC процов (как х86, так и арм) лишь внутри конвейера, а на деле транслируется более емкий внешний код.

    • VladimirN

      Я понял может и не все из написанного, но по тому как активно Гугл/Андроид поддерживает продвижение Х86 в виде новых атомов в мобильные платформы понятно что в этом есть какие-то преимущества. Молодец, что уточнил некоторые нюансы, а то статья смахивает на заказную рекламу ARM архитектуры!

  • Vavilon

    Спасибо! Замечательная статья! А в добавок можно интервью с представителем /президентом компании Arm Limited или экскурсия в гл. офис Arm !))) Ждем следующих статей!

  • roma

    почему то после прочтения таких статей вспоминается прыщавая юность, когда глотал любую писульку, где писалось о компах)) потом журнальчик “мой компьютер”, эх))

    • yuriy_pt

      Это сладкое слово – ностальджи :)

  • Антон Ещенко

    наверное лучшая статья на ITC за месяц … хоть и расписано все просто … но со вкусом .

  • http://www.facebook.com/bakiev Таир Бакиев

    В TEGRA же все ядра cortex A15!

  • http://www.facebook.com/bakiev Таир Бакиев

    Imagination далеко не только powerVR занимается

  • http://www.facebook.com/profile.php?id=100004833510569 Eugene Nikulin

    Понравилось

  • http://www.facebook.com/people/Aleksandr-Gorbatovskij/1499174515 Александр Горбатовский

    Меня всегда удивляло, что связка RISC и Unix потерпела поражение CISC и Windows.
    Может хоть сейчас, спустя 15 лет, наконец, отодвинут монополию.

    • http://www.prolinux.org/ Konstantin

      Microsoft уже сдает позиции на всех фронтах

      • Simper

        Да ну? У винды есть версия для ARM

        • Roma Chupin

          с количеством прилоджений несравненным с андроидом.

  • Прототип
  • MEser

    Замечательная статья, очень помогла мне с курсовым проектом, респект автору)