Кто разработал архитектуру arm
Перейти к содержимому

Кто разработал архитектуру arm

  • автор:

Как малоизвестный британский производитель ПК изобрел ARM и изменил мир

Давайте будем честными: 2020 год — отстой. Так много в этом году было много плохих новостей и печальных событий, что очень трудно за этим всем угнаться. Тем не менее, большинство из нас постоянно следит за происходящим благодаря небольшим карманным компьютерам, которые мы всегда носим с собой. В Америке мы до сих пор называем их по-старому «телефонами».

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

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

Но что если бы вместо этого вы решили выбрать процессоры малоизвестной компании из страны, которая не приходит на ум в качестве мирового лидера в области высокотехнологичных инноваций (по крайней мере не в 1800-х годах)? А что, если бы этот процессор был обязан своим рождением, по крайней мере косвенно, образовательному телешоу? Скорее всего, продюсеры посоветуют вам немного отмотать сценарий — «‎Давай же, отнесись к этому серьезно». И все же на самом деле все было именно так.

Вначале было телевидение

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

Все началось с телешоу 1982 года на BBC под названием The Computer Programme («Компьютерная программа»). Это была попытка BBC рассказать британцам о новых необыкновенных машинах, похожих на пишущие машинки, подключенные к телевизору.

Шоу было частью более крупного проекта компьютерной грамотности, запущенного британским правительством и BBC в ответ на опасения о том, что Великобритания была не готова к революции в области персональных компьютеров, которая происходила в Америке. В отличие от большинства телешоу, в этом сериале BBC хотела использовать компьютер для объяснения фундаментальных вычислительных концепций и базового обучения программированию на языке BASIC. Концепции включали графику и звук, возможность подключения к службам телетекста, синтез речи и даже простейший ИИ. Поэтому компьютер, необходимый для шоу, должен был быть довольно производительным. Требования продюсеров изначально были настолько высоки, что на рынке не было ничего, что бы удовлетворяло потребности BBC.

Итак, BBC обратилась с призывом к молодой компьютерной индустрии Великобритании, в которой тогда доминировала компания Sinclair, которая сделала свое состояние на калькуляторах и крошечных телевизорах. Но в конечном итоге прибыльный контракт получила более маленькая и молодая компания — Acorn Computers.

Расцвет Acorn

Acorn, компания родом из Кембриджа, начала свою деятельность в 1979 году с разработки компьютерных систем, изначально предназначенных для игровых автоматов, которые затем превратила в небольшие любительские компьютерные системы на базе процессоров 6502. Эти процессоры также использовались в компьютерах Apple II, Atari 2600 и Commodore 64. Архитектура этого процессора окажет важное влияние на будущее, поэтому не забудьте про него.

Acorn разработала домашний компьютер под названием Atom, и при появлении проекта от BBC, начала работу над преемником Atom в виде BBC Micro.

Список требований BBC гарантировал, что получившаяся машина будет достаточно мощной для той эпохи, хотя и не такой мощной, как оригинальная разработка Acorn — преемник Atom. Преемник Atom должен был иметь два процессора: проверенный временем 6502 и еще не выбранный 16-разрядный процессор.

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

Разработка BBC Micro действительно раздвинула пределы возможностей Acorn, поскольку это была довольно современная машина для того времени. В результате были приняты некоторые сырые, но работоспособные инженерные решения, как, например, необходимость повторить касание пальцем платы с помощью блока резисторов, чтобы заставить машину работать.

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

Послушайте, что рассказывает один из ключевых инженеров:

BBC Micro оказался большим успехом для Acorn, став основным компьютером для образовательных целей в Великобритании в 1980-х годах. Каждый читатель этой статьи наверняка знает, что 80-е годы были очень важным временем в истории компьютеров. В 1981 был выпущен персональный компьютер от IBM, который задал стандарт для ПК на десятилетия вперед. ПК Apple Lisa в 1983 году предвосхитила Mac и революционный графический пользовательский интерфейс «окна-значки-мышь», который будет доминировать в будущем.

Все это происходило на глазах Acorn и они понимали, что для конкуренции необходимо что-то более мощное, чем стареющий, но надежный 6502. В Acorn экспериментировали с множеством 16-битных процессоров: 65816, 16-битным вариантом 6502, Motorola 68000, используемом в Apple Macintosh, и сравнительно редким National Semiconductor 32016.

