В комментарии к этому ответу Кортук спрашивает, каково преимущество ARM . Сначала я добавил несколько аргументов в свой ответ, но я думаю, что вопрос достаточно интересен, чтобы быть вопросом сам по себе, так что возможно больше ответов.
61
Ответы:
Производительность является одним из преимуществ. Будучи 32-битным процессором, он превосходит (почти) все 8-битные контроллеры по DMIPS. Ядро также прошло несколько поколений, прочитайте оптимизацию.
Эти оптимизации показывают не только показатели производительности, но и энергопотребление . Самое последнее ядро удвоило соотношение DMIPS / mW по сравнению с предыдущим поколением (см. Также этот ответ ).
ARM доступен от очень многих производителей , больше, чем любой другой микроконтроллер, и у каждого есть несколько версий на выбор, с различными комбинациями встроенных периферийных устройств, памяти и пакетов. Показательный пример: NXP предлагает не менее 35 контроллеров с встроенным Ethernet .
ARMs являютсянедорогой ; ARM был, вероятно, первым 32-битным контроллером, преодолевшим барьер в 1 доллар.
Такое сочетание производительности , широкого предложения и низкой стоимости делает его таким, что вы просто не можете игнорировать ARM:
Рынок мобильных телефонов имеет и другой эффект. Мобильные телефоны очень ограничены в пространстве и требуют небольших пакетов. LPC1102 от NXP поставляется в корпусе WLP-16 , размером всего 5 мм - шкала, ранее использовавшаяся только 8-разрядными микроконтроллерами с низким числом выводов.2
источник
Еще один момент, о котором не упоминалось: в 1908 году парень по имени мистер П.Л. Робертсон изобрел новую улучшенную головку винта и драйвер . Он хотел быть единственным человеком, который будет производить винты и драйверы для своего дизайна. Спустя десятилетия, другой человек по имени г-н Генри Ф. Филлипс придумал альтернативный дизайн . В отличие от мистера Робертсона, мистер Филлипс больше интересовался лицензированием своего дизайна, чем производством винтов и драйверов.
Аналогичным образом, в 1970-х годах Sony разработала технологию под названием Betamax ; JVC придумала одну, которая называется VHS. Sony была заинтересована в производстве видеомагнитофонов; JVC больше интересовался лицензированием.
Кажется, здесь есть закономерность. (Примечание. Некоторое время Intel лицензировала свою технологию 80x86 , но в течение десятилетий она больше фокусировалась на разработке технологий для внутреннего использования.)
источник
Одно и то же аппаратное / программное обеспечение для разработки ARM всех производителей. Вы покупаете JLINK / ULINK и немного Keil IDE один раз и можете использовать его для разработки, эмуляции и отладки практически любого ARM на планете.
Нет необходимости изучать новую архитектуру при переходе на нового производителя чипов => меньше блокировок поставщика => больше конкуренции => более низкие цены
В современных технологических процессах (0.18 мкм и ниже) ядро ARM настолько крошечное, что пожертвование его для 8-битного ядра не спасло бы никакой видимой доли цены. Отсюда и причина перехода на стандартную высокопроизводительную, но дешевую архитектуру.
Производительность - только с ARM вы можете иметь умножение 32 * 32-> 32 и поддержку аппаратного обеспечения для 32 * 32-> 64 и деление для субдолларовых устройств (а именно, для младших STM32, например)
ARM не слишком жаден и не взимает необоснованную плату за лицензии, поэтому производители могут выпускать дешевые микросхемы.
источник
Я сосредотачиваюсь на процессорах ARM среднего уровня по следующим причинам:
Полная поддержка Linux
Это означает, что драйверы устройств почти бесплатно. Я сделал достаточно USB-хоста и кода устройства, я не хочу делать это больше. Я также не в восторге от попыток добавить TCP / IP к платформе со случайным процессором (хотя LwIP / uIP не так уж и плох). Я никогда даже не пытался использовать Wi-Fi, настоящий стек Bluetooth, веб-камеры и т. Д. Использование Linux означает, что с очень широким набором устройств стало гораздо проще общаться.
Я также был поражен тем, насколько рациональны и просты в написании драйверов для устройств Linux. После некоторых драйверов устройств для Windows, Linux это мечта. (Если честно, структура драйверов Windows значительно улучшилась с тех пор, как я это делал.)
Программная платформа также великолепна. Я получаю SSL-шифрование, файловые системы, удаленное управление, простые обновления приложений (копирование файла вместо сложного загрузчика) и т. Д. О, и множество существующих утилит, если вам нужно что-то сделать.
Это также не требует лицензионных отчислений и намного проще подчиниться вашей воле, чем, скажем, платформе WinCE с закрытым исходным кодом. (Не то чтобы я действительно был идеалистом с открытым исходным кодом ... для меня все это очень практично).
Я говорю о ядрах ARM с реальными MMU , так что это для чипов среднего и высокого класса (хотя вы могли бы использовать µClinux, я полагаю).
Потребляемая мощность
По сути, это повторение комментариев других, но для меня это важный фактор. Моя текущая платформа ARM 454 МГц потребляет 1/2 ватт, 1 ватт при максимальной загрузке процессора. Вы не можете даже приблизиться к этому с x86.
Это в значительной степени мои рассуждения. Я не вижу, чтобы уравнение изменилось в ближайшее время.
источник
ARM прошел через прогрессию:
Архитектура ARM позволяет выполнять довольно сложные операции очень быстро - гораздо быстрее, чем на любом другом чипе. Например (с использованием ARM7-TDMI):
Каждый обработчик хранится в виде байта, который дает 1/4 смещения адреса от начала таблицы. Чистый эффект заключается в том, что после извлечения содержимого адресной шины требуется всего шесть циклов (две инструкции) для перехода к обработчику на основе верхних пяти битов извлеченных данных с использованием 32-байтовой таблицы переходов.
Соответствующий код THUMB будет больше похож на:
Это нормально с точки зрения плотности кода, учитывая, что инструкции в два раза меньше оригиналов, но после выборки им потребуется девять циклов, а не шесть. В приложении, где отслеживаемая шина будет работать на своей собственной скорости, независимо от того, справилась ли ARM с этим, более быстрые инструкции ARM являются большим плюсом.
Кстати, Thumb2 двоично совместим с Thumb, что облегчает использование более ранних инструментов, но означает, что есть некоторые вещи, которые он не может сделать так же хорошо, как и исходный ARM. Например, в ARM можно «вращать» растровое изображение 8x8, хранящееся в четырех регистрах, используя примерно 3 инструкции на два бита:
В Thumb2 необходимо добавить явные условные инструкции:
Чистое сокращение времени и эффективности на 33% по сравнению с ARM; Вероятно, в худшем случае код Thumb менее эффективен, чем ARM, и даже это не совсем ужасно.
Еще один небольшой недостаток Thumb2 по сравнению с ARM: в коде ARM все инструкции начинаются с границ полного слова, что облегчает статический анализ. В Thumb2 инструкции могут произвольно начинаться с границ половинного слова и выходить за границы полного слова. Таким образом, статический анализ может быть намного сложнее.
источник
Немного истории, в 1980-х Acorn хотел создать собственный процессор (например, со встроенными элементами управления памятью и т. Д.) Для нового компьютера (8-битный 6502 ограничивал их возможности). Они разговаривали с Intel, но Intel не лицензировала бы им процессор.
Таким образом, Acorn разработал очень простой процессор RISC, но, поскольку они не были производителями процессоров, они были готовы лицензировать его кому угодно (и им нужны были все быстрые деньги, которые они могли получить!). (Я полагаю, что процессор работал впервые, отчасти потому, что он был настолько прост, а также разработчик создал много исследовательских процессоров в Кембриджском университете.)
С годами дизайн ЦП становится все легче и проще включать в дизайн чипов заказчика.
Производитель чипов чувствовал себя в безопасности от Acorn, поскольку они не были конкурентами. Также никто не думал, что они едут в родной город конкурента, чтобы получить лицензию, так как Акорн был в Кембридже (настоящий!) . (Повлияла ли вероятность того, что поездка в Кембридж с целью выяснения фактов для посещения Acorn повлияла на составление списка вариантов в любой момент…)
Многие проекты, включающие процессор Acorn Risc Machine, были предназначены для встраивания системы, где было важно энергопотребление. Для процессора Acorn Risc Machine были также созданы дешевые и хорошие инструменты разработки.
Поэтому, когда мобильным телефонам стали нужны специальные чипы со встроенным процессором, Acorn был переименован в ARM, а остальное уже стало историей. (Возможно, это было немного, но другие процессоры в основном контролировались США, но мобильные телефоны сначала стали нормальными в Европе)
(Напоминает ли что-нибудь из этого о Microsoft и Dos с небольшой неизвестной командой из IBM?)
Тот факт, что ARM был одним из лучших процессоров в то время (и до сих пор остается) для многих задач, также помог - но просто иметь «лучший» дизайн процессоров недостаточно.
источник
Помимо технических проблем, есть много нетехнических причин для ARM. Но быстрый ответ таков: это не Intel (или x86).
Если вы посмотрите, куда именно сейчас инвестируются средства на исследования и разработки, они попадают в два основных лагеря: ARM и Intel. (Я игнорирую небольшие микроконтроллеры и объединяю AMD с Intel.) Очень мало денег уходит на PowerPC, MIPS, SPARC и другие большие процессоры. ARM и Intel - единственные, кто все еще стоит.
С Intel и другими процессорами x86 вы получаете огромное количество устаревшего багажа. Например, вам нужен чипсет, BIOS и другие вещи. Даже если процессор был очень энергоэффективным, эти другие устройства, как правило, отягощают вашу систему и делают ее больше, потребляют больше энергии и стоят дороже. Просто разработка печатной платы с процессором Intel - это огромная проблема, и тогда вам нужно договориться с поставщиком BIOS и т. Д. Что еще хуже, многие производители чипсетов, BIOS, видеочипов и т. Д. Просто не хотят вести дела с маленькими людьми, которые не будут продавать менее миллиона единиц в год.
С ARM у вас нет этого багажа. Существует множество источников микросхем от микроконтроллерных линий до многоядерных монстров. Вам не нужно иметь дело с лицензированием BIOS (что очень похоже на обращение к продавцу подержанных автомобилей). И производители и продавцы, как правило, приятны для вас.
источник
Сравните ARM7 / ARM9 с MIPS IV, и у вас мало преимуществ, кроме уже упоминавшихся проблем с лицензированием. Внутренние компоненты набора инструкций MIPS и внутренняя шина делают его превосходным (производительность по стоимости) для определенных типов конструкций; именно поэтому многие маршрутизаторы Wi-Fi используют ядра MIPS, а не ядра ARM.
Поскольку ядра ARM применялись в основном для портативных устройств, в ASIC добавлено больше функций управления питанием, в то время как MIPS больше фокусируется на производительности за такт, чем на снижении энергопотребления. Преимущество RISC перед Intel x86 - другое обсуждение.
источник
Здесь нет реальных преимуществ. Прилагаемые DSP и другие контроллеры, такие как GSM, делают их такими популярными.
источник