Сегодня почти каждый из нас использует устройства на базе ARM-процессоров — это смартфоны, телевизоры и даже холодильники с кофеварками. Несколько дней назад в прессу просочились слухи, что компания Apple объявит о переходе с платформы X86 на ARM на своих ноутбуках.
Мы в Advantech уже много лет производим устройства на платформе ARM и на это множество причин. В этой статье мы разберем что такое ARM (от англ. Advanced RISC Machine), в чем ее отличие от других архитектур и почему все больше производителей выбирает эту архитектуру.
Наборы инструкций RISC vs CISC
Для начала следует разобраться в чем принципиальное отличие процессоров ARM и X86. Для того, чтобы программисты смогли писать программы, работающие на разных процессорах, производители договорились унифицировать набор машинных инструкций до определенного формата и соблюдать его в разных моделях своих процессоров. Машинные инструкции это низкоуровневые команды, которые отвечают за базовые операции вроде записи/чтения/модификации данных в памяти, арифметику и т.д.
Существует несколько основных концепций, используемых при проектировании процессоров. Наиболее популярные и широко известные всем это RISC и CISC.
CISC (англ. Complex Instruction Set Computing) — этот подход используется для разработки универсальных и мощных процессоров, которые обычно используются в десктопных компьютерах и на серверах. Такие процессоры как Intel CoreiN/Xeon/Pentium, AMD Ryzen/Atlhon/Sempron и прочие хорошие знакомые процессоры имеют набор инструкций типа CISC, оформленную в виде стандарта x86.
Основные особенности концепции CISC:
- Большой набор машинных команд разного формата для разного типа задач
- Сложный формат кодировки инструкций
- Много разных форматов адресации
- Выполнение вспомогательных программ в микрокоде процессора
- Более высокое энергопотребление
- Высокая цена
Процессоры типа 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:
- Упрощенные инструкции фиксированной длины
- Меньшее энергопотребление
- Больший контроль над работой со стороны исполняемых программ
- Более сложные программы
Архитектура ARM значительно расширяет коцепцию RISC. Современные ARM-процессоры часто поставляются в формате SoC (System On Chip) и имеют на одном кристалле с процессором контроллер памяти, графическое ядро, аудио интерфейс, модули беспроводной связи и многое другое. Это позволяет производителям оборудования не тратить ресурсы на разработку собственных сложных систем под каждое устройство отдельно, а интегрировать уже готовую аппаратную платформу, сосредоточившись только на разработке необходимых функций конечного продукта.
X86 медленно развивается
Последнее десятилетие существенных инноваций в архитектуре X86 не наблюдается. Да, производители наращивают тактовую частоту и пытаются снижать энергопотребление, но такие процессоры по-прежнему остаются прожорливыми духовками, требующими много энергии и серьезную систему охлаждения. Именно поэтому мы, скорее всего, никогда не увидим смартфонов на X86 процессорах. Производители X86 процессоров пытаются наращивать мощность с помощью масштабирование в ширину: больше ядер, кеша и частот.
Современные X86 процессоры имеют десятки ядер
Попытки Intel создать энергоэффективный X86-процессор Atom были достаточно успешны, но кроме маломощных десктопов, ноутбуков и встраиваемых систем, этот процессор мало для чего подходит.
ARM это экономично и современно
Современные ARM-процессоры развиваются очень быстро. Каждый год выходят чипы существенно лучше своих предшественников. На данный момент средняя производительность ARM чипов все еще остается ниже X86, но в некоторых синтетических тестах они уже почти сравнялись.
Совершенно очевидно, что в будущем наши ноутбуки, и, возможно, десктопные компьютеры, будут работать на ARM-процессорах. Переходов ноутбуков Apple на собственные ARM-процессоры должно дать большой толчок всей индустрии в этом направлении.
Основные достоинства процессоров ARM:
- Цена — специфичные процессоры ARM могут стоить очень дешево, в сравнении с самыми дешевыми X86 разница может в несколько порядков.
- Энергопотребление — низкое энергопотребление позволяет производить устройства с автономным питанием а также более компактные устройства за счет более низкого энергопотреблениях и меньших системах охлаждения
- Размеры — процессоры ARM могут быть очень компактного размера, не требующие даже пассивного охлаждения, при этом достаточно мощные. Это позволяет производить устройства очень компактного размера, недостижимого с процессорами X86.
Устройства Advantech на платформе ARM
Advantech давно производит продукты на базе платформы ARM для разных отраслей и задач. От промышленных контроллеров, до сетевого оборудования и компактных компьютеров. Мы уже рассказывали о некоторых наших продуктах на ARM в других статьях.
WISE-710 — IoT-шлюз на базе i.MX6
WISE-710 — универсальное устройство, которое одновременно может быть шлюзом для промышленных интерфейсов, устройством сбора и обработки данных, хабом для IoT устройств и маршрутизатором. Построено на базе SoC i.MX6, процессора на архитектуре ARM Cortex-A7.
ECU-1152 — Шлюз для промышленных интерфейсов на базе ARM Cortex A8
ECU-1152 — шлюз для промышленных интерфейсов а также устройство для связи с объектом и устройства сбора и передачи данных с объекта. Построено на базе процессора ARM процессора с ядром Cortex A8
Миниатюрный ARM-компьютер UNO-1251G
UNO-1251G — крохотных компьютер, умещающийся на DIN-рейку, на базе 32-битного процессора Cortex A8 под управлением Linux или Windows CE. Поддерживает модули расширения Wi-Fi/3G/4G. Имеет встроенную CAN-шину и два интерфейса RS-232. Два порта LAN позволяют подключать его к двум независимым Ethernet сетям или использовать как маршрутизатор.
Компьютеры для машинного обучения на базе Nvidia Jetson
MIC-720AI — построен на базе платформы Jetson TX2, работающей на собственных ядрах Nvidia ARM Cortex-A57 и NVIDIA Denver 2 с полностью пассивным охлаждением. Предназначен для установки в промышленные системы машинного зрения, на производстве и в подвижных объектах. Безвентиляторная конструкция обеспечивает полную бесшумность в работе и позволяет использовать компьютер в пыльных помещениях без необходимости обслуживания. Работает под управлением Linux
Будущее за ARM
Наверняка архитектура X86 с нами еще надолго. Все профессиональные высокопроизводительные вычисления пока делаются на этой платформе. Под X86 написаны основные десктопные операционные системы и прикладные программы. Однако уже сегодня ARM активно вытесняет устаревший X86 даже в сфере больших вычислений. Платформы вроде Nvidia Jetson сравнимы по производительности, а в некоторых задачах и превосходят системы на базе X86. Так что нас обязательно ждет яркое противостояние двух платформ, от которой в конечном счете потребители только выиграют.
Расскажите, как вы используете ARM-процессоры сегодня или как планируете использовать в будущем.
Coocos
Какая чушь… Jetson такой быстрый и холодный только из-за ARM? А что если заменить ARM ядра на x86 типа atom? Он перестанет быть таким быстрым?
Почему будущее за ARM, а не за RISC-V?
А как-же серверы на базе RISC?
Высокая цена CISC? В сравнении с чем?
И главный вопрос: Почему в в своих устройствах используете сильно устаревшее ядро Cortex A8?
Dima_Sharihin
За ARM не будущее, а настоящее. Из embedded-плафторм, он, скорее всего, поддерживается лучше всех.
Возможно потому что TI AM335x. Для многих задач (особенно "послать SNMP TRAP по срабатыванию датчика") больше и не надо, а процессор стоит смешные копейки (~4$/1ku), дешевле некоторых микроконтроллеров.
lelik363
Что по вашему является embedded-плафтормой?
Dima_Sharihin
Компьютер, специализированный под решение конкретной производственной задачи.
lelik363
Вам не кажется, что это узкое понимания термина embedded?
Встраиваемые(embedded) системы используются не только на производстве, но и на транспорте, в медицине, в авиации и т.д. Задачи там решаются достаточно серьезные, поэтому без x86 пока ещё сложно обойтись, так поддержка со стороны участников рынка велика.
Dima_Sharihin
Это в любом случае демагогия. х86 тоже может быть embedded-платформой, промышленных ПК на них порядком много.
Недостаток х86 "в чистом потребительском виде" — в отстутствии периферии. Если человек ее сам разрабатывает — то флаг ему в руки, он и процессор может любой брать. А если нужно несколько CAN-шин, RS-485, Ethernet, прочего барахла и чтобы еще работало с предсказуемыми задержками — то проще взять SOC на ARM, где вся периферия аккуратно на одном кристалле. Решение на последнем получится проще и компактнее.
lelik363
Громко сказано.
Вся периферия так или иначе будет/может располагаться на плате с SOC и упаковываться в корпус. Допустим Baytrail является SOC и имеет CAN, и UARTы, хотя во многих случаях гораздо выгоднее применить дискретное решения, используя шину для расширения типа PCIe.