Однако ни один из них не подходил, и тогда Acorn обратилась к Intel с вопросом об использовании процессоров Intel 80286 в своей новой архитектуре. Но Intel их проигнорировала.

RISCованный бизнес

Спойлер: это окажется очень плохим решением для Intel.

Затем компания Acorn приняла судьбоносное решение разработать собственный процессор. Вдохновленная бережливым производством Western Design Center (компания, которая разрабатывала новые версии 6502) и исследованиями в области RISC-процессоров (англ. Restricted (reduced) Instruction Set Computer, сокращ. RISC, компьютер с сокращённым набором команд), Acorn решила двигаться вперед. Ключевыми участниками проекта были инженеры Стив Фербер (Steve Furber) и Софи Уилсон (Sophie Wilson).

Процессоры RISC называются так, как они называются, по сравнению с процессорами CISC (англ. complex instruction set computing или complex instruction set computer, сокращ., компьютер с полным набором команд). Попытаюсь дать очень упрощенное объяснение того, что это на самом деле означает.

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

У RISC, как вы, наверное, уже догадались, наоборот — меньше команд, он проще сам по себе, и каждая инструкция может быть выполнена за один такт. В результате код оказывается больше и кажется менее эффективным, но сам чип становится проще и может выполнять простые инструкции быстрее.

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

Новый чип Acorn был настолько похож на RISC, что Софи Уилсон (Sophie Wilson), разрабатывая набор инструкций для нового процессора Acorn, кажется, явно вдохновлялась рядом концепций архитектуры 6502.

Используя BBC Micro Tube для экспериментов Acorn разработала новый RISC-процессор под названием Acorn RISC Machine, или ARM. Компания VLSI, поставщик микросхем для Acorn, начала производить процессоры ARM сначала для внутреннего R&D Acorn. Вскоре была готова и серийная версия ARM2.

В 1987 году был представлен первый серийный ПК на базе RISC — Acorn Archimedes, работающий на процессоре ARM2. ARM показал лучшую производительность, чем Intel 286, несмотря на то, что в нем на 245 000 меньше транзисторов, чем у большого чипа Intel.

Archimedes с его ОС Arthur в ПЗУ (постоянное запоминающее устройство) оказался гибкой, быстрой и мощной машиной. У него была хорошая графика для того времени, графический пользовательский интерфейс, а также несколько крутых и быстрых низкополигональных демонстраций и игр, которые демонстрировали производительность машины — спасибо ее «‎худому и голодному» процессору.

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

Меньше значит больше

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

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

Низкое энергопотребление и низкое тепловыделение сделали ARM естественным выбором для мобильных устройств. Поэтому в конце 1980-х Apple при выборе процессора, который справился бы с распознаванием рукописного текста и графическим интерфейсом с питанием от батареек типа АА, выбрала ARM. Карманное устройство, о котором идет речь — печально известный Newton.

Apple и VLSI заключили партнерство с Acorn для выделения подразделения ARM в отдельную компанию под названием Advanced RISC Machines, что позволило сохранить название ARM. В рамках этого альянса, при значительном участии Apple, ARM разработает ядро ARM6. При этом процессор ARM610 станет первым промышленным чипом, основанным на этом ядре, а в 1993 году версия с частотой 20 МГц будет использоваться для Apple Newton.

Хотя, конечно, Newton был впечатляющим провалом, в ретроспективе он стал чем-то гораздо большим: портативным устройством с сенсорным экраном на батарейках и процессором ARM. Сегодня то же самое описание можно использовать, чтобы описать миллиарды смартфонов, которые постоянно используются по всему миру. В полевых условиях ARM впервые был испытан с устройством, которое большинство людей помнит по эпизоду «Симпсонов», в котором рукописная фраза «Ударь Мартина» («Beat up Martin») была распознана как «Съешь Марту» («Eat up Martha»)

ARM610 будет использоваться в новом поколении компьютеров Acorn Archimedes и странного ноутбука на базе Newton под названием eMate. В 2001 году 7-ядерный процессор ARM будет работать в iPod от Apple и игровой консоли Game Boy Advance от Nintendo. В 2004 году пара ARM будет управлять двумя экранами Nintendo DS.

Затем, в 2007 году, Apple выпустит первый iPhone с процессором серии ARM11. С этого момента все помешаются на ARM.

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

