Что такого хорошего в ARM?

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

arm
61 голос | спросил 2 revs
stevenvh
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

9 ответов


51

Производительность - одно из преимуществ. Будучи 32-битным процессором, он превосходит (почти) все 8-разрядные контроллеры DMIPS-мудрый. Ядро также прошло несколько поколений, прочитав оптимизацию.
Эти оптимизации не только отображаются в показателях производительности, но и в потребляемой мощности . Самый последний ядро ​​удвоил свой коэффициент DMIPS /mW по сравнению с предыдущим поколением (см. Также этот ответ ).
ARM доступен у большого многих производителей , больше, чем у любого другого микроконтроллера, и у каждого из них есть несколько вариантов на выбор, с различными комбинациями периферийных устройств и памяти на периферии и пакетов. Пример: NXP предлагает не менее 35 контроллеров с встроенным Ethernet .
ARM недорого ; ARM, вероятно, был первым 32-битным контроллером, который нарушил барьер 1 доллара США.

Эта комбинация производительности , широкого предложения и низкая стоимость делает ее такой, что вы просто не можете игнорировать ARM:

  

В 2005 году около 98 процентов всех мобильных телефонов использовали по меньшей мере одно ядро ​​ARM на своих материнских платах, согласно исследованиям аналитической фирмы Linley Group. ( источник )

Рынок мобильных телефонов также имеет еще один эффект. Мобильные телефоны очень ограничены в пространстве и требуют небольших пакетов. NXP LPC1102 поставляется в пакете WLP-16 всего 5 мм \ $ ^ 2 \ $, шкала, ранее использовавшаяся только 8-разрядными микроконтроллерами с низким буфером.

ответил supercat 3 J000000Monday17 2017, 20:56:46
37

Один момент еще не упоминался: в 1908 году парень по имени г-н P.L. Робертсон изобрел новую улучшенную головку и драйвер головки винта . Он хотел быть единственным человеком, который мог бы изготовить винты и драйверы для своего дизайна. Спустя несколько десятилетий кто-то по имени г-н Генри Ф. Филлипс придумал альтернативный дизайн . В отличие от г-на Роберсона, г-н Филлипс больше интересовался лицензированием своего дизайна, чем в производстве винтов и драйверов.

Аналогичным образом, в 1970-х годах Sony придумал технологию под названием Betamax ; JVC появился один из них, названный VHS. Sony заинтересовалась выпуском видеомагнитофонов; JVC больше интересовался лицензированием.

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

ответил supercat 3 J000000Monday17 2017, 20:56:46
32
  1. Такое же аппаратное /программное обеспечение для разработки для ARM всех поставщиков. Вы покупаете JLINK /ULINK и некоторые Keil IDE один раз и можете использовать его для разработки, эмуляции и отладки практически любого ARM на планете.

  2. Нет необходимости изучать новую архитектуру при переходе к новому поставщику чипов => меньше vendor lockin => больше конкуренции => более низкие цены

  3. В современных технологических процессах (0.18um и ниже) ядро ​​ARM настолько крошечное, что жертвуя его для 8-битного ядра, не спасет никакой видимой доли цены. Отсюда и причина для стандартной высокопроизводительной, но дешевой архитектуры.

  4. Производительность - только с ARM вы можете иметь 32-битную 32-разрядную 32-битную 32-битную 32-битную поддержку аппаратного обеспечения 32 * 32-> 64 и деление на устройства под-1 доллар (а именно, для STM32 нижнего уровня для пример)

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

ответил supercat 3 J000000Monday17 2017, 20:56:46
27

