Что такое arm-архитектура?

Acorn падает с дерева: яблоко и Ньютон

Тем временем, Герман Хаузер начал новый бизнес, основав компанию Active Book Company, сфокусировавшую свою деятельность на формирующемся рынке персональных электронных помощников (PDA). А команда разработчиков ARM переделала продукт, сделав процессор полностью статическим, что позволяло останавливать тактирование для снижения потребляемой мощности – непременное условие для подобных приложений.

Между тем, компания Apple также выходила на рынок PDA, и уже разработала первый Newton, основанный на процессоре AT&T с низким энергопотреблением, названным Hobbit. Джон Стоктон (John Stockton), научный сотрудник VLSI Technology, убедил проектную группу и Ларри Теслера (Larry Tesler), который возглавлял команду в Apple, в необходимости использования ARM. Оба пришли к согласию в том, что компания Apple желала бы использовать в своей продукции процессоры ARM, но по причинам конкуренции в этом плане хочет сотрудничать с какой-либо другой компанией, а не с Acorn. Только через шесть недель, в 1990 году, удалось договориться о создании совместного предприятия между Apple, VLSI Technology и Acorn.

Причудливым завихрением в этой истории со сделкой было то, что Герман заключил ее с AT&T через Active Book Company, и все это стало называться EO Ltd. Конструкция EO перешла с процессоров ARM на процессоры Hobbit, а Newton фирмы Apple стал, в свою очередь, использовать ARM вместо Hobbit!

Перспективы на будущее

В истории развития компании ARM есть один интересный момент (в самом начале статьи именно он имелся ввиду). Когда-то в основе ARM Limited находилась компания Apple и вероятно, что вся технология ARM принадлежала бы именно ей. Однако судьба распорядилась иначе – в 1998 году Apple находилась в кризисном положении, и руководство было вынуждено продать свою долю. В настоящее время она находится наравне с прочими производителями и остается для своих устройств iPhone и iPad закупать технологии у ARM Limited. Кто же мог знать, как все может обернуться?!

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

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

Отличительные особенности x86 и ARM

Многие пользователи, которые наслышаны о ARM и x86, немного путают эти две архитектуры между собой. А между тем у них есть определенные различия. Существует два основных типа архитектур:

  • CISC (Complex Instruction Set Computing).
  • RISC (Reduced Instruction Set Computing).

К CISC относятся процессоры x86 (Intel либо AMD), к RISC, как уже можно понять, семейство ARM. У архитектуры x86, и arm есть свои почитатели. Благодаря стараниям специалистов ARM, которые делали упор на энергоэффективность и использование простого набора инструкций, процессоры сильно выиграли от этого – мобильный рынок начал стремительно развиваться, а многие смартфоны практически почти приравнялись с возможностями компьютеров.

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

Эти два семейства по-своему завоевывали сердца пользователей. Но в чем их различие? Отличительных признаков или даже особенностей несколько, разберем наиболее важные из них.

Windows 8 и ARM

ARM и х86 сегодня различаются меньше, чем 30 лет назад, но все-таки базируются на разных принципах, что и разводит их по разным нишам процессорного рынка. Архитектуры могли бы никогда не пересечься, если бы не стал видоизменяться сам компьютер.

Windows 8

На первое место вышла мобильность и экономичность, больше внимания стало уделяться смартфонам и планшетам. Apple делает огромные деньги на мобильных гаджетах и привязанной к ним инфраструктуре. Microsoft не желает отставать и уже второй год пытается закрепиться на рынке планшетов. Достаточно успешно действует Google.

Настольный ПК становится в первую очередь рабочим инструментом, нишу бытового компьютера занимают планшеты и специализированные устройства. В этих условиях Microsoft собирается пойти на беспрецедентный шаг. Компания объявила о поддержке ARM в Windows 8. Пока не совсем ясно, к чему это приведет. Мы получим две версии операционной системы, или одну, которая будет работать с обеими архитектурами. Похоронит ли поддержка ARM со стороны Microsoft x86, или нет?

Windows 8, запущенная на ARM-процессоре

Информации пока немного. Microsoft продемонстрировала работу Windows 8 на устройстве с ARM-процессором во время выставки CES 2011. Стив Балмер показал, что на платформе ARM с помощью Windows можно смотреть видео, работать с изображениями, пользоваться Интернетом – Internet Explorer даже работал с аппаратным ускорением – подключать USB-устройства, печатать документы. Наиболее важным в этой демонстрации было наличие Microsoft Office, работающего на ARM без участия виртуальной машины. На презентации были показаны три гаджета на базе процессоров Qualcomm, Texas Instruments и NVIDIA. Windows имела стандартную оболочку «семерки», но представители Microsoft заявил о новом, переработанном ядре системы.

Однако, Windows — это не только ОС, сделанная инженерами Microsoft, это еще и миллионы программ. Некоторое ПО является критичным для людей многих профессий. Например, пакет Adobe CS. Будет ли компания поддерживать версию ПО для ARM-Windows, или новое ядро позволит Photoshop и другим популярным приложениям работать на компьютерах с NVIDIA Tegra или другим похожим чипам без дополнительных модификаций кода?

Кроме того встает вопрос с видеокартами. Сейчас видеокарты для ноутбуков делаются путем оптимизации энергопотребления настольных графических чипов – архитектурно они совпадают. В то же время сейчас видеокарта представляет собой что-то вроде «компьютера в компьютере» — у нее есть собственная сверхскоростная оперативная память и собственный вычислительный чип, который в специфических задачах существенно превосходит обычные процессоры. Само собой, что под них сделана соответствующая оптимизация приложений, работающих с 3D-графикой. Да и различные программы видеомонтажа и графические редакторы (в частности Photoshop с версии CS4), а с недавних пор еще и браузеры используют аппаратное ускорение средствами GPU.

Конечно, в Android, MeeGo, BlackBerry OS, iOS и других мобильных системах сделана необходимая оптимизация под различные присутствующие на рынке мобильные (точнее сверхмобильные) ускорители. Однако их поддержки нет в Windows. Драйверы, само собой, написаны будут (да и уже написаны – процессоры Intel Atom серии Z500 поставляются вкупе с чипсетом, куда интегрировано «смартфонное» графическое ядро PowerVR SGX 535), но вот оптимизация под них приложений может запоздать, если вообще случится.

Очевидно, что «ARM на десктопе» особо не приживется. Разве что в маломощных системах, на которых будут выходить в Интернет, да фильмы смотреть. На неттопах в общем. Так что ARM пока лишь пытается замахнуться на ту нишу, что занял Intel Atom и куда сейчас активно щемится AMD со своей платформой Brazos. И у нее это, видимо, отчасти получится. Если только обе процессорные компании не «выстрелят» чем-нибудь весьма конкурентоспособным.

Местами Intel Atom и ARM уже конкурируют. Они используются для создания сетевых хранилищ данных и маломощных серверов, которые могут обслуживать малый офис или квартиру. Также есть несколько коммерческих проектов кластеров на базе экономичных чипов Intel. Характеристики новых процессоров на базе ARM Cortex-A9 позволяют использовать их для поддержания инфраструктуры. Таким образом, через пару лет мы можем получить ARM-серверы или ARM-NAS для небольших локальных сетей, нельзя исключать и появление маломощных веб-серверов.

Предисловие

Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm.

Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с использованием конкретного компилятора для данной архитектуры и тесты производятся на различных дистрибутивах операционных систем на ядре Linux. На результаты может влиять как тип так и версия компилятора, а также режим оптимизаций. Хотя даже таким способом можно примерно сравнить производительность процессоров на разных архитектурах.

P.S.: Знаю, что большинство тестов для очень старых компьютеров, но они работают везде. Что даже очень неплохо.

Новые достижения

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

Не так давно была представлена новая разработка ядер: Cortex-A53, и Cortex-A57, в которых было проведено одно важное обновление – поддержка 64-битных вычислений

Ядро A53 является прямым последователем ARM Cortex-A8, у которого хоть и была не очень высокая производительность, но энергопотребление на минимальном уровне. Как отмечают специалисты, у архитектуры arm cortex a53 энергопотребление снижено в 4 раза, а по производительности она не будет уступать ядру Cortex-A9. И это притом, что площадь ядра A53 на 40% меньше, чем у A9.

Ядро A57 придет на замену Cortex-A9 и Cortex-A15. При этом инженеры ARM заявляют о феноменальном приросте производительности – в три раза выше, чем у ядра A15. Иными словами микропроцессор A57 будет в 6 раз быстрее Cortex-A9, а его энергоэффективность будет в 5 раз лучше, чем у A15.

Если подытожить, то серия cortex, а именно более совершенная a53, отличается от своих предшественников более высокой производительностью на фоне не менее высокой энергоэффективности. Даже процессоры Cortex-A7, которые ставятся на большинство смартфонов, не выдерживают конкуренции!

Но что более ценно это то, что архитектура arm cortex a53 – это та составляющая, которая позволит избежать проблем, связанных с нехваткой памяти. К тому же и устройство будет медленнее разряжать батарею. Благодаря новинке эти проблемы теперь останутся в далеком прошлом.

Сверхбольшие интегральные схемы

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

Общеизвестно, что интернет был придуман в Агентстве по перспективным оборонным научно-исследовательским разработкам США (DARPA), однако это не единственный проект DARPA, оказавший мощное влияние на всю индустрию

VLSI Project как раз из таких разработок: его относительно малая известность просто несоизмерима с его важностью. VLSI расшифровывается как Very-large-scale integration — сверхбольшая интегральная схема, или СБИС

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

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

Профессор Калифорнийского технологического института Карвер Мид и программист из лаборатории Xerox PARC Лин Конвей предложили создать систему автоматизированного проектирования (САПР), которая бы помогала делать процессоры фактически любой сложности. На тот момент для работы с такой программой понадобился бы суперкомпьютер, так что DARPA пришлось профинансировать не только создание САПР, но и все вокруг: разработку рабочих станций и даже операционной системы. Позднее из этих проектов вырастут фирмы Sun Microsystems и Silicon Graphics, а в качестве ОС будет создана новая ветвь UNIX — Berkley Distribution Software (BSD).

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

Область применения

Именно развитие мобильных устройств и принесло компании ARM Limited огромную популярность. А когда производство смартфонов и прочих портативных электронных устройств приобрело массовый характер, энергоэффективным процессорам тут же нашлось применение. Вот интересно, а есть ли linux на arm-архитектуре?

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

Можно сказать, что практически каждое современное электронное устройство, которое нуждается в управлении процессором, так или иначе оснащенном чипами ARM. А тот факт, что такая процессорная архитектура поддерживает многие операционные системы, будь то Linux, Android, iOS, и Windows, является неоспоримым преимуществом. Среди них числиться и Windows embedded CE 6.0 Core, архитектура arm тоже ею поддерживается. Данная платформа рассчитана на наладонные компьютеры, мобильные телефоны и встраиваемые системы.

Понимание различных версий файлов

Если Вы читаете это, то, возможно, Вы пытаетесь загрузить приложение из APK Mirror, которое является местом для размещения APK, доступные бесплатно в Play Store. Это отличный вариант, если приложение, которое Вы хотите установить, ограничено по географическому признаку, недоступно для Вашего устройства или имеет обновление, которое еще не попало в Вашу учетную запись. Хотя Вам также может понадобиться эта информация при загрузке приложений с XDA Developers или других источников.

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

Как правило, детали разбиваются на три основные категории:

  • Архитектура: это относится к типу процессора в телефоне. Обычно это будут arm64, x86 и x86_64. ARM и x86 предназначены для 32-разрядных процессоров, а arm64 и x86_64 — для 64-разрядных процессоров. Ниже мы объясним более подробно.
  • Версия Android: это версия ОС Android, на которой работает Ваше устройство.
  • DPI экрана: DPI означает «Точки на дюйм» — это плотность пикселей экрана Вашего телефона. Например, шестидюймовый полноэкранный экран (1920 × 1080) имеет DPI ~ 367. Увеличьте это разрешение до 2880 × 1440, а DPI поднимается до ~ 537.

Технически правильная терминология, когда речь идет о плотности пикселей, должна быть PPI или Pixels Per Inch. Но поскольку APK Mirror (и другие) ссылается на это как DPI, мы будем придерживаться относительной терминологии.

Кембриджский желудь

История Acorn связана с другой известной британской компанией — Sinclair Research, где был создан небезызвестный компьютер ZX Spectrum. Будущий сооснователь Acorn Крис Карри сделал свою карьеру именно в Sinclair Radionics (позднее — Research). В те времена Карри и Синклер были друзьями и вместе работали над карманным калькулятором и другими проектами, но в 1978 году во время подготовки прототипа ZX80 (одного из предшественников ZX Spectrum) они так сильно разошлись во мнениях относительно будущего компьютера, что Карри покинул Синклера и его компанию. А вскоре основал собственную — совместно с предпринимателем, изобретателем и инвестором Германом Хаузером. Фирма называлась Cambridge Processor Unit, или просто CPU.

Хаузер к тому времени уже успел завербовать одного гениального студента Кембриджского университета — Роджера Уилсона. Тот был буквально влюблен в электронику, на память цитировал справочники компонентов и писал программы в машинных кодах без единой ошибки — по крайней мере такова легенда. Опыт настоящей работы у Уилсона был небольшой — за ним числилось разве что создание автоматизированной кормушки для коров на основе чипа MOS Technology 6502. Но когда Хаузер предложил Уилсону поучаствовать в создании электронной записной книжки (которая так потом и не появилась на свет), тот немедленно согласился.

Герман Хаузер и Крис Карри на заре Acorn
Другие статьи в выпуске:

Хакер #176. Анонимность в интернете

  • Содержание выпуска
  • Подписка на «Хакер»

Карри привел с собой в новую фирму еще одного студента Кембриджа — второкурсника Стива Фербера. Фербер, как и Карри, ранее работал на Синклера и занимался разработкой набора MK14, из которого любой желающий мог собрать простенький домашний компьютер. Первое время Ферберу приходилось совмещать работу в CPU с учебой, но зато у него не было никаких сомнений в том, что после получения диплома он сможет продолжать заниматься любимым делом — придумывать компьютеры.

В 1979 году CPU был переименован в Acorn (что переводится как «желудь»), якобы чтобы числиться в телефонном справочнике до Apple. Но самое главное — фирма в тот год выпустила свой первый продукт, Acorn System 1. Это был очень скромный компьютер для научных расчетов, имевший однострочный ЖК-дисплей и продававшийся за 80 фунтов стерлингов. Для сравнения, ZX80, тоже считавшийся экстремально дешевым, в сборе стоил сотню.

Acorn System 1 выглядел очень скромно — не сразу скажешь, что это компьютер

Настоящий успех ждал Acorn двумя годами позже, когда совместно с BBC (да-да, той самой Британской широковещательной корпорацией, что по сей день снабжает весь мир своими новостями и сериалом «Доктор Кто») Карри и Хаузеру удалось выиграть тендер на поставки компьютеров в британские школы, — так родился BBC Micro. Клайв Синклер тоже участвовал в тендере и был настолько взбешен поражением, что напал на своего бывшего друга и коллегу Криса Карри в одном из кембриджских пабов и отхлестал его свернутой в трубочку газетой.

BBC Micro в Англии известен не меньше, чем ZX Spectrum 

Не совсем security функции

Все мы знаем что есть такая штука как BIOS (а теперь и EFI). Их задачей является первичная инициализация системы, загрузка OS, предоставление OS информации о системе, помощь OS в управлении компьютером.

Исторически сложилось так, что на ARM-based платформах нет (точнее не было) аналога BIOS. Обычно в ROM-коде присутствовал простенький загрузчик который находил и загружал полноценный загрузчик. Часто таким полноценным загрузчиком выступает u-boot. U-boot в свою очередь инициировал минимум периферии (например запускал контроллер DRAM), находил и запускал ядро linux. Ядро linux в свою очередь могло полностью вытереть из памяти u-boot, потому что он больше не нужен. И всё, после загрузки ядро было полностью предоставлено себе. Прямо в него (или в сбоку, в специальную структуру под названием device tree) была зашита вся информация о системе где оно работает. Все операции по управлению системой (например разгон процессора) ядру приходилось выполнять самому.

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

Короче, потребность в чем-то вроде BIOS существует. Только в ARM-системах он называет Secure Monitor и работает благодаря Security Extensions. По моему опыту чаще всего он используется для запуска и остановки дополнительных ядер в многопроцессорной системе, управления шиной, переброски выполняющегося кода между мощными и слабыми ядрами в ахритектуре big.LITTLE, активации режима гипервизора и тому подобных деликатных вещей.

Счетчик цикловCycle counter

Все ЦП с архитектурой ARMv8 должны поддерживать регистр счетчика циклов (64-разрядный регистр, который в Windows доступен для чтения на любом уровне исключения, в том числе и в пользовательском режиме).All ARMv8 CPUs are required to support a cycle counter register, a 64-bit register that Windows configures to be readable at any exception level, including user mode. Доступ к нему может осуществляться посредством специального регистра PMCCNTR_EL0 с использованием кода операции MSR в коде ассемблера или встроенной функции в коде C/C++.It can be accessed via the special PMCCNTR_EL0 register, using the MSR opcode in assembly code, or the intrinsic in C/C++ code.

Счетчик циклов подсчитывает реальное количество циклов, а не время по часам.The cycle counter here is a true cycle counter, not a wall clock. Частота подсчета зависит от тактовой частоты процессора.The counting frequency will vary with the processor frequency. Если вам необходимо знать частоту счетчика циклов, значит, сам этот счетчик вам не нужен.If you feel you must know the frequency of the cycle counter, you shouldn’t be using the cycle counter. В таком случае вам требуется измерять время по часам, для чего используется .Instead, you want to measure wall clock time, for which you should use .

Первая микросхема ARM

Хотя процессор ARM создавался как заказное устройство для совершенно конкретной цели, разрабатывающая его команда чувствовала, что самый правильный путь – это путь производства процессоров с характеристиками, удовлетворяющими как можно более широкому кругу приложений. Однако надо отметить, что судьба архитектуры ARM сложилась случайно. В то время как большинство производителей процессоров с RISC архитектурой занималось конструированием сравнительно больших микросхем (SPARC RISC, Intel i860, AMD 29000 и т. д.), ARM предпочла создавать процессоры с малой степенью интеграции. Одной из причин такого решения, было то, что имеющихся у компании на тот момент средств разработки было недостаточно для создания больших и сложных устройств. Сейчас это является несомненным преимуществом ARM-процессоров, но начиналось все с того, что команде талантливых, но неопытных инженеров (большинство членов команды было программистами и разработчиками схем на уровне печатных плат) потребовалось создать процессор, используя новые для нее инструменты разработки, многие из которых, к тому же, давно устарели.

Несмотря на стесненные условия работы, мотивация и азарт у маленькой команды были высоки. Как и для большинства стартаповых компаний, главной целью ARM было выпустить свою первую готовую продукцию. В данном случае, таковой стал процессор ARM610, специально разработанный для Apple. Это устройство поддерживало полную 32-разрядную адресацию и обратный порядок байтов – одно из многочисленных требований компании Apple, необходимых для использования процессора ARM в ее будущих разработках. Были также разработаны улучшенный видеоконтроллер VIDC20 и сопроцессор с плавающей точкой. Целью Apple было использование их продукта в процессоре персонального карманного органайзера. От процессора, ставшего известным под названием ARM600, впоследствии произошел 20-мегагерцовый ARM610, использовавшийся в компьютерах Newton. Одновременно, команда разработчиков программного обеспечения из ARM создала межплатформенный кросс-инструментарий разработки, позволявший проектировщикам при работе на разных платформах применять средства разработки ARM, ассемблер, компиляторы, отладчики и эмуляторы.

Процессор ARM610

Производились также аппаратные оценочные комплекты, с помощью которых разработчики могли экспериментировать с ARM6 и начинать разработку операционной системы и программ поддержки для своих приложений, не дожидаясь появления законченной системы. ARM разработала также оценочную кросс-платформу PIE (Platform Independent Evaluation), позволявшую конструктору проверять свои идеи, вставив кросс-плату ARM процессора в хост-компьютер и запустив инструментарий кросс-разработки.

Новый ARM на перепутье

В своей новой роли генерального директора, 27 ноября 1990 Робин официально создал компанию Advanced RISC Machines Ltd. (ARM). По заявлению Робина, целью новой компании было «повернуться к растущему рынку и атаковать его высокопроизводительными, малопотребляющими и дешевыми 32-разрядными микросхемами с RISC-архитектурой».

На тот момент Робину пришлось решать множество стратегических дилемм. Так, один из вариантов развития состоял в том, чтобы слить бизнес с полупроводниковой компанией, а затем выделить и возглавить новое подразделение с крупной финансовой поддержкой. Другой путь заключался в создании полупроводниковой компании, которая разрабатывала бы и поставляла на рынок микросхемы, в то время как их производство выполнялось бы на субподрядной основе. Возможно, ARM могла бы стала бы партнером Apple, чтобы стимулировать разработку всей новой продукции. Однако принятое в конечном итоге решение заключалось в разработке основных технологий с последующим их лицензированием в качестве интеллектуальной собственности (IP). Оригинальной мыслью для ARM, в данном случае, было создание «партнерской модели», посредством которой могли бы быть созданы глобальные стандарты. В последствии это развилось в модель лицензирования IP, используемую сегодня.

По мере развития полупроводниковой отрасли с 1960-х, игроки на этом поле становились все менее интегрированы по вертикали. Впервые это проявило себя, когда компании стали продавать собственные подразделения по изготовлению оборудования для полупроводникового производства. Fairchild, Motorola и Texas Instruments – все прошли этот путь. В 1980-х в Кремниевой долине зародился новый вид бизнеса – фаблесс-компании, т.е., компании без собственного производства. Они заключали субподрядные договоры на производство своей продукции в Японии и на Тайване. В 1990-х появилась новая модель маленьких инновационных компаний, создающих продукцию интеллектуальной собственности, которая превращалась в реальные изделия с помощью уже других компаний, занимающихся также ее продажей и представлением на рынке. И ARM была первооткрывателем этой модели.

Первые ARM

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

Кроме того, упрощая наборы команд, разработчики архитектуры смогли обойтись без ряда других блоков. Например, в первых ARM начисто отсутствовал микрокод, а также модуль выполнения операций с плавающей запятой – FPU. Общее число транзисторов в первом ARM составляло 30 000. В аналогичных х86 их было в несколько раз, а то и на порядок больше. Дополнительная экономия энергии достигается за счет условного выполнения команд. То есть та или иная операция будет выполнена, если в регистре есть соответствующий факт. Это помогает процессору избежать «лишних телодвижений». Все инструкции выполняются последовательно. В результате ARM потерял в производительности, но не существенно, при этом значительно выиграл в энергопотреблении.

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

С целью ее увеличения ARM в течение последних лет внедрила несколько дополнительных наборов инструкций. Наряду с классической ARM, существуют Thumb, Thumb 2, Jazelle. Последняя предназначена для ускорения выполнения Java-кода.

Империя Olivetti

Хоть Archimedes и выпускался под маркой Acorn, компания к тому времени уже не была частным бизнесом Хаузера и Карри. За успешным 1983 годом последовал ужасный 1984-й, когда рынок домашних компьютеров перенасытился. Это имело трагические последствия для многих игроков: Atari и Commodore сменили хозяев, а в Apple (в первый раз) столкнулись с перспективой банкротства.

В Acorn к этой альфа-версии краха доткомов тоже не были готовы: компания только-только вышла на биржу, и заработанных на этом денег стало достаточно, чтобы удовлетворить непрерывно росший до того момента спрос. В результате на складах Acorn скопилось 250 тысяч компьютеров, продать которые внезапно оказалось нереально.

И тут на горизонте появилась итальянская фирма Olivetti. Ее руководство уже и раньше предпринимало попытки перейти от производства пишущих машинок к компьютерам. С конвейеров Olivetti с 1983 по 1985 год сходили модели на основе Zilog Z8000 и Intel 8088. Но ARM, Archimedes и его операционная система RISC OS казалась для менеджеров Olivetti лакомым кусочком: иметь собственные технологии всегда лучше — по крайней мере в то время так казалось.

Вскоре была заключена сделка, в результате которой к Olivetti перешло 80 процентов акций Acorn, а Герман Хаузер стал руководителем исследовательского подразделения. Второй основатель Acorn Крис Карри, получив дивиденды от продажи, предпочел основать новую компанию — General Information Systems. Она до сих пор функционирует и занимается смарт-картами, электронными денежными переводами и системами безопасности.

Итальянцы, правда, тоже предвидели будущее неверно: в конце восьмидесятых годов началось победное шествие IBM PC и его клонов. Стало понятно, что все несовместимое с PC скоро окажется на свалке истории, и компании вместо того, чтобы взращивать свои технологии, массово переходили на сборку компьютеров из готовых компонентов. Тогдашние действия Olivetti можно сравнить с HP, три года назад купившей Palm, чтобы затем отказаться от него и перейти на вездесущий Android.

Хаузер тоже не был горд тем, что продал свою компанию. В одном из интервью он сетует: можно было бы поступить, как IBM, — дать возможность сторонним фирмам производить компоненты и собирать компьютеры. И тогда, возможно, Acorn и ARM, а не IBM и Intel оказались бы в центре новой индустрии. Но нужное решение вовремя принято не было, и стать британским IBM фирме Acorn было не суждено. Зато у Хаузера имелся запасной план.

Процесс запуска ОС на ARM-машинах

После включения системы на базе ARM-процессора, из ROM-памяти загружается начальный загрузчик и адрес его точки входа. Начальный загрузчик проводит предварительную инициализацию системы, исполняя тем самым ту же роль, которую исполняет BIOS на системах x86, после чего может загрузить либо системный загрузчик, либо напрямую ОС.

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

ОС, поддерживающие ARM

Архитектура ARM поддерживается множеством операционных систем. Наиболее широко используемые: Linux (в том числе Android), iOS, Windows Phone.

Работать на системах с ARM-процессором могут различные Unix и Unix-подобные ОС: Linux (многие дистрибутивы), iOS, Android, BSD (FreeBSD, NetBSD, OpenBSD), QNX, Plan 9, Inferno, OpenSolaris (2008—2009), Firefox OS.

Также на платформе запускаются отдельные варианты семейства Windows: Windows CE, Windows Phone, Windows RT, Windows 10 (только на Raspberry Pi)

Кроме того, ARM поддерживают: FreeRTOS, Nucleus, Symbian OS, RISC OS, RISC iX.

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

Эта архитектура была представлена чуть позже за x86 — в 1985 году. Она была разработана известной в Британии компанией Acorn, тогда эта архитектура называлась Arcon Risk Machine и принадлежала к типу RISC, но затем была выпущена ее улучшенная версия Advanted RISC Machine, которая сейчас и известна как ARM.

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

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

Взаимодействие Normal World и Secure World

Процессор всегда запускается в secure-mode (потому что иначе он туда никак не попадет). Загружается и инициализируется Trusted OS, после чего процессор переходит в non-secure mode и загружает обычную OS.

Казалось бы при всех своих возможностях secure world должен занимать доминирующее положение в системе. Но на самом деле всё наоборот. Большую часть времени он неактивен. Только когда обычной OS нужны какие-то услуги, она обращается к secure monitor и управление переходит в secure world. Таким образом именно normal world решает когда будет работать secure world. Это сделано для того, что бы не мешать пользователю работать с устройством, смотреть видео и слушать музыку. Ведь если secure world заберет управление в неподходящий момент, то это может нарушить работу normal world.

На самом деле у secure world есть возможность получить управление в обход normal world, используя прерывания. Например можно завести таймер который будет периодически вызывать secure world. Но так обычно не делают по причинам обозначенным выше. User experience превыше всего.

Для ядра linux есть набор патчей который позволяет обычным приложениям взаимодействовать с приложениями работающими в Trusted OS, согласно спецификациям GlobalPlatform TEE, о которых я уже упоминал выше. Таким разработчики могут писать приложения которые (с незначительными изменениями) смогут работать на любой совместимой Trusted OS.

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

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

Adblock
detector