Так много лет спустя история происхождения ARM остается достойной рассказа, потому что она настолько невероятна. Несмотря на абсолютное доминирование ARM в мире его скромное появление на свет делает его менее бесчувственным гигантом индустрии, чем, скажем, почти «биополия» (от «монополия») Intel / AMD.

Резюмируя: поскольку британцы чувствовали свое отставание от компьютерной революции, они решили снимать телешоу о компьютерах. Для этого им был нужен компьютер, и одна, не самая прорывная компания, создала его. А когда этой маленькой компании потребовалось создать более производительный процессор, потому что Intel не потрудилась ответить на их звонки, они сделали свой собственный. Просто так случилось, что этот процессор не потребляет много энергии и не выделяет много тепла, что и привлекло внимание Apple, которая стала его использовать. После чего эта компания, конечно же, захватила мир.

Если бы я это выдумал, то вы бы сказали, что я придумал слишком причудливую историю или что насмотрелся фильмов Уэса Андерсона (Wes Anderson). Но в реальности все так и было.

Однако… если реальность на самом деле является симуляцией, могу поспорить, что она тоже работает на ARM.

Реклама которая может быть полезна

Прямо сейчас в OTUS действуют максимальные новогодние скидки на все курсы. Ознакомиться с полным списком курсов вы можете по ссылке ниже. Также у всех желающих есть уникальная возможность отправить адресату подарочный сертификат на обучение в OTUS.

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