Я сосредоточился на процессорах среднего класса ARM по следующим причинам:

  1. Полная поддержка Linux

    Это означает, что драйверы устройств почти бесплатны. Я сделал достаточно USB-хоста и кода устройства, я больше не хочу этого делать. Я также не слишком взволнован о попытке добавить TCP /IP к случайной процессорной платформе (хотя LwIP / uIP не так уж плохо). Я даже не пробовал делать Wi-Fi, настоящий стек Bluetooth, веб-камеры и т. Д. Использование Linux означает, что очень широкий набор устройств становится намного легче разговаривать.

    Я также был очень поражен тем, насколько рациональны и легки записи драйверов устройств Linux. После некоторых драйверов устройств Windows Linux - это мечта. (Справедливости ради, фреймворк Windows значительно улучшился с тех пор, как я это делал.)

    Программная платформа также потрясающая. Я получаю шифрование SSL, файловые системы, удаленное управление, простые обновления приложений (скопируйте файл вместо сложного загрузчика) и т. Д. О, и множество существующих утилит, если вам что-то нужно сделать.

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

    Я говорю о ядрах ARM с фактическими MMU , так что это для средних (хотя вы могли бы использовать μClinux , я полагаю).

  2. Потребляемая мощность

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

Это в значительной степени мои рассуждения. Я не вижу, чтобы уравнение менялось в ближайшее время.

ответил supercat 3 J000000Monday17 2017, 20:56:46
19

ARM прошла прогрессию:

  1. Архитектура с 32-разрядными командами, которая имела более громоздкий код, чем многие другие архитектуры, но которая могла быть быстро расшифрована и могла выполнять множество операций с меньшим количеством команд, чем конкурирующие архитектуры
  2. Архитектура с двумя командами, которая может переключаться между красивым и мощным (но, к сожалению, несколько раздутым) набором команд ARM, и менее мощным (но гораздо более компактным) 16-разрядным набором команд «Thumb». Каждая инструкция Thumb имела соответствующую инструкцию ARM, сводящую к минимуму необходимость программирования программистами двух наборов инструкций.
  3. Архитектура Thumb2, в которой добавлены инструкции из двух слов в набор инструкций Thumb, что дает в основном выигрышный выигрыш: типичный ARM-код будет содержать сочетание инструкций, доступных только в ARM, и инструкции, которые были бы доступный в Thumb, но должен быть представлен как 32 бита; в Thumb2 такой код получает пространственные преимущества замены некоторых из 32-разрядных инструкций 16-разрядными.
  4. Архитектура Thumb-only, которая является более ограниченной, чем я хотел бы, но которая меньше и дешевле, чем любая другая.

Архитектура ARM позволяет выполнять довольно сложные операции очень быстро - гораздо быстрее, чем на любом другом чипе. Например (используя ARM7-TDMI):

  ldrh r0, [r10, # ADDR_BUS_OFS]; Чтение целевой адресной шины (13 бит)
  ldrb r1, [r9, r0, lsr # 8]; Использовать верхние биты для поиска адреса в таблице обработчиков
  add pc, r9, r1 lsl # 2; Перейти к соответствующему обработчику

Каждый обработчик хранится в виде байта, который дает 1/4 смещения адреса от начала таблицы. Эффект сети заключается в том, что после загрузки содержимого адресной шины требуется шесть циклов (две инструкции), чтобы перейти к обработчику, основанному на верхних пяти битах извлеченного, используя 32-байтовую таблицу перехода.

Соответствующий код THUMB будет больше похож:

; Предполагая, что нам не нужно r6 /r7 для чего-либо еще, они переназначаются из r9 /r10
  ldrh r0, [r7, # ADDR_BUS_OFS]
  mov r1, r0
  lsr r1, r1, # 8; THUMB требует, чтобы источник и место назначения были одинаковыми
  ldrb r1, [r6, r1]
  lsl r1, r1, # 1; Можно использовать shift-left-two, если целевые адреса были выровнены с полным словом
  добавить pc, r1

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

Кстати, Thumb2 двоично совместим с Thumb, что облегчает использование более ранних инструментов, но означает, что есть некоторые вещи, которые он не может сделать, а также оригинальный ARM. Например, в ARM можно «повернуть» растровое изображение 8x8, содержащееся в четырех регистрах, используя примерно 3 команды на два бита:

  movs r0, r4, lsl # 25; Поместите верхний бит LSB в C и следующий бит в N
  orrcs r6, # 0x00000001
  orrmi r6, # 0x00000100

В Thumb2 необходимо добавить явные условные инструкции:

  movs r0, r4, lsl # 25; Поместите верхний бит LSB в C и следующий бит в N
  ММСК
  orrcs r6, # 0x00000001
  itmi
  orrmi r6, # 0x00000100

Чистое снижение эффективности времени и пространства на 33% по сравнению с ARM; это, вероятно, самый худший пример кода Thumb менее эффективен, чем ARM, и даже это не совсем ужасно.

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

ответил supercat 3 J000000Monday17 2017, 20:56:46
14

Немного истории, Желудь хотела получить пользовательский ЦП (например, с встроенные элементы управления памятью и т. д.) для нового компьютера в 1980-х годах (8 бит 6502 ограничивал то, что они могли сделать). Они разговаривали с Intel, но Intel не лицензировала им процессор.

Итак, Acorn разработал очень простой процессор RISC, но поскольку они не были производителем ЦП, они были готовы лицензировать его для всех (и нужны все быстрые деньги, которые они могли получить!). (Я считаю, что процессор работал в первый раз, отчасти потому, что это было так просто, а также дизайнер создал множество исследовательских процессоров в то время как в Кембриджском университете.)

С годами дизайн ЦП становится проще и проще включать в дизайн чипов клиентов.

Производитель чипов чувствовал себя безопасным лицензированием от Acorn, поскольку они не были конкурентом. Также никто не думал, что они отправятся в родной город конкурента, чтобы получить лицензию, поскольку Acorn был в Кембридже (настоящий!) . (Была ли возможность «поиска факта» в Кембридже, чтобы посещать Acorn, влияет на сокращение списка вариантов в любой точке ....)

Многие проекты, которые включают процессор Acorn Risc Machine, были для встраивания системы, важно было использовать мощность. Для процессора Acorn Risc Machine также были созданы дешевые и хорошие инструменты для разработки.

Поэтому, когда мобильным телефонам стали нужны пользовательские чипы с встроенным процессором, Acorn был переименован в ARM, а остальная часть - история. (Может быть, было и то, что другие процессоры в основном контролировались США, но мобильные телефоны впервые стали нормальными в Европе)

(Все это напоминает вам о Microsoft и Dos с небольшой неизвестной командой от IBM?)

Тот факт, что ARM был одним из лучших процессоров в то время (и до сих пор) для многих задач, также помог - но просто иметь «лучший» процессорный дизайн недостаточно.

ответил supercat 3 J000000Monday17 2017, 20:56:46
13

Технические проблемы в сторону, есть много нетехнических причин для ARM. Но быстрый ответ таков: это не Intel (или x86).

Если вы посмотрели, куда инвестируются CPU R & amp; D долларов, сейчас они попадают в основном в два лагеря: ARM и Intel. (Я игнорирую небольшие MCU, и я собираю AMD в Intel). В PowerPC, MIPS, SPARC и другие крупные процессоры очень мало денег. ARM и Intel остаются единственными, кто все еще стоит.

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

С ARM у вас нет этого багажа. Существует много источников микросхем от микроконтроллерных линий до многоядерных монстров. Вам не нужно иметь дело с лицензированием BIOS (который очень похож на продавца подержанных автомобилей). И производители и поставщики, как правило, к вам относятся.

ответил supercat 3 J000000Monday17 2017, 20:56:46
12

Сравните ARM7 / ARM9 до MIPS IV и есть мало преимуществ, кроме вопросов лицензирования, которые уже хорошо упомянуты. Внутренности набора инструкций MIPS и внутренней шины делают его превосходным (производительность на стоимость) для определенных типов конструкций; поэтому многие маршрутизаторы Wi-Fi используют ядра MIPS, а не ядра ARM.

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

ответил supercat 3 J000000Monday17 2017, 20:56:46
-8

Нет никаких реальных преимуществ. Прикрепленные DSP и другие контроллеры, такие как GSM , делают их настолько популярными.

ответил supercat 3 J000000Monday17 2017, 20:56:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132