Що так чудового в ARM?


61

У коментарі до цієї відповіді Кортук запитує, у чому полягає перевага ARM . Я спершу додав у свою відповідь кілька аргументів, але вважаю, що питання є досить цікавим, щоб бути питанням саме по собі, щоб отримати більше відповідей.


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

@Kortuk - Не соромтесь редагувати формулювання питання чи назви, якщо ви думаєте, що це може допомогти отримати кращі відповіді. (Це все-таки було ваше питання)
stevenvh

5
Ці питання задають релігійну війну. Якби не люди, які питали та коментували, я б голосував негайно закрити це. Пам'ятай, ти знаєш, що ти завжди правий, а інший хлопець - варварський народ, коли це справа віри. Нехай розпочнеться джихад ...
Олін Латроп

@olinLathrop, саме за цим я спостерігаю. В даний час здається, що ми отримуємо дуже якісні відповіді, не переймаючись. Я, мабуть, зробить це CW довгостроковим періодом і дам можливість приманці Google в поєднанні з цікавою інформацією про руку жити. Я б нормально закрив це прямо, але @stevenvh все-таки відкрив його з чудовою відповіддю і, схоже, задав тон якості.
Кортук

Відповіді:


51

Продуктивність - одна перевага. Будучи 32-розрядним процесором, він перевершує (майже) всі 8-бітні контролери DMIPS-розумні. Ядро також пройшло кілька поколінь, читала оптимізації.
Ці оптимізації відображаються не лише у показниках продуктивності, але й у споживанні електроенергії . Останнє ядро ​​вдвічі збільшило співвідношення DMIPS / МВт у порівнянні з попереднім поколінням (див. Також цю відповідь ).
ARM доступний у багатьох виробників , ніж будь-який інший мікроконтролер, і кожен з них має на вибір кілька варіантів, з різними комбінаціями на мікросхемі периферійних пристроїв, пам'яті та пакетів. Справа в суті: NXP пропонує не менше 35 контролерів з мікросхемою Ethernet .
Озброєння єнедорогий ; ARM був, мабуть, першим 32-розрядним контролером, який зламав бар'єр USD 1.

Ця комбінація продуктивності , широка пропозиція та низька вартість роблять його таким, що ви просто не можете ігнорувати ARM:

У 2005 році приблизно 98 відсотків усіх мобільних телефонів використовують хоча б одне ядро, розроблене ARM на своїх материнських платах, згідно з дослідженнями аналітичної фірми Linley Group. ( джерело )

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


1
Я можу лише додати, що ARM, безумовно, перший 32-розрядний мікро, щоб зламати 0,5 $ цінової точки (Cortex M0 в кількості)
BarsMonster

@Barsmonster - Класно! Схоже, єдине майбутнє для 8-бітових - 2 мм x 3 мм DFN
stevenvh

@ себе - а може навіть і не те. Дивіться додаток про LPC1102 у моїй відповіді.
stevenvh

@stevenvh - Ну, все ж є перевага споживання електроенергії. Режим сну LPC1102 @ 12 МГц використовує 1 мА. Непогано, але приблизно в 1000 разів більше, ніж [16 біт] msp430.
Імброндір

1
@self - також подряпайте цю перевагу. Після деяких пошуків здається, що Energy Micro має M3, який у режимі сну + RTC може знизитися до 0,6uA.
Імброндір

37

Один момент ще не згадується: У 1908 році хлопець на ім'я містер PL Робертсон винайшов нову вдосконалену головку гвинта та драйвер . Він хотів бути єдиною людиною, яка виробляє гвинти та драйвери для своєї конструкції. Десятиліття пізніше хтось інший на ім'я містер Генрі Ф. Філіпс придумав альтернативний дизайн . На відміну від містера Робертсона, містер Філіпс був більше зацікавлений у ліцензуванні його дизайну, ніж у виробництві гвинтів та драйверів.

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

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


4
Так. Я думаю, що схема ліцензування інтелектуальної власності ARM є причиною успіху.

10
ARM дозволяє отримати величезну кількість гнучкості з його ліцензуванням. Якщо вам просто потрібен IP на пару ядер, він не надто дорого коштує. Але якщо ви хочете виготовити чітко налаштований чіп, повністю оптимізований вашими дизайнерами чіпів, це коштує більше, але це доступний варіант. Таким чином, така компанія, як Apple, може розробити власну лінійку процесорів, оптимізованих для їх застосування. Більшість компаній не дозволили б стільки коштовностей з корони не контролювати.
Майк Десимоне,

Важливо відзначити, що ARM не конкурує з лінією x86 Intel (навіть не в тому просторі, в якому працюють нові процесори Atom). Якщо ваша відповідь мала на меті це сказати, вона неправильна. Архітектури Moorestown від Intel та Medfield (призначені для конкурентної боротьби) конкурують у тому ж просторі, що й ARM.
Марк

1
Минуло століття, коли лінія 80x86 Intel стала конкурентоспроможною у тих видах програм, де сьогодні використовується ARM, але 8088, 8086, 80286 та 80386, всі з яких були ліцензовані, користувалися популярністю у вбудованих системах. Мій коментар щодо Intel був головним чином визнати, що Intel сьогодні популярний, незважаючи на те, що він не має ліцензії, як ARM.
supercat

@supercat: Intel сьогодні ліцензує багато м'яких IP-адрес. Він також пропонує інструменти дизайну та SIP для дизайну FPGA ( intel.com/content/www/us/en/fpga/ip-and-design-tools.html )
jbord39

32
  1. Те саме апаратне / програмне забезпечення для розробки ARM усіх постачальників. Ви купуєте JLINK / ULINK та деякі Keil IDE один раз і можете використовувати його для розробки, емуляції та налагодження майже будь-якого ARM на планеті.

  2. Не потрібно вивчати нову архітектуру при переході до нового постачальника чіпів => менше постачальника замок => більше конкуренції => нижчі ціни

  3. У сучасних технологічних процесах (0,18 і більше) ядро ​​ARM настільки крихітне, що, пожертвувавши його 8-бітовим ядром, не врятує жодної видимої частки ціни. Звідси і причина стандартної високоефективної, але дешевої архітектури.

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

  5. ARM не надто жадібний і не стягує необґрунтованих платежів за ліцензії, тому виробники можуть виробляти дешеві мікрофони.


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/2 ват, 1 ват при максимальному процесорі. Ви навіть не можете наблизитися до цього з x86.

Це майже моє міркування. Я не бачу, як скоро змінюється рівняння.


2
Пов'язане: Кілька варіантів RTOS.
Стів S

Більшість ваших відповідей так само застосовні до більшості архітектур процесора, як і до ARM. Багато з них застосовні і до 2). Список архітектур, підтримуваних Linux, є LONG, а ARM - лише одна з них.
Марк

19

АРМ прогресував:

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

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

  ldrh r0, [r10, # ADDR_BUS_OFS]; Читання адресної шини цільової системи (13 біт)
  ldrb r1, [r9, r0, lsr # 8]; Використовуйте верхні біти, щоб шукати адресу в таблиці обробників
  додати ПК, 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, якщо цільові адреси були вирівняні повним словом
  додати ПК, 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
  itcs
  orrcs r6, # 0x00000001
  itmi
  orrmi r6, # 0x00000100

Чисте зменшення ефективності часу та простору на 33% порівняно з ARM; це, мабуть, найгірший приклад того, що код Thumb є менш ефективним, ніж ARM, і навіть це не зовсім жахливо.

Ще один незначний недолік Thumb2 порівняно з ARM: в ARM-коді всі інструкції починаються з повноцінних меж слова, полегшуючи статичний аналіз. У Thumb2 вказівки можуть довільно починатись з меж півслова та обводити межі повних слів. Статичний аналіз може бути набагато складніше.


14

Трохи - це історія, Acorn захотів користувальницький процесор (наприклад, із вбудованими елементами управління пам’яттю тощо) для нового комп’ютера 1980-х років (8-бітний 6502 обмежував те, що вони могли зробити). Вони розмовляли з Intel, але Intel не надала їм ліцензований процесор.

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

З роками дизайн процесора стає простішим і простішим для включення в дизайн клієнтських чіпів.

Виробник чіпів відчував безпечне ліцензування від Acorn, оскільки вони не були конкурентом. Також ніхто не думав, що вони збираються в рідне місто конкурента отримати ліцензію, оскільки Жолудь була в Кембриджі (справжній!) . (Чи мав шанс на поїздку «виявити факт» до Кембриджу, щоб відвідати Жолудь, впливає на скорочення переліку варіантів у будь-який момент…).

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

Тож коли мобільні телефони почали потребувати користувацьких чіпів із вбудованим процесором, Acorn було перейменовано на ARM, а решта - історія. (Можливо, трохи було й те, що інші процесори здебільшого контролювали США, але мобільні спочатку стали нормальними в Європі)

(Чи нагадує щось із цього про Microsoft та Dos із невеликою невідомою командою від IBM?)

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


Acorn RISC Machine насправді перейменовано на Advanced RISC Machines (на якому написано ARM). Крім того, тільки відділення процесора ARM Acorn отримало незалежність, відоме як Advanced RISC Machines. Acorn продовжував розвивати свою RISC-OS, і я вважаю, що тепер це знають і останні.
jippie

13

Крім технічних проблем, для ARM є багато нетехнічних причин. Але швидка відповідь така: це не Intel (або x86).

Якщо ви подивилися, куди зараз вкладаються долари для R&D процесора, вони в основному потрапляють у два табори: ARM та Intel. (Я ігнорую невеликі MCU, і я збираю AMD разом з Intel.) В PowerPC, MIPS, SPARC та інші великі процесори йде дуже мало грошей. ARM та Intel - єдині, які все ще стоять.

З процесорами Intel та іншими процесорами x86 ви отримуєте величезну кількість застарілого багажу. Наприклад, вам потрібен чіпсет, BIOS та інші речі. Навіть якщо процесор був надзвичайно енергоефективним, ці інші пристрої, як правило, зважують вашу систему та роблять її більшою, більш голодною та потужнішою. Просто розробка плати з процесором Intel - це величезна проблема, і тоді вам доведеться домовитись з постачальником BIOS і т. Д. Щоб гірше було, багато постачальників чіпсетів, BIOS, відео чіпів тощо просто не хочуть вести бізнес із маленькими людьми, які не продадуть менше мільйона одиниць на рік.

З ARM у вас немає цього багажу. Є багато джерел мікросхем від мікроконтролерів до багатоядерних монстрів. Вам не потрібно мати справу з ліцензуванням BIOS (це дуже схоже на продаж продавця вживаних автомобілів). А виробники та постачальники, як правило, вам приємні.


2
Не ігноруйте невеликі MCU. ARM отримує великий шматок цього ринку, а також їхні серії Cortex-M. Я б двічі подумав сьогодні про використання 32-бітного контролера без ARM.
Майк Десимоне

Так, я згоден @Mike. В даний час ARM намагається розширитись на ринку високої потужності, на якому Intel домінує як сервери. Вони відомі своїми мікроконтролерами середнього та високого діапазону та мікропроцесорами низького середнього діапазону
Кортук

Сьогодні Intel ліцензує більше IP (особливо з придбанням Altera). Див., Наприклад, intel.com/content/www/us/en/fpga/ip-and-design-tools.html .
jbord39

12

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

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


1
Зауважте, що лінія PIC 32 Microchip використовує ядро ​​MIPS. Таким чином, MIPS доступний і в невеликих, дешевих, автономних і малопотужних пакетах. Крім того, ви можете використовувати MPLAB на них, що ви не можете зробити з будь-якою ARM.
Олін Латроп

Інший коментар, який я чую від дизайнерів ASIC, полягає в тому, що з ARM AHB та APB важко працювати (можливо, через окремі проблеми з ліцензуванням чи дизайном). Тоді як автобуси MIPS якось легше. Значення: ядро ​​- це одне; периферійні пристрої поза ядром також потребують розгляду.
Джонатан Клайн

-8

Реальних переваг немає. Доданий DSP та інші контролери, як-от GSM, - це те, що робить їх такими популярними.


3
інші відповіді, схоже, не згодні.
Кортук

1
-1 Все на Землі має переваги та недоліки!
RHaguiuda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.