В этом разделе описываются архитектуры и системы команд актуальных на сегодняшний день 32-разрядных версий архитектуры фирмы ARM, а именно: ARMv4T, ARMv5T, ARMv5TE, ARMv5TEJ, ARMv6 и ARMv7 всех модификаций, а также ARMv8-M. Уже практически вышедшие из употребления или не получившие заметного распространения разновидности лишь упоминаются «для полноты картины».

  • 1 Общие сведения об архитектуре ARM
  • 2 Общая архитектура
  • 3 Системная архитектура
    • 3.1 Системная архитектура A- и R-профилей
      • 3.1.1 Универсальный контроллер прерываний (GIC)
      • 3.1.2 Сопроцессор отладки (CP14)
      • 3.1.3 Сопроцессор управления системой (CP15)
      • 4.1 Команды набора ARM
        • 4.1.1 Режимы адресации
        • 4.1.2 Система команд ARM по группам команд

        Общие сведения об архитектуре ARM [ ]

        Общая архитектура [ ]

        • Регистры общего назначения
        • Регистры состояния
        • Регистры состояния в A- и R-профилях
        • Регистры состояния и управления в M-профиле
        • Регистры FPU
        • Память
        • Синхронизация и семафоры

        Системная архитектура [ ]

        Системная архитектура A- и R-профилей [ ]

        • Регистры состояния
        • Режимы процессора
        • Обработка исключений
        • Подсистема памяти
        • Устройство управления памятью (MMU)
        • Устройство защиты памяти (MPU)
        • Механизм быстрого переключения контекста (FCSE)
        • Виртуализация

        Универсальный контроллер прерываний (GIC) [ ]

        Сопроцессор управления системой (CP15) [ ]

        • Регистры сопроцессора управления системой
          • Регистр 0 (регистры идентификации)
          • Регистр 1 (регистры управления)
          • Регистр 2 (регистры базы таблицы страниц MMU; регистры управления кэшированием MPU до PMSAv6)
          • Регистр 3 (регистр управления доступом к доменам MMU; регистр управления буфером записи MPU до PMSAv6)
          • Регистр 5 (регистры индикации ошибок MMU или MPU PMSAv6; регистры управления правами доступа MPU до PMSAv6)
          • Регистр 6 (регистры адресов ошибок MMU или MPU PMSAv6; регистры конфигурирования областей защиты MPU PMSAv6; регистры параметров областей защиты MPU до PMSAv6)
          • Регистр 8 (регистр функций TLB)
          • Регистр 10 (регистр блокировки элементов TLB)
          • Регистр 11
          • Регистр 13 (регистры идентификации процесса)

          Системная архитектура M-профиля [ ]

          • Варианты архитектуры в M-профиле
          • Режимы процессора
          • Регистры состояния и управления
          • Сброс
          • Энергосбережение
          • Обработка прерываний
          • Расширение безопасности
          • Синхронизация изменения состояния
          • Карта распределения памяти
            • Пространство управления системой (SCS)
              • Блок управления системой (SCB)
              • Регистры управления FPU
              • Отладочные регистры
              • Контроллер прерываний NVIC
              • Системный таймер SysTick
              • Устройство защиты памяти (MPU)
              • Прочие регистры SCS

              Система команд [ ]

              Команды набора ARM [ ]

              • Коды условий
              • Команды по версиям архитектуры

              Режимы адресации [ ]

              Ошибки в процессорных ядрах [ ]

              • Ошибки в ядрах Cortex-A
              • Ошибки в ядрах Cortex-M
              • Ошибки в ядрах Cortex-R

              Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.

              История ARM, без которой не было бы смартфонов

              Favorite

              В закладки

              История ARM, без которой не было бы смартфонов

              02-ARM-History

              Имя ARM, конечно же, на слуху у тех, кто хоть немного интересуется миром технологий, понимает, что такое процессор, зачем он нужен в современной технике — в мобильных гаджетах, да и в настольных ПК тоже. Но мало кто вникал и интересовался историей компании, которая стоит за созданием самых востребованных и качественных процессорных технологий. А история у ARM действительно интересная.

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

              Микро-бизнес

              Вначале была компания Acorn Computers, которую еще иногда называют «британской Apple». Ее основали в Кембридже в 1978, именно на заре революции микрокомпьютеров. И как раз на компьютерную сферу сделали ставку ее создатели. Первый продукт фирмы получил название Acorn Systems 1. Это был стандартный для того времени вариант ПК, который продавался за £80 и предназначался для студентов. Состоял агрегат из небольшого монитора, клавиатуры и кассетного магнитофона (компакт-кассета с магнитной лентой использовалась до дискет). Компания выпустила несколько поколений такого компьютера – System 1, 2, 3 и 4, а также ориентированный на потребительский рынок вариант Acorn Atom. Однако настоящий прорыв ждал Acorn Computers в 1981-м, когда телерадиовещательная корпорация BBC задумала обучить массы компьютерной грамотности в серии своих специализированных программ. Именно новинка от Acorn, компьютер Proton, переименованный в BBC Micro, и стал символом новой эры. К 1984 году в 80% британских школ уже использовался хотя бы один такой ПК.

              03-ARM-History

              В Acorn поняли, что перед фирмой открываются большие перспективы, и ее руководство решило определиться с планами и вектором развития. Когда стало ясно, что графический интерфейс в ПК — это будущее компьютерной сферы, оказалось, что в первую очередь нужно решать вопрос со скоростью обработки данных. Все сводилось к необходимости создать мощный и эффективный чип, и у Acorn в этом направлении было два пути. Либо разрабатывать собственный процессор с нуля (непросто и долго), либо купить готовый для интеграции в новые ПК (не вариант, ведь чипы для Micro уже покупались на стороне, и их скорость не удовлетворяла требования Acorn).

              Как вспоминает Стефан Фербер — в те времена главный инженер Acorn — решение пришло само собой в виде научной работы ребят из Беркли, что в Стенфорде, Калифорния. Фербер вместе с коллегой Софи Уилсон обнаружили, что исследователи из Стенфордского университета придумали новый вид процессорной архитектуры с сокращенным набором команд (RISC, или «reduced instruction set computing»). Авторы новой технологии — Дэвид Паттерсон и Карло Секуин — до сих пор работают в Беркли. А в здании университета в отделе компьютерных наук на стене красуется памятная табличка с их именами и благодарностью за вклад в развитие компьютерных технологий.

              Решение, придуманное Паттерсоном и Секуин, оказалось революционным. По словам Фербера, их разработка была тем процессором, который создала пара выпускников Беркли всего за год, но который был вполне конкурентоспособным на рынке. В Acorn не могли упустить уникальную возможность. Так увидел свет первый компьютер на базе нового процессора Acorn Risc Machine, или ARM.

              RISC-ованный бизнес

              Руководство Acorn поначалу переживало о коммерческом успехе всего предприятия, но эти страхи оказались необоснованными. Бизнес развивался, и вскоре Acorn Computers заполучила свою крутейшую сделку: в 1990-м британцы стали партнерами Apple в создании процессора для карманного компьютера Newton. Новая фирма, сформированная в партнерстве с Apple, получила название ARM. Соответственно, и компьютеры на базе чипа с новой архитектурой также стали именоваться ARM — Advanced Risc Machine.

              Дизайн RISC оказался для Newton идеальным решением. Именно особенности RISC-процессоров давали шанс на жизнь маломощным компьютерам (а в перспективе, лет этак через 20 — смартфонам). С другой стороны, компьютерный бизнес Acorn начал рушиться. У британцев появился сильный конкурент в лице Microsoft, чье партнерство с Intel на тот момент не оставляло шансов другим производителям. Тандем Wintel (Windows и Intel) стал настоящим монополистом. У компьютеров Acorn не было шансов, ОС Windows не работала на системах с процессором ARM. А у руководства Acorn не хватало влияния, чтобы привлечь на свою сторону разработчиков, которые могли бы работать именно на ее платформе.

              04-ARM-History

              За стремление усовершенствовать свой процессор Acorn поплатилась долей компьютерного рынка, и вскоре судьбы ARM и собственно Acorn Computers разошлись. Но британская компания не опустила руки и затеяла непростую гонку на выживание, растянувшуюся на десятилетие. Ее инженеры пытались создать электронный ридер с сенсорным дисплеем NewsPad, новые версии домашних компьютеров вроде Electron и NetStation, а также все еще сотрудничали с Apple в поставке ПК в британские школы. Но большого успеха Acorn достичь так и не удалось, и в 1999-м после переименования в Element 14 ее выкупила некая частная инвестиционная фирма.

              Этот же период для подразделения ARM стал действительно решающим, хотя фирма пропала из поля зрения прессы, и о ее работе мало кто знал. В преддверии мобильной революции разработка энергоэффективных процессоров пришлась как нельзя кстати. Вначале новые чипы от ARM использовались в первых сотовых телефонах. В 2007 году британцы возобновили партнерство с Apple, когда компания из Купертино представила свой первый iPhone. В нем использовался процессор от Samsung, созданный по технологии ARM. Да и в последующих моделях iPhone чип на базе архитектуры ARM остается неизменным компонентом, как и в других смартфонах на рынке.

              Скрытый бизнес

              В свое время Acorn не смогла противостоять сильному конкуренту Wintel. Теперь ситуация изменилась, монада перевернулась, как говорят философствующие китайцы. Сегодня именно Intel пытается адаптировать свои чипы под требования новых реалий, а Microsoft с трудом держится на плаву на мобильном рынке.

              Еще в 2007-м в Intel решили отказаться от производства энергозатратных процессоров Pentium и перейти к созданию и продвижению экономных чипов линейки Core. Эти процессоры годились для использования в ноутбуках, но Intel потребовался еще год, чтобы создать собственную версию мобильного чипа Atom, подобного ARM.

              В ARM осознают, что компания сейчас лидирует на рынке процессоров. В самом начале работы с процессорной технологией в ARM делалась ставка именно на низкое энергопотребление, это ее наследие, основа ее ДНК. Так считает глава подразделения стратегического маркетинга ARM Лоренс Брайант.

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

              Лоренс Брайант, глава подразделения стратегического маркетинга ARM

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

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

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

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

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

              05-ARM-History

              В компании также есть и подразделение, работающее с интернетом вещей. Так что в перспективе чипы на базе архитектуры ARM, вероятно, будут использоваться и в «умных» домашних приборах и технике. Все это британский разработчик планирует делать традиционно, в режиме инкогнито, чтобы как можно дольше оставаться незамеченным и при этом незаменимым. [The Guardian]

              (2 голосов, общий рейтинг: 5.00 из 5)
              �� Хочешь ещё? Читай больше в Telegram
              �� Ищешь ответ на вопрос? Приходи на Форум

              В том числе и iPhone. Имя ARM, конечно же, на слуху у тех, кто хоть немного интересуется миром технологий, понимает, что такое процессор, зачем он нужен в современной технике — в мобильных гаджетах, да и в настольных ПК тоже. Но мало кто вникал и интересовался историей компании, которая стоит за созданием самых востребованных и качественных.

              Роман Юрьев

              Дотошный блогер, гаджетоман, лысый и бородатый фитнес-методист. Увлекаюсь технологиями, спортом и диетологией.

              Общие сведения об архитектуре ARM

              С момента появления архитектуры ARM и до 2011 года появилось семь «больших» версий архитектуры — до ARMv7 включительно. Кроме того, если не у всех, то у многих версий имеются разновидности. Несмотря на все различия, все эти версии и разновидности являются 32-разрядными, используют одинаковый с точки зрения прикладного программиста набор регистров общего назначения и функционально одинаковый базовый набор команд (хотя каждая последующая версия добавляет новые команды и иногда расширяет возможности уже имевшихся).

              Ранние процессоры архитектуры ARM использовали 26-разрядные адреса памяти. Первой версией с 32-разрядной адресацией и одновременно последней с 26-разрядной стала ARMv3. Все эти версии к 2010 году практически полностью исчезли, поэтому в дальнейшем они обсуждаться не будут.

              Первой по времени появления из пока ещё досаточно широко используемых архитектур стала ARMv4. В ней впервые отказались от поддержки 26-разрядных адресов, но зато в дополнение к командам обработки слов (32 бита) и байтов ввели команды обработки полуслов (16 бит).

              Вскоре появилась разновидность ARMv4T, в которой впервые был реализован набор команд Thumb. Команды этого набора функционально являлись подмножеством основного набора команд (с этого момента обозначаемого как набор команд ARM), причём в них отсутствовали команды системного назначения. По этой причине ни для этой, ни для основной массы последующих архитектур вплоть до версии 7 невозможно создать ОС или системно-независимую программу (т. е. программу, работающую на «голом железе» без использования ОС), использующую только систему команд Thumb: начальные участки обработчиков прерываний, а также некоторые действия по управлению процессором можно выполнить только с помощью команд набора ARM. Поскольку каждая команда Thumb кодируется полусловом (16 бит), а команда ARM всегда занимает целое слово (32 бита), программа, написанная с использованием системы команд Thumb, почти всегда занимает существенно меньше памяти, чем программа на ARM (конечно, при условии ручного её кодирования на языке ассемблера или при использовании компилятора, обеспечивающего нормальную поддержку Thumb, чего нет, например, в GCC).

              Помимо ARMv4 и ARMv4T, четвёртая версия архитектуры ARM имела ещё две разновидности — ARMv4xM и ARMv4TxM, отличавшиеся от первых двух отсутствием команды длинного умножения (сомножители по 32 разряда, результат — 64 разряда). К началу 2010 года все эти разновидности, кроме ARMv4T, уже утратили актуальность и исчезли с рынка.

              Пятая версия архитектуры в «чистом» виде — ARMv5, а также её разновидность без длинного умножения ARMv5xM тоже уже не употребляются. От предыдущей архитектуры они отличаются несколько расширенной системой команд. В частности, именно в ARMv5 появились первые команды набора ARM, не имеющие возможности условного выполнения.

              Thumb-разновидность ARMv5T отличается от ARMv4T наличием нескольких дополнительных команд, улучшенными возможностями взаимодействия ARM- и Thumb-кода и некоторыми другими усовершенствованиями; она ещё иногда встречается. Её разновидность с «обрезанными» возможностями умножения, ARMv5TxM, из употребления вышла.

              Вскоре после появления процессоров семейства ARMv5T архитектура была вновь весьма существенно расширена: появилась целая группа команд, намного упростившая реализацию алгоритмов цифровой обработки сигналов (так называемые DSP-команды). Новое семейство получило обозначение ARMv5TE и весьма широко используется до сих пор. Некоторые ранние реализации этого семейства имели лишь часть новых команд; эта разновидность получила обозначение ARMv5TExP и уже почти не применяется.

              Венцом развития пятой версии архитектуры стало включение специальных средств, предназначенных для упрощения реализации виртуальной машины Java (технология Jazelle; в отличие от большинства других аспектов архитектуры ARM, она не документирована). Такие процессоры получили обозначение ARMv5TEJ и, вероятно, стали самыми распространёнными для пятой версии архитектуры.

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

              Через некоторое время появилась разновидность ARMv6T2, в которой система команд Thumb была существенно расширена и получила наименование Thumb-2. Помимо нескольких новых 16-разрядных команд, в Thumb-2 появилось большое число 32-разрядных команд, покрывающих почти все возможности системы команд ARM. Особого распространения эта разновидность, однако, не получила.

              Ещё одной разновидностью шестой версии архитектуры является ARMv6K, включающая некоторые расширения для упрощения реализации ядер операционных систем и тому подобного ПО. Некоторые процессоры этой разновидности поддерживают виртуализацию . Система команд Thumb/Thumb-2 по сравнению с версией ARMv6T2 была расширена, благодаря чему, сохраняя намного более высокую плотность кода (а значит, потребляя меньше памяти), чем система команд ARM, Thumb/Thumb-2 обеспечивает практически равную с ней производительность. Все процессоры Cortex-A в обязательном порядке оснащены устройством управления памятью (MMU); часто на одном кристалле размещаются несколько процессорных ядер, дополненных графическим процессором. Такие микросхемы предназначены для использования в мощных мобильных устройствах. Нередко производители расширяют их возможности, добавляя специализированные узлы. Например, фирма nVidia выпускает семейство процессоров Tegra, у которых, помимо процессорных ядер ARM, имеется графическое ядро самой nVidia, архитектурно близкое к графическим процессорам, используемым на ПК, и обеспечивающее намного более высокую производительность, чем графическое ядро самой ARM (Mali).

              Кристаллы R-профиля (версия ARMv7-R, ядра семейства Cortex-R) в целом аналогичны процессорам A-профиля (хотя поддержка ThumbEE и ряда других «продвинутых» возможностей не является обязательной), но оснащены не устройством управления памятью, а значительно более простым устройством защиты памяти (MPU). Они предназначены в первую очередь для использования в высоконадёжных промышленных контроллерах и тому подобных устройствах, работающих в реальном времени (отсюда буква R в обозначении), не нуждающихся в виртуальной памяти (её использование прямо противоречит целям работы в реальном времени), однако имеющих достаточно высокие требования к производительности.

              Наконец, M-профиль (версии ARMv6-M и ARMv7-M, ядра семейства Cortex-M), строго говоря, не относится к «настоящим» ARM-процессорам. Во-первых, он кардинальным образом отличается по системной архитектуре от всех прочих разработок фирмы ARM, а соответственно, на системном уровне не совместим ни с более ранними процессорами, ни с другими профилями 7-й версии архитектуры. Во-вторых, в этих кристаллах реализована только система команд Thumb (ARMv6-M, ядра Cortex-M0 и -M1) или Thumb-2 (ARMv7-M, все прочие ядра Cortex-M), а команды набора ARM не поддерживаются. Предназначена эта серия для использования в качестве микроконтроллеров малой и средней производительности. Благодаря низкой стоимости и энергопотреблению они могут успешно конкурировать с намного более слабыми по вычислительными возможностям 8- и 16-разрядными микроконтроллерами. Заметим, что принадлежность ядер Cortex-M0 и -M1 к 6-й версии архитектуры является чисто формальной и показывает, что по своим возможностям (системе команд) они находятся ниже «настоящей» архитектуры ARMv7-M.

              Первые 64-разрядные процессоры (версия архитектуры ARMv8) появились в 2012 году. Здесь сохранилось разделение по профилям, причём, если A-профиль стал действительно новым, то R- и M-профили остались 32-разрядными и являются, по существу, несколько расширенными вариантами этих же профилей 7-й версии архитектуры.

              У процессорных ядер, разработанных ARM, существует своя система нумерации, не связанная с номером версии архитектуры. Так, ядра ARM7TDMI и ARM920T реализуют версию ARMv4T, большинство других ядер семейства ARM9 — различные разновидности версии ARMv5 (например, ядро ARM926EJ-S реализует архитектуру ARMv5TEJ). Все ядра семейства Cortex, за исключением Cortex-M0 и -М1, относятся к разновидностям 7-й или 8-й версии архитектуры (ядрам Cortex-M0 и -М1, как уже говорилось, соответствует версия ARMv6-M). Между собой ядра одной и той же версии и разновидности архитектуры могут отличаться конструкцией и объёмом кэш-памяти, наличием MMU, MPU, FPU и т. д.

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

              Главные особенности [ ]

              Несмотря на то, что аббревиатура ARM расшифровывается как «Advanced RISC Machine» («передовая RISC-машина»), с самого начала это была не совсем типичная RISC-архитектура. С одной стороны, для RISC’а она имела не очень много регистров общего назначения (сейчас с формальной точки зрения у большинства разновидностей архитектуры их 31 штука, однако программисту доступны лишь 16 из них, причём три регистра имеют специальные функции; таким образом, «настоящих» регистров общего назначения с точки зрения программиста всего 13, в то время как целый ряд «настоящих» RISC-процессоров имеют их больше сотни). С другой стороны, уникальной особенностью этой архитектуры являлась возможнось исполнения любой команды при соблюдении заданного условия, отсутствующая не только у других RISC’ов, но и у CISC’ов (первые безусловно выполняемые команды в наборе ARM появились лишь в версии ARMv5). Кроме того, в командах обработки данных в ряде случаев возможно совмещение выполнения основной операции (например, сложения) со сдвигом. Наконец, команды чтения и записи памяти у ARM располагают развитым набором видов адресации, который превосходит по своим возможностям не только RISC’и, но и основную массу CISC-процессоров (среди последних единственными конкурентами в этом плане могли бы служить лишь появившиеся в 1970-х годах миниЭВМ PDP-11 и VAX-11 фирмы DEC, а из достаточно современных архитектур — довольно близкие по основным чертам к PDP-11 16-разрядные микроконтроллеры MSP430 фирмы Texas Instruments).

              Однако время показало ошибочность идеи, на которой базировались «настоящие» RISC-архитектуры: достижение высокой производительности через быстрое выполнение простых команд в противовес медленному выполнению сложных команд у CISC-процессоров (предполагалось, что, пока CISC выполнит одну свою сложную команду, RISC успеет выполнить несколько простых и в итоге обгонит CISC по производительности, хотя каждая команда индивидуально выполнит меньший объём действий, чем одна команда CISC’а). На практике оказалось, что даже очень неудачные с архитектурной точки зрения системы команд, например, Intel IA-32, можно выбирать из памяти, декодировать и исполнять чрезвычайно быстро (это наглядно демонстрирует пример самой Intel: несмотря на всю громоздкость и неэффективность её системы команд, именно её процессоры на сегодняшний день по производительности обгоняют почти любые другие кристаллы — правда, ценой чрезвычайно сложной внутренней организации, ставшей возможной лишь благодаря использованию очень совершенной технологии производства). Неудивительно, что в своём развитии архитектура ARM постепенно эволюционировала в сторону CISC-процессоров.

              На сегодняшний день у ARMа от RISCа у неё остались только две вещи: невозможность прямой работы с операндами в памяти и название. Некоторые имеющиеся у современных процессоров ARM команды (в частности, деление) недопустимы в «настоящих» RISC’ах в связи с их сложностью и переменным временем выполнения. Внедрение же системы команд Thumb-2 похоронило и другую важнейшую черту RISC-процессоров: одинаковую длину кода команды, призванную упростить её выборку из памяти и декодирование.

              Современные 32-разрядные процессоры архитектуры ARM способны обрабатывать 8-, 16- и 32-разрядные целые числа, а процессоры архитектуры ARMv8-A — и 64-разрядные. Возможность обработки вещественных чисел является необязательной и достигается с помощью сопроцессоров (которые, если присутствуют, выполняются на одном кристалле с собственно центральным процессором и с точки зрения прикладного программиста неотличимы от него). Старшие модели способны работать с виртуальной памятью, поскольку имеют необходимое для этого устройство управления памятью (MMU). Более простые изделия не располагают MMU, но в некоторых случаях имеют устройство защиты памяти (MPU), не позволяющее реализовать виртуальную память, но обеспечивающее необходимую поддержку аппаратной защиты одних выполняющихся процессором задач от других.

              Терминология и язык ассемблера [ ]

              Компания ARM не всегда последовательна в выборе терминов для обозначения различных понятий и механизмов, описываемых в документации. Особенно это касается ранних версий архитектуры. Например, она использует термины interrupt, fault, abort, exception, trap без чёткого, недвусмысленного и неукоснительного их разграничения. В документации на последние версии архитектуры применение этих слов стало более строгим и упорядоченным, и именно оно положено в основу статей, посвящённых архитектуре ARM. Так, для обозначения произвольного вида прерывания текущего выполняемого кода применяется термин «исключение» (exception). Когда источником прерывания является внешнее устройство, применяется термин «прерывание» (interrupt — внешние и быстрые прерывания IRQ и FIQ). Термин «отказ» (abort для A- и R-профилей, fault для M-профиля) применяется к прерываниям, возникающим в результате неудачной попытки обращения к памяти для выборки команды (отказ предвыборки — prefetch abort) или считывания/записи данных (отказ данных — data abort), а также в других случаях, прямо связанных с действиями программы.

              С появлением системы команд Thumb-2 (версия архитектуры ARMv6T2) компания ARM унифицировала язык ассемблера для наборов команд ARM и Thumb, назвав получившийся гибрид аббревиатурой UAL (Unified Assembler Language). Упоминаемые и описываемые в статьях команды приводятся в соответствии с нотацией UAL, которая, особенно для команд набора Thumb, может заметно отличаться от ранее применявшихся обозначений.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *