Что значит arm. Процессоры ARM против x86: будет ли схватка

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

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

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

На данный момент существуют два типа архитектур: CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). Первая предполагает, что в процессоре будут реализованы инструкции на все случаи жизни, вторая, RISC - ставит перед разработчиками задачу создания процессора с набором минимально необходимых для работы команд. Инструкции RISC имеют меньший размер и более просты.

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

Архитектура процессора x86 была разработана в 1978 году и впервые появилась в процессорах компании Intel и относится к типу CISC. Ее название взято от модели первого процессора с этой архитектурой - Intel 8086. Со временем, за неимением лучшей альтернативы эту архитектуру начали поддерживать и другие производители процессоров, например, AMD. Сейчас она является стандартом для настольных компьютеров, ноутбуков, нетбуков, серверов и других подобных устройств. Но также иногда процессоры x86 применяются в планшетах, это довольно привычная практика.

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

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

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

Эта архитектура была представлена чуть позже за x86 - в 1985 году. Она была разработана известной в Британии компанией Acorn, тогда эта архитектура называлась Arcon Risk Machine и принадлежала к типу RISC, но затем была выпущена ее улучшенная версия Advanted RISC Machine, которая сейчас и известна как ARM.

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

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

Отличия ARM и x86

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

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

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

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

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

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

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

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

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

Процессоры x86 потребляют намного больше энергии, чем ARM. Но на потребление энергии также влияет размер самого транзистора. Например, процессор Intel i7 потребляет 47 Ватт, а любой процессор ARM для смартфонов - не более 3 Ватт. Раньше выпускались платы с размером одного элемента 80 нм, затем Intel добилась уменьшения до 22 нм, а в этом году ученые получили возможность создать плату с размером элемента 1 нанометр. Это очень сильно уменьшит энергопотребление без потерь производительности.

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

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

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

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

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

Выводы

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

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

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

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

Совсем недавно сама постановка вопроса казалась немыслимой: можно ли вообще сравнивать "телефонный" процессор с чипами, применяющимися в "персоналках", серверах и даже суперкомпьютерах? Между тем, развитие технологий и причуды рынка привели к ситуации, когда специалисты всерьёз обсуждают возможность даже не просто конкуренции между процессорами ARM и чипами x86, а яростной схватки между ними.

Прежде всего, определимся с понятиями и познакомимся с потенциальными соперниками.

Центральные процессоры x86 – это микропроцессоры, поддерживающие одноимённый набор инструкций и обладающие микроархитектурой, производной от IA-32, то есть Intel Architecture 32-бит. Чипы построены на основе архитектуры CISC (Complex Instruction Set Computing, то есть "с полным набором инструкций"), в которой каждая инструкция может выполнять сразу несколько низкоуровневых операций.

Исторически семейство x86 восходит к 16-разрядной модели Intel 8086, выпущенной в 1978 году. 32-битными эти процессоры стали лишь в 1985 году, когда был представлен первый "триста восемьдесят шестой". В 1989 году Intel выпустила первый скалярный (то есть выполняющий одну операцию за один такт) чип i486 (80486), в котором впервые появились встроенная кэш-память и блок вычислений с плавающей запятой FPU. Процессоры Pentium, представленные в 1993 году, стали первыми суперскалярными (то есть выполняющими несколько операций за такт) и суперконвейерными (в этих чипах было два конвейера).

Итак, современные x86-совместимые чипы – это суперскалярные суперконвейерные микропроцессоры, построенные на основе CISC-архитектуры.

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

История ARM-процессоров началась в том же 1978 году, когда была создана британская компания Acorn Computers. Под маркой Acorn выпускались несколько чрезвычайно популярных на местном рынке моделей персональных компьютеров на основе восьмибитных чипов MOS Tech 6502. Этот же ЦП, кстати, стоял в Apple I и II и Commodore PET.

Однако с появлением более совершенной модели 6510, которая в 1982 году стала устанавливаться в Commodore 64, линейка компьютеров Acorn, включая популярнейший образовательный BBC Micro, потеряла актуальность. Это подтолкнуло владельцев Acorn к созданию собственного процессора на базе архитектуры 6502, который позволил бы на равных конкурировать с машинами класса IBM PC.

Первая серийная модель ARM2, разработанная в рамках проекта Acorn RISC Machine, была выпущена в 1986 году и стала самым конструктивно простым и недорогим 32-битным процессором на тот момент: в нём отсутствовала не только кэш-память, что было нормой для чипов того времени, но и микропрограммы: в отличие от CISC-процессоров, микрокод исполнялся как и любой другой машинный код, путём преобразования в простые инструкции. Кристалл ARM2 состоял из 30000 транзисторов, и эта компактность конструкции осталась характерным признаком этого семейства: в ARM6 всего на 5000 транзисторов больше.

В отличие от Intel или AMD, ARM сама не занимается выпуском процессоров, предпочитая продавать лицензии другим. Среди компаний, располагающих такими лицензиями, есть те же Intel и AMD, а также VIA Technologies, IBM, NVIDIA, Nintendo, Texas Instruments, Freescale, Qualcomm и Samsung. Показательный факт: если AMD, вторая компания на рынке x86-процессоров, в 2009 году отметила выпуск своего 500-миллионного ЦП, то в одном только 2009 году на рынок было поставлено почти три миллиарда ARM-процессоров!

Современные ARM-процессоры – это суперскалярные суперконвейерные микросхемы, построенные на основе RISC-архитектуры.

Судя по этим двум определением, чуть ли не единственное формальное отличие семейств ARM и x86 – микроархитектуры RISC и CISC. Однако и это уже нельзя считать принципиальным отличием: начиная с модификации i486DX, x86-чипы стали больше напоминать RISC-процессоры. Начиная с этого поколения, микросхемы, сохраняя совместимость со всеми предыдущими наборами команд, демонстрируют максимальную производительность только с ограниченным набором простых инструкций, который подозрительно похож на набор RISC-команд. Поэтому сегодняшние x86 можно смело считать CISC-процессорами с RISC-ядрами: встроенный в микросхему аппаратный транслятор декодирует сложные CISC-инструкции в набор простых внутренних RISC-команд. Даже несмотря на то, что каждая CISC-инструкция может "раскладываться" на несколько RISC-команд, быстрота выполнения последних обеспечивает значительный прирост производительности. К тому же, не следует забывать о суперскалярности и суперконвейерности современных чипов.

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

Тогда что же делить столь разным продуктам? Конечно, нелепо сравнивать четырёхъядерный Core i5 и "телефонный" Qualcomm MSM7201A, стоящий в коммуникаторах HTC Dream и Hero, но есть масштабы, где рынки ARM и i86 перекрываются уже сегодня. Это, с одной стороны, такие новейшие чипы ARM, как Cortex-A8 (архитектура ARMv7-A), а с другой – низковольтные x86-процессоры класса Intel Atom. На основе Cortex-A8 построен модный планшет Apple iPad, а Intel Atom работают в подавляющем большинстве нетбуков.

У этих чипов есть ещё одна важная общая особенность: оба этих процессора работают по принципу последовательного исполнения инструкций, в то время как большая часть x86 – процессоры с внеочередным выполнением команд. Эта схема призвана добиться максимальной производительности на ватт потребляемой энергии за счёт отказа от модулей, отвечающих за внеочередное выполнение инструкций.

Есть у Atom и несколько принципиальных отличий от Cortex-A8. Прежде всего, практически все микросхемы этого семейства поддерживают технологию параллельных вычислений Hyper-Threading, которая позволяет представить одно физическое ядро как два виртуальных. Это весьма существенное преимущество, заметно повышающее производительность, причём не только в относительно редких до сих пор многопоточных приложениях, но и при выполнении команд с интенсивным использованием систем ввода-вывода. К примеру, Atom с Hyper-Threading заметно быстрее загружает Windows, чем сравнимый с ним по возможностям одноядерный VIA Nano без поддержки такого режима.

Практическое сравнение производительности Atom и Cortex-A8 провёл Вэн Смит, автор тестовых пакетов OpenSourceMark, miniBench и один из соавторов SiSoftware Sandra. Тестировались машины на базе процессоров Atom N450, Freescale i.MX515 (Cortex-A8), VIA Nano L3050 и, для сравнения, на основе мобильного Athlon XP-M на ядре Barton. Поскольку за точку отсчёта были приняты характеристики Cortex-A8 с тактовой частотой 800 МГц, рабочие частоты VIA Nano и Athon были снижены до того же значения, а Atom – до 1000 МГц (дальнейшее снижение оказалось невозможным). При этом у Cortex-A8 осталось несколько заведомо слабых мест: поддержка медленной 32-битной памяти DDR2-200 и более чем скромная встроенная графика с максимальным разрешением 1024 на 768 при шестнадцатибитной глубине цвета. Все тесты проводились на системах под управлением операционной системы Ubuntu 9.04 Linux.

Результаты тестирования оказались более чем любопытными: Cortex-A8 продемонстрировал вполне конкурентоспособную производительность в целочисленных вычислениях при значительно более низком энергопотреблении по сравнению с соперниками. Ожидаемо провальными оказались лишь тесты на пропускную способность памяти и на вычисления с плавающей запятой – традиционной "ахиллесовой пятой" ARM-чипов. В течение продолжительного времени в ARM-процессорах вообще отсутствовали модули FPU и хотя в Cortex-A8 есть два таких модуля (Neon 32-бит SP и VFP), их мощности явно недостаточно. Вычисления с плавающей запятой – это и трёхмерные игры, и научное моделирование, и некоторые виды обработки и кодирования видео и звука. Так что если производители процессоров ARM действительно нацелились на нишу нетбуков, неттопов и планшетников, им нужно существенно улучшить производительность FPU. С подробными результатами всех тестов можно ознакомиться здесь (http://www.brightsideofnews.com/news/2010/4/7/the-coming-war-arm-versus-x86.aspx).

Стоит ли нам ожидать схватки между столь разными и столь похожими семействами процессоров ARM и x86? Пока по производительности в массовых развлекательных приложениях "армы" существенно уступают даже "атомам". Однако перспективы внушают оптимизм: новейшая архитектура Cortex-A9 рассчитана на создание процессоров с одним-четырьмя ядрами и, как утверждают в ARM Limited, в них значительно улучшена производительность вычислений с плавающей запятой. Первые чипы на базе Cortex-A9 – NVIDIA Tegra 2 – это двухъядерные микросхемы с графическим ядром, поддерживающим видео формата Full HD 1080p и трёхмерную графику с программным интерфейсом OpenGL ES 2.0. Планшет или нетбук с такими характеристиками запросто поспорит с любым устройством на основе Atom. Добавим сюда исключительную экономичность, а значит, и длительное время автономной работы. Так что Apple iPad вполне может стать символом начала борьбы чипов ARM с x86-процессорами на их же собственном поле.

Еще совсем недавно (всего 10 лет назад) на рынке пользовательских процессоров было три архитектуры, и все они были более-менее неплохо разделены: ARM-процессоры ставились в мобильные устройства, где важно было время автономной работы, x86-процессоры ставились в устройства под управлением Windows, ну и в пику Intel Apple использовала в своих устройствах процессоры на архитектуре PowerPC (хотя мы знаем, что она все же «переползла» на x86). Но на сегодняшний момент на рынке пользовательских процессоров осталось всего две архитектуры - PowerPC выбыл из гонки, причем совсем недавно: последнее устройство на этой архитектуре, PlayStation 3, перестали производить всего пару недель назад. Более того - все больше утечек о том, что на ARM-процессорах можно будет запускать полноценную Windows, и с другой стороны - тот же Android отлично работает с х86-процессорами начиная с версии 4.0. То есть, как мы видим, разница между этими архитектурами все больше размывается в глазах пользователей, и в этой статье мы и выясним, почему так происходит.

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

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


Процессоры х86 построены на архитектуре CISC (Complex Instruction Set Computing, процессоры с полным набором инструкций) - это означает, что в процессоре реализовано максимальное число инструкций, что, с одной стороны, упрощает написание программ и уменьшает их вес, и другной стороны - процессор практически невозможно нагрузить на 100%.

Первым процессором на архитектуре х86 был Intel 8086 - это первый 16-битный процессор от Intel, работающий на частоте до 10 МГц и выпущенный в 1978 году. Процессор оказался крайне популярным и производился до 1990 года, а все последующие процессоры стали с делать с ним совместимые. Сначала эта совместимость показывалась в виде окончания названия процессора на 86, ну а в дальнейшем, с выходом Pentium, архитектуру решили назвать х86.

В 1985 году вышел процессор i386, который стал первым 32-битный процессором от Intel, а к 1989 году Intel выпустила первый скалярный процессор i486 - этот процессор умел выполнять одну операцию за такт. В дальнейшем, с выходом Pentium в 1993 году, процессоры от Intel стали суперскалярными, то есть научились делать несколько операций за один такт, и суперконвейерными - то есть имели два вычислительных конвейера. Но это было еще не все - по сути все процессоры Intel, начиная с i486DX, являются CISC-процессорами с RISC-ядром (Reduced Instruction Set Computer, процессоры с сокращённым набором инструкций): в микропроцессор встраивается аппаратный транслятор, который непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC, при этом одна команда x86 может порождать несколько RISC-команд.

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

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

Архитектура ARM появилась позже x86, в 1986 году с выходом процессора ARM2. Цель ее разработки была в максимальной оптимизации и уменьшения числа транзисторов - к примеру, под нагрузкой x86-процессор тогда использовал едва ли 30% от числа всех транзисторов, все другие банально простаивали. Поэтому ARM разработали собственный чип на RISC-архитектуре, который назвали ARM2 - он имел всего 30000 транзисторов (сравните с 275 тысячами транзисторов в актуальном тогда i386), и не имел как кэша (что в общем-то тогда было нормой для процессоров - кэш можно было докупить и поставить отдельно), но и микропрограммы как таковой - микрокод исполнялся как и любой другой машинный код, путём преобразования в простые инструкции:


В итоге из-за того, что число транзисторов в ARM-процессорах ощутимо меньше, чем в х86, мы и получаем, что их тепловыделение тоже ощутимо ниже. Но, с другой стороны, из-за упрощенной архитектуры и производительность у ARM тоже ощутимо ниже, чем у x86.

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

Итоги

В результате мы видим две крайности: x86 являются мощными решениями, обвешанными инструкциями, которые могут выполнять абсолютно любые задачи с хорошей скоростью. Но за это приходится платить увеличенным тепловыделением. ARM же - простые процессоры, у которых набор инструкций ощутимо меньше, поэтому выполнение многих серьезных задач на них не имеет особого смысла из-за медлительности процесса. Но при этом и тепловыделение низкое. Однако самое основное - обе архитектуры поддерживают RISC-инструкции, а значит что на обеих архитектурах можно запускать одинаковые ОС, что мы и видим в случае с Android, Linux и Windows, и это означает, что в будущем разница между х86 и ARM будет размываться все больше.

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

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

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

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


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


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

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


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


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

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

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

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


Отдельные компоненты однокристальной системы могут быть разработаны как непосредственно 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.

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

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


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), их дни пребывания на рынке, по всей видимости, сочтены.

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

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


Именно во времена «царствования» 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).


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


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


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

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

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

Ответ - для приложений с повышенной функциональной безопасностью. По крайней мере ядра ARM Cortex-R в высокопроизводительных «реальновременных» микроконтроллерах компании Texas Instruments для этого и применяются.


Хотя процессоры Cortex-R практически полностью совместимы с процессорами Cortex-A и Cortex-M в плане набора инструкций, все-таки между ними есть существенные различия. В частности, ядро Cortex-R характеризуется более высокой производительностью по сравнению с Cortex-M, и в то же время оно может выполнять детерминированные операции, чего сложно добиться на процессорах приложений Cortex-A. Так что с точки зрения производительности Cortex-R располагается между Cortex-M и Cortex-A, но в то же время может применяться как в микроконтроллерах, так и в процессорах.


Ядро Cortex-R построено по гарвардской архитектуре и обеспечивает высокую тактовую частоту благодаря 8-ступенчатому конвейеру и суперскалярному выполнению инструкций. Аппаратные SIMD-инструкции позволяют осуществлять высокопроизводительную цифровую обработку сигналов и работу с медиа-данными. Кроме того, Cortex-M характеризуется такими увеличивающими производительность особенностями, как блок предвыборки инструкций, блок предсказания ветвлений и аппаратный делитель. Такие архитектурные компоненты помогают процессорам Cortex-R4 и Cortex-R5 достигнуть высоких показателей производительности DMIPS/МГц. Другой интересной особенностью ядра Cortex-R является то, что конвейер операций с плавающей точкой, совместимый со стандартом IEEE-754, поддерживает форматы как одинарной точности (32 бита), так и двойной точности (64 бита), и работает параллельно с конвейером операций над числами с фиксированной точкой.



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


Если вы работаете в отрасли, связанной с обеспечением безопасности и надежности устройств, то, наверно, слышали о функциональной безопасности программируемых электронных компонентов, и в первую очередь в голову может прийти стандарт IEC 61508. Это основной международный стандарт безопасности, существующий около 20 лет и соблюдаемый во многих отраслях. Функциональная безопасность предусматривается на транспорте (аэрокосмическая, железнодорожная и автомобильная отрасли), в промышленности, медицине, возобновляемой энергетике и других областях. В этих отраслях либо были разработаны собственные стандарты безопасности, либо были адаптированы международные стандарты, например, IEC 61508. Особо следует отметить, что в 2012 году в автомобильной промышленности был утвержден собственный стандарт функциональной безопасности ISO 26262.


Так, чем же хорош Cortex-R в плане функциональной безопасности? В первую очередь уникальными конфигурационными особенностями, позволяющими осуществлять коррекцию ошибок. Эти особенности являются опциями, которые компания ARM встроила прямо в ядро, и которые включают функции обнаружения и исправления ошибок, защищающие шины и системы памяти первого уровня, пользовательский и привилегированный режимы работы программного обеспечения с блоком защиты памяти (MPU) и поддержку конфигурации dual-core Lock Step (DCLS).


Что же такое DCLS и зачем оно нужно? Если вы инженер-программист и работаете над проектом, предусматривающим надежную и безопасную работу устройства, то DCLS сделает вашу жизнь намного проще. Это особенно полезно, если вы используете два микроконтроллера или два независимых ядра для диагностики ошибок в одном ядре.


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


Для простоты понимания механизм DCLS можно представить как сочетание основного процессора и проверочного модуля. С точки зрения программиста программирование такой системы не будет отличаться от программирования обычного одноядерного микроконтроллера. Второе ядро, то есть проверочный модуль, наряду с логикой сравнения выполняет работу описанного выше «лишнего» кода, а также много чего еще. Логика сравнения может обнаружить ошибку за несколько циклов процессора в то время, как дискретное ядро может потратить на это сотни или даже тысячи циклов. Поэтому DCLS гораздо быстрее в деле обнаружения ошибок и может сэкономить драгоценное время при разработке надежного кода.




Top