Ядра ARM Cortex-A35 обеспечат высокую производительность на бюджетных устройствах
Компания ARM анонсировала новое 64-битное процессорное ядро Cortex-A35, которое пришло на смену A7 и призвано повысить производительность и энергоэффективность бюджетных смартфонов, предназначенных для Китая, Индии, Бразилии и других развивающихся рынков. Производитель рассказал, что Cortex-A35, выполненное по 28-нанометровому техпроцессу, будет работать на частоте 1 ГГц и потреблять при этом всего 90 мВт энергии. В ARM уверены, что процессор на ядрах Cortex-A35 можно будет легко перевести и на более точный техпроцесс (14 или 16 нм), что даст прибавку тактовой частоты вплоть до 2 ГГц.
Прогноз на будущее
Несмотря на все достоинства процессоров ARM многие все еще воспринимают эту платформу как непроверенную и незрелую. Однако новые серверные чипы ARM, основанные на новейшей 64-битной архитектуре, имеют мало общего с чипами прошлых лет. Они гораздо ближе к процессорам Intel с точки зрения функционала и поддержки стандартов.
На их стороне — энергоэффективность, появление большого количества задач, для которых они подходят наилучшим образом (например, простые, но многопоточные нагрузки, ведение логов, простые запросы больших объемов, другие задачи «малых размеров», решение которых процессорами Intel дорого и неэффективно).
Проблема состоит в том, что пока размер серверной экосистемы ARM очень ограничен. Разработчики не уверены, что серверные платформы станут популярны в ближайшее время, разработчики самих платформ не усердствуют, видя, что ПО для ARM пока мало. Но этот круг понемногу размыкается.
По мере роста предложения и спроса решится и другая проблема — поскольку серверные процессоры производились в небольших объемах, то ARM-сервер не стоил дешевле сервера платформы Intel со схожей производительностью. По мере роста интереса к этому рынку со стороны лидеров отрасли цены на процессоры снизятся и ARM-архитектура сможет получить и абсолютное (а не только относительное, в пересчете на затраченный ватт) ценовое преимущество.
Большую роль могут сыграть и истории успеха — если Amazon начнет широко использовать в своих ЦОДах процессоры семейства Graviton, то для рынка это будет довольно четкий сигнал, что время серверных процессоров ARM пришло.
ARM разрабатывает новые процессорные ядра для 10-нм чипсетов
Британская компания ARM обновит линейку процессорных ядер Cortex-A — новые решения будут предназначены для чипсетов, разработанных по 10-нм и 16 нм-техпроцессам с использованием архитектуры FinFET. Информация появилась в сети в виде слайда с изображённым на ней ассортиментом разработок ARM. Всего в обновленной линейке появится пять новых процессорных ядер вместо двух в последней вышедшей серии. Таким образом, компания планирует внедрить на рынок решения среднего уровня. Новые ядра получили свои названия в честь персонажей греческой мифологии, а старшим в линейке станет обновлённый Cortex-A72 под кодовым именем Ares.
Почему Microsoft ставит Windows 10 на ARM?
ARM — это другой тип архитектуры процессора от стандартной архитектуры Intel x86 и 64-битной архитектуры Intel, используемой сегодня на ПК. (Даже AMD выпускает чипы, совместимые с архитектурой Intel.) Мобильные устройства, такие как телефоны iPhone, iPad и Android, наряду со многими другими более мелкими устройствами, имеют чипы ARM вместо чипов Intel внутри них.
Маломощные ARM ПК обладают некоторыми преимуществами по сравнению с традиционными x86 (большинство из них — настольные компьютеры и ноутбуки, которые мы используем сегодня). ARM ПК имеют встроенную сотовую связь LTE, часто предлагают лучшее время автономной работы, чем процессоры Intel и AMD, а оборудование дешевле для производителей.
Microsoft хотела бы, чтобы Windows 10 запускалась на аппаратном уровне ARM, чтобы получить эти преимущества. Конечно, Вы, вероятно, не будете использовать десктопный ARM в ближайшее время, но ARM может стать отличным выбором для планшетов, устройств 2 в 1 и даже ноутбуков.
Вместо того, чтобы создавать более ограниченную версию Windows для этой платформы, как и при неудачной Windows RT, Microsoft решила выпустить полную версию Windows 10 для аппаратного обеспечения ARM, которая может даже запускать традиционные настольные приложения Windows.
Полученные устройства предназначены для «Всегда подключены» и обещают до 20 часов активного использования и 700 часов «В режиме ожидания». И они могут даже запускать традиционное программное обеспечение для настольных компьютеров Windows.
Microsoft впервые объявила о партнерстве с Qualcomm для создания Windows на ARM в WinHEC в декабре 2016 года.
Оборудование компьютеров
Внутреннее устройство процессора (архитектура) 8086 оказалось достаточно удачным, чтобы дать еще целое семейство процессоров, последовательно улучшаемых на протяжении долгого времени. Очередная модель получила обозначение 80186, и в дальнейшем, вплоть до Pentium, третья цифра в обозначении микросхем последовательно возрастала.
Удачное внутреннее устройство процессора (архитектура) 8086, после которого стало появляться семейство улучшенных процессоров
Именно из-за способа обозначения чипов, в общем, внутренней проблемы производителя, появилось “загадочное” обозначение x86. Потребителя обычно такие вещи совершенно не интересуют. x86 – это просто собирательное имя для 186, 286, 386 и т.д. Не следует путать его с x64. Все очень просто: архитектуру 32-разрядных компьютеров называют x86, а 64-разрядных – x86-64.
До 80386 шина процессора была 16-разрядной, и это должно было учитываться при написании кода. Поскольку в программах очень часто используются 32-разрядные числа, а иногда и 64-разрядные, то 16-разрядный процессор должен был обрабатывать их “в несколько приемов” (машинных инструкций) что замедляет работу программ.
Архитектура 64-разрядных – x86-64 процессоров
С появлением 80386-го процессора производительность компьютера стала резко возрастать, по причинам, отмеченным в предыдущем абзаце. Теперь большие числа стали обрабатываться за одну машинную команду. Но не только производительность. Очень ценной оказалась возможность увеличить адресуемую память – вплоть до 4 гигабайт (хотя для приложений доступно несколько меньше, около 3). Кроме расширения регистров и шин, одновременно росла и тактовая частота процессоров, появился конвейер, суперскалярная архитектура и т.п. В эпоху 32-битных машин произошли революционные изменения в технике.
В начале 2000-х годов появились 64-разрядные процессоры. Не все они оказались удачными. Например, Intel Itanium (архитектура IA-64), при всех своих преимуществах оказался плохо совместимым со многими 32-разрядными программами, которые работали на нем еще хуже, чем на других машинах. За что получил прозвище “Итаник” (от слова Титаник) и скоро был снят с производства.
Intel Itanium (архитектура IA-64), при всех своих преимуществах оказался плохо совместимым со многими 32-разрядными программами
64-разрядные процессоры AMD (компания Advanced Micro Devices) оказались намного более практичными, так как это было очередное расширение x86, причем была достигнута очень высокая степень обратной совместимости. Это означает, что 32-разрядные программы на таких процессорах выполняются без потери скорости и при поддержке любого машинного кода.
64-разрядные процессоры AMD более практичные и имеют высокую степень обратной совместимости
Созданная AMD архитектура команд для новых процессоров получила несколько названий, означающих одно и то же:
- x86-64;
- Amd64;
- Intel64.
Oracle и Microsoft используют для этой архитектуры термин x64, так что его тоже можно добавить в этот список.
Особенности процессоров NVIDIA, TI, Qualcomm, Marvell
Лицензируя ARM направо и налево, разработчики усиливали позиции своей архитектуры за счет компетенций партнеров. Классическим примером в данном случае можно считать NVIDIA Tegra. Эта линейка систем-на-чипе имеет в основе архитектуру ARM, но у NVIDIA уже были свои весьма серьезные наработки в области трехмерной графики и системной логики.
NVIDIA Tegra
ARM дает своим лицензиарам широкие полномочия по переработке архитектуры. Соответственно инженеры NVIDIA получили возможность совместить в Tegra сильные стороны ARM (вычисления CPU) и собственной продукции – работа с трехмерной графикой и т.д. В результате Tegra обладают высочайшей для своего класса процессоров производительностью в 3D. Они на 25-30% быстрее PowerVR, используемых Samsung и Texas Instruments, а также почти в два раза превосходят Adreno, разработку Qualcomm.
Другие производители процессоров на базе архитектуры ARM усиливают те или иные дополнительные блоки, совершенствуют чипы, чтобы добиться более высоких частот и производительности.
Qualcomm Snapdragon
Например, Qualcomm не использует референсный дизайн ARM. Инженеры компании серьезно переработали его и назвали Scorpio – именно он лежит в основе чипов Snapdragon. Отчасти дизайн был переработан с целью освоения более тонких техпроцессов, чем предусмотрено стандартным IP ARM. В результате первые Snapdragon выпускались по нормам 45 нм, что обеспечило им более высокие частоты. А новое поколение этих процессоров с заявленными 2.5 ГГц и вовсе может стать самым быстрым среди аналогов на базе ARM Cortex-A9. Также Qualcomm применяет собственное графическое ядро Adreno, созданное на базе разработок, приобретенных у AMD. Так что в некотором роде Snapdragon и Tegra – враги на генетическом уровне.
Samsung Hummingbird
Samsung при создании Hummingbird также пошла по пути оптимизации архитектуры. Корейцы совместно с компанией Intrinsity изменили логику, благодаря чему сократилось количество инструкций необходимых для выполнения некоторых операций. Таким образом удалось выиграть 5-10% производительности. Кроме того, был добавлен динамический кэш второго уровня и мультимедийное расширение ARM NEON. В качестве графического модуля корейцы использовали PowerVR SGX540.
Процессор OMAP 4 производства Texas Instruments
Texas Instruments в новых сериях OMAP на базе архитектуры ARM Cortex-A добавила специальный модуль IVA, ответственный за ускорение обработки изображений. Он позволяет быстрее обрабатывать данные, поступающие с сенсора встроенной камере. Кроме того, он подключен к ISP и содействует ускорению видео. В OMAP также применяется графика PowerVR.
Apple A4
Apple A4 обладает большим кэшем в 512 Кбайт, в нем используется графика PowerVR, а само ARM-ядро построено на базе варианта архитектуры, переработанного Samsung.
Apple A5
Двухъядерный Apple A5, дебютировавший в iPad 2 в начале 2011 года, базируется на архитектуре ARM Cortex-A9, также, как и в предыдущий раз оптимизированной Samsung. По сравнению с А4 новый чип обладает удвоенным объемом кэш-памяти второго уровня — его увеличили до 1 Мбайт. Процессор содержит двухканальный контроллер оперативной памяти, обладает улучшенным видеоблоком. В результате его производительность в некоторых задачах вдвое выше, чем у Apple A4.
Marvell предлагает чипы на базе собственной архитектуры Sheeva, которая при ближайшем рассмотрении оказывается гибридом XScale, некогда купленной у Intel, и ARM. Данные чипы обладают большим по сравнению с аналогами объемом кэш-памяти, снабжены специальным мультимедийным модулем.
Сейчас лицензиаты ARM производят только чипы на базе архитектуры ARM Cortex-A9. При этом, хотя она и позволяет создавать четырехъядерные варианты, NVIDIA, Apple, Texas Instruments и другие пока ограничиваются моделями с одним или двумя ядрами. Кроме того, чипы работают на частоте до 1.5 ГГц. Cortex-A9 позволяет делать двухгигагерцовые процессоры, но опять же производители не стремятся быстро наращивать частоты — ведь пока рынку хватит и двухъядерников на 1.5 ГГц.
По-настоящему многоядерными должны стать процессоры на базе Cortex-A15, но они если и анонсированы, то на бумаге. Их появления в кремнии стоит ожидать в следующем году.
Современные процессоры лицензиатов ARM на базе Cortex-A9:
NVIDIA (Санта-Клара, Калифорния, США)
Tegra 2. История ARM-процессоров компании NVIDIA тянется еще с чипа Tegra первого поколения (архитектура ARM11), который смог засветиться разве что в плеере Microsoft Zune HD. Настоящую же славу именитому производителю видеокарт на новом для него рынке принес двухъядерный мобильный процессор Tegra 2. Чуть ли не все брендовые 10-дюймовые планшеты образца 2011 года основывались на этом чипе: Acer Iconia Tab A500, ASUS Eee Pad Transformer TF101, Motorola XOOM, Samsung Galaxy Tab 10.1 и др.
Несмотря на архитектуру ARM Cortex-A9 инженеры NVIDIA все же «покопались» внутри Tegra 2 и убрали из него видеодекодер NEON, чтобы уместить графический ускоритель помощнее (GeForce UPL c 4 ядрами). В результате Tegra 2 и правда неплохо «ворочал» трехмерные игры, но напрочь отказывался воспроизводить FullHD-видео. Спустя два года, устройства на базе NVIDIA Tegra 2 все еще можно встретить в розничной продаже, например смартфон ZTE Mimosa X и планшет Acer Iconia Tab A200.
Tegra 3. Вышедший в 2012 году чип NVIDIA Tegra 3 (графика GeForce UPL с 12 ядрами) повторил успех предшественника на рынке планшетов. Поспособствовал этому в первую очередь 200-долларовый планшет Google Nexus 7. Да и сам процессор Tegra 3 оказался весьма интересным: помимо четырех ядер ARM Cortex-A9 (до 1,7 ГГц) в нем предусмотрено дополнительное энергоэффективное ядро (500 МГц) для решения простых задач.
Помимо Nexus 7 встретить NVIDIA Tegra 3 можно в смартфонах HTC One X и LG Optimus 4X HD, а также Android-планшетах Lenovo IdeaTab A2109, ASUS Transformer Pad TF300T и TF700, Acer Iconia Tab A510 и A700. Поддерживается чип NVIDIA и операционной системой Windows RT – на его основе построены планшеты-трансформеры Microsoft Surface и Lenovo IdeaPad Yoga 11.
Tegra 4. 2013 год у NVIDIA проходит под знаменем Tegra 4, причем новых процессоров выйдет сразу два: мощный для планшетов и энергоэффективный для смартфонов. Так, планшетная модификация Tegra 4 получит четыре ядра Cortex-A15, дополнительное энергоэффективное ядро и графику GeForce ULP с аж 72 ядрами. Основываться на базе Tegra 4 будут планшеты-трансформеры ASUS Transformer Pad Infinity и HP SlateBook x2, а также портативная игровая консоль NVIDIA Shield.
В качестве основы для смартфонов компания NVIDIA предлагает использовать энергоэффективный чип Tegra 4i. Он обладает четырьмя ядрами ARM Cortex-A9 R4 с частотой до 2,3 ГГц, графическим ускорителем GeForce ULP с урезанным до 60 количеством шейдеров и, что особенно интересно, LTE-модемом Icera i500. Основой Tegra 4i пока стал лишь для показанного на выставке MWC 2013 эталонного смартфона NVIDIA Pheonix. Также поговаривают о смартфонах HTC и ZTE.
Регистры и набор команд
Регистры общего назначения — r0-r30, при этом обращаться можно к ним как к 64-битным (x0-x30) или как к 32-битным (w0-w30, доступ к младшим 32 битам).
Набор инструкций для Aarch64 называется A64. Ознакомиться с описанием инструкций можно тут. Базовые арифметические и некоторые другие команды на языке ассемблера остались прежними:
Теперь немного о различиях:
-
Регистр PC (Program counter, указатель на текущую выполняемую инструкцию) теперь не регистр общего назначения (раньше это был R15), следовательно, к нему нельзя обращаться обычными командами (, ), только через , и так далее.
-
Состояние программы теперь отображает не CPSR (этого регистра попросту нет), а регистры DAIF (содержит маску IRQ, FIQ и т.д., AIF — те самые биты A, I, F из CPSR), NZCV (биты negative, zero, carry, oVerflow — внезапно, те самые NZCV из CPSR) и System Control Register (SCTLR, для включения кэширования, MMU, endianness и так далее).
Вроде бы, этих команд достаточно, чтобы написать простенький загрузчик, который сможет передать управление в платформо-независимый код 🙂
2021: Интеграция с Nvidia Aerial A100 AI-on-5G
28 июня 2021 года компания NVIDIA объявила о расширении поддержки CPU на базе Arm для платформы NVIDIA Aerial A100 AI-on-5G, обеспечивая более широкий выбор решений в экосистеме 5G.
По информации компании, вычислительная платформа NVIDIA Aerial A100 AI-on-5G использует комплект разработки ПО NVIDIA Aerial и будет включать 16 процессоров Arm Cortex-A78 в NVIDIA BlueField-3 A100. Такая автономная конвергентная карта обеспечит доступ к периферийным корпоративным приложениям ИИ через vRAN 5G с у оптимизированной производительностью на Ватт и меньшим временем развертывания. Подробнее здесь.
Поддержка старых аппаратных устройств может стать проблемой
Хотя Windows 10 на ARM может эмулировать традиционные настольные приложения, она не сможет устанавливать драйверы оборудования, написанные для традиционных операционных систем x86 или x64 Windows. Для поддержки различных аппаратных устройств потребуются версии ARM для этих аппаратных драйверов.
Microsoft обещает, что Windows 10 на ARM «будет иметь отличную поддержку периферийных устройств USB с использованием драйверов класса in-box». Это отлично подходит для современных USB-периферийных устройств. Но читайте между строками: Устройства, которые не поддерживаются встроенными драйверами, не будут работать. Утилиты принтера и другие утилиты драйверов оборудования также могут не работать. Это может быть проблемой для более старых периферийных устройств.
Главные особенности
Несмотря на то, что аббревиатура 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-архитектура основана на простых командах, в ней проще соединять такие модули между собой. Получается, что сила ARM — в простоте и гибкости.
Текст:
Михаил Полянин
Редактура:
Максим Ильяхов
Художник:
Даня Берковский
Корректор:
Ирина Михеева
Вёрстка:
Мария Дронова
Соцсети:
Олег Вешкурцев
Двенадцать инженеров и паб
В свое время Герман Хаузер также создал компанию Cambridge Processor Unit (CPU). Робин Сэксби (Robin Saxby) из Motorola поставлял чипы Герману для CPU, и у них уже тогда наладились хорошие отношения. После собеседования Робин был приглашен на должность генерального директора, но прежде чем согласиться, он попросил организовать ему встречу с «командой двенадцати». Робин вспоминает: «Следовало принять ключевое решение: смогу ли я расширить команду, или же не создавать дополнительных затрат, нанимая кого-нибудь со стороны. После этой встречи я выбрал последнее». Члены команды вспоминают, что Робин хотел встретиться с ними на нейтральной территории, поэтому они выбрали паб неподалеку. Все пришли вовремя, но Робин пришел за 10 минут до назначенного времени. Робин был известен команде как «наемный убийца», который привел в порядок бизнес ES2, поэтому его приветствие «Вы опоздали на четыре минуты, еще одна минута – и я бы ушел» оставило незабываемое впечатление.
Сэр Робин Сэксби |
Регистры и набор команд
Регистры общего назначения — r0-r30, при этом обращаться можно к ним как к 64-битным (x0-x30) или как к 32-битным (w0-w30, доступ к младшим 32 битам).
Набор инструкций для Aarch64 называется A64. Ознакомиться с описанием инструкций можно тут. Базовые арифметические и некоторые другие команды на языке ассемблера остались прежними:
Теперь немного о различиях:
-
Регистр PC (Program counter, указатель на текущую выполняемую инструкцию) теперь не регистр общего назначения (раньше это был R15), следовательно, к нему нельзя обращаться обычными командами (, ), только через , и так далее.
-
Состояние программы теперь отображает не CPSR (этого регистра попросту нет), а регистры DAIF (содержит маску IRQ, FIQ и т.д., AIF — те самые биты A, I, F из CPSR), NZCV (биты negative, zero, carry, oVerflow — внезапно, те самые NZCV из CPSR) и System Control Register (SCTLR, для включения кэширования, MMU, endianness и так далее).
Вроде бы, этих команд достаточно, чтобы написать простенький загрузчик, который сможет передать управление в платформо-независимый код 🙂
Advanced SIMD
Есть существенные AdvSIMD отличия у старого NEON, как при работе с плавающей точкой, так и с векторными операциями (SIMD). Например, если раньше D0 состоял из S0 и S1, а Q0 — из D0 и D1, то теперь это не так: Q0 соответствует D0 и S0, для Q1 — D1 и S0 и так далее. При этом поддержка VFP/SIMD обязательна, по соглашению о вызовах теперь нет никакой программной передачи параметров (то, что раньше называлось «soft float ABI», в GCC — флаг ), так что придётся реализовывать аппаратную поддержку плавающей точки.
Было 16 регистров по 128 бит:
Стало 32 регистра по 128 бит:
Подробнее про NEON можно почитать в этой статье, перечень доступных команд для Aarch64 можно найти тут.
Базовые операции с регистрами с плавающей точкой:
Базовые операции SIMD:
INOI
INOI – еще одно порождение стратегии импортозамещения. Компания была основана в 2021 году с ясной целью – начать производить отечественные смартфоны для корпоративного сегмента, но на этот раз с адекватной ценой.
Бренд INOI успел здорово «попиариться» – и немалую роль здесь сыграла «Почта России», которая присудила российскому производителю победу в конкурсе на закупку смартфонов для своих сотрудников. Вот так разом INOI продала 15 тыс. единиц смартфонов марки R7.
15001-м пользователем стал Дмитрий Медведев, которому R7 презентовали на выставке «Импортозамещение» в 2021 году.
Правда, R7 так и остался единственным аппаратом фирмы на Sailfish OS RUS – ввиду низкого спроса на смартфон производитель, по его собственным словам, предпочел использовать «более распространенные решения».
К 2021 году у бренда вышло внушительное количество устройств, а некоторые так и вовсе предлагали уникальные возможности. Например, INOI kPhone 4G – первый и единственный в России смартфон для детей. Сегодня компания продолжает выпускать интересные девайсы, которые привлекают не только доступным ценником.
Inoi 7 2020
Новинка от компании Inoi – это недорогой смартфон с красивой внешностью и экраном-каплей. Аппарат получил дисплей 6,22 дюйма с разрешением HD+, чипсет SC9832E, 2/16 ГБ памяти. Питает девайс аккумулятор на 3000 мАч. Основная камера – 8+0,3 МП, фронтальная / 5 МП. Среди приятных особенностей – разблокировка по лицу, одновременная работа двух сим, отдельный слот для MicroSD и чистый Android 9. Цена новинки – 5 000 рублей.
Где купить русские смартфоны INOI?
Qualcomm Snapdragon 410, 610, 615, 808 и 810
Вслед за Apple свои 64-битные ARM-процессоры поспешила анонсировать компания Qualcomm, причем сразу пять моделей. Правда, пока ни одна из них в коммерческих смартфонах или планшетах не применяется. Скорее всего, расцвет эпохи 64-битных Android-устройств состоится в начале 2020 года на выставках CES и MWC.
Однокристальная система Snapdragon 410 (MSM8916) – младшая из анонсированной 64-битной линейки Qualcomm. Она включает в себя четыре ядра Cortex-A53 с частотой от 1,2 ГГц, графический ускоритель Adreno 306 и, что интереснее всего, навигационный модуль с поддержкой спутниковых сетей GPS, ГЛОНАСС и даже китайской Beidou. Применять Snapdragon 410 планируют в недорогих смартфонах на базе Android, Windows Phone и Firefox OS.
Те же четыре ядра Cortex-A53, что у 410-того, содержит чип Snapdragon 610 (MSM8936), вот только графика у него улучшенная Adreno 405. Тогда как Snapdragon 615 (MSM8939) схож с 610-тым графикой, но процессорных ядер Cortex-A53 у него вдвое больше – восемь Cortex-A53.
В отличие от 410, 610, 615 моделей, выполненных по 28-нм техпроцессу, чипы Snapdragon 808 (MSM8992) и 810 (MSM8994) будут производиться по передовым 20-нм технологическим нормам. Они оба строятся по схеме big.LITTLE: два (модель 808) или четыре (810) мощных ядра Cortex-A57 и четыре энергоэффективных Cortex-A53. Графика представлена Adreno 418 и Adreno 430 соответственно. Кроме того, старший Snapdragon 810 имеет встроенный контроллер оперативной памяти стандарта LPDDR4.
Но главный вопрос: когда именно компания Qualcomm представит собственную процессорную архитектуру на основе ARMv8, как это было со Scorpion и Krait (модифицированные ARMv7)?
Режимы исполнения и переключение между ними
Про режимы исполнения хорошо написано в Fundamentals of ARMv8-A, я здесь кратко перескажу суть этого документа.
В Aarch64 есть 4 уровня привилегий (Execution level, дальше сокращённо EL).
- EL3 — Secure Monitor (предполагается, что на этом уровне исполняется прошивка)
- EL2 — Гипервизор
- EL1 — ОС
- EL0 — Приложения
На 64-битной ОС можно выполнять и 32-битные, и 64-битные приложения; на 32-битной ОС можно выполнять только 32-битные приложения.
Переходы между EL совершаются либо при помощи исключений (системные вызовы, прерывания, ошибка доступа к памяти), либо при помощи команды возврата из исключения ().
Каждый EL имеет свои регистры SPSR, ELR, SP (т.е. это «banked registers»).
Многие системные регистры также разделены по EL — например, регистр контекста MMU — есть , , и на соответствующем EL нужно осуществлять доступ к своему регистру. Это же относится к регистрам состояния программы — DAIF, NZCV, SCTLR, SPSR, ELR…
«Рисковый» процессор
ARM представляет собой RISC-архитектуру. В ней используется сокращенный набор команд – RISC (reduced instruction set computer). Архитектура этого типа появилась в конце семидесятых, примерно тогда же, когда Intel предложила свою х86.
Один из первых чипов ARM производства компании Acorn
Экспериментируя с различными компиляторами и процессорами с микрокодной реализацией, инженеры заметили, что в некоторых случаях последовательности простых команд выполнялись быстрее, чем одна сложная операция. Было решено создать архитектуру, которая предполагала бы работу с ограниченным набором простейших инструкций, декодирование и выполнение которых занимало бы минимум времени.
Компьютер BBC Micro
Один из первых проектов RISC-процессоров был реализован группой студентов и преподавателей из Университета Беркли в 1981 году. Как раз в это время британская компания Acorn столкнулась с вызовом времени. Она выпускала весьма популярные на Туманном Альбионе образовательные компьютеры BBC Micro на базе процессора 6502. Но вскоре эти домашние ПК стали проигрывать более совершенным машинам. Acorn рисковала потерять рынок. Инженеры компании, познакомившись со студенческими работами по RISC-процессорам, решили, что справиться с созданием собственного чипа будет достаточно просто. В 1983 году стартовал проект Acorn RISC Machine, который позднее превратился в ARM. Через три года был выпущен первый процессор.
Платформа Qualcomm RB5 Robotics
В то время как комплект для разработки мобильного оборудования на базе Snapdragon 888 лучше всего подходил для мобильных приложений под управлением Android, платформа Qualcomm RB5 Robotics нацелена на робототехнику с поддержкой 5G и искусственного интеллекта.
Плата оснащена восьмиядерным процессором Qualcomm QRB5165 Kryo 858 (Cortex-A77) с частотой до 2,84 ГГц, 16 ГБ оперативной памяти LPDDR5, 128 ГБ памяти UFS3.0, 15 TOPS вычислительной мощности ИИ, поддерживает камеры глубины 3D и предлагает множество расширений ввода/вывода.
Платформа может работать под управлением Linux, Ubuntu и операционной системы роботов (ROS) 2.0 и поддерживает API OpenCL и OpenGL ES, а также OpenCV для приложений компьютерного зрения.
«Базовый комплект» с материнской платой, QRB5165 SoM, блоком питания и USB-кабелем , также есть «комплект Vision Kit» с датчиками слежения и камерой за 695 долларов.
Jetson AGX Xavier для искусственного интеллекта и робототехники
У NVIDIA есть ряд комплектов разработчика Jetson, включая Jetson Nano, TX2, Xavier NX, но комплект разработчика Jetson AGX Xavier является самым мощным из всех с 8-ядерным процессором ARM v8.2, 512-ядерным графическим процессором Volta и ускорителем искусственного интеллекта, обеспечивающим вычислительную мощность до 32TOPS для рабочих нагрузок ИИ. В комплект также входят 32 ГБ оперативной памяти, 32 ГБ флэш-памяти eMMC с возможностью расширения с помощью карты UFS, видеоинтерфейс HDMI 2.0 и MIPI DSI, до 16 двухканальных интерфейсов камеры CSI и многое другое.
комплект для разработки поддерживает NVIDIA JetPack, DeepStream SDK на базе Ubuntu, а также программные библиотеки CUDA, cuDNN и TensorRT и нацелен на проекты робототехники с мощными требованиями к обработке ИИ, такие как автономные транспортные средства.
Комплект разработчика NVIDIA Jetson AGX Xavier можно приобрести на Amazon за 699 долларов.
Итоги
Много слов было написано, а потому стоит тезисно закрепить всё вышесказанное:
- Apple M1 потребляет меньше энергии за счёт особенностей архитектуры ARM, двум вычислительным блокам и компоновке.
- Может выполнять те же задачи, что и чипы Intel, благодаря алгоритмам упрощения инструкций.
- При пиковом и минимальном энергопотреблении способен выдавать больше производительности, чем x86-процессор.
- Из-за меньшего энергопотребления и тепловыделения чипы ARM не требует обязательного использования активного охлаждения, что позволяет делать ноутбуки бесшумными.
- Также это позволяет делать ультрабуки мощными и автономными.
- Для повышения и понижения производительности в ARM-процессорах необязательно изменять частоту.
- Возможность делать SoC-платформы вместительнее, за счёт уменьшения техпроцесса без потерь в производительности.