Процессоры ARMv8: в чем преимущества 64-битной архитектуры?
В 2011 году компания ARM Limited анонсировала новое семейство процессоров под названием ARMv8. А в 2013 году компания Apple выпустила первый ARMv8-процессор – однокристальную систему А7, которая применяется в iPhone 5S, iPad Air и iPad mini Retina. Архитектура ARMv8 получила 64-битный набор команд, но это далеко не единственное её преимущество над предшественницей ARMv7. Как устроены и какими бывают 64-битные процессоры ARMv8, читайте в статье.
Об истории архитектуры ARM, специфике деятельности компании ARM Limited и поколениях процессоров ARMv5, ARMv6 и ARMv7 вы можете прочитать в статье «Процессоры ARM: особенности архитектуры, отличия и перспективы». А про популярные модели ARMv7-чипов производства Qualcomm, NVIDIA, Samsung, Apple, MediaTek и др. подробно рассказано в статьях «Процессоры ARM: производители и модели» и «Процессоры ARM: обновление модельного ряда».
Нововведения ARMv8
Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила 64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4 Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch42). Другими важными нововведениями ARMv8 стали:
— 31 регистр общего назначения, каждый длиной 64 бита, тогда как SP и PC не являются регистрами общего назначения. Чем выше разрядность регистров, тем больше числа можно в них хранить. А чем больше количество регистров, тем больше данних в них помещается одновременно. Как результат, за одну инструкцию можно обработать больший объем данних и весь алгоритм выполнится быстрее;
— трансляция виртуальных адресов из 48-битного формата работает с помощью механизмов LPAE, позаимствованных у ARMv7;
— новый набор инструкций с фиксированной длинной. Инструкции имеют размер 32 бита и многие совпадают с командами AArch42, хотя условных инструкций стало меньше;
— увеличено с 16 до 32 количество 128-битных регистров (совместимы с 64-битными регистрами), доступных сопроцессорам SIMD NEON и VFP, а также добавлены новые криптографические инструкции AES и SHA. Набор инструкций SIMD NEON ускоряет работу приложений, отвечающих за обработку медиаданных и сигналов. В свою очередь VFP отвечает за малоэнергозатратные вычисления над числами с плавающей запятой;
— поддержка вычислений над числами с плавающей запятой двойной точности и стандарта IEEE 754, который является общепринятым форматом представления чисел с плавающей запятой, используемый в программных реализациях арифметических действий.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что находится примерно по середине между нынешними Cortex-A7 (1,9 DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент, ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).
Помимо лицензирования референсных процессорных ядер компания ARM Limited продает расширенные лицензии, позволяющие чипмейкерам по своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть, к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает производителям процессоров создавать собственные решения на базе ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.
Apple A7
Первым и пока единственным 64-битным ARM-процессором, который уже применяется в смартфонах и планшетах, является Apple A7. Построен он на фирменной архитектуре Apple Cyclone, совместимой с ARMv8. Это вторая разработанная внутри компании процессорная архитектура; первой же была Swift (чипы A6 и A6X, семейство ARMv7).
Процессорных ядер у однокристальной системы A7 только два (частота до 1,4 ГГц), но присутствует графический ускоритель PowerVR G6430 с четырьмя кластерами ядер. Быстродействие чипа A7 в процессорозависимых задачах выросло примерно в полтора раза по сравнению с А6, тогда как в различных графических тестах прирост составляет от двух до трех раз.
А вот теоретическую возможность работать с большим объемом оперативной памяти благодаря 64-битной архитектуре процессора A7 устройства под управлением iOS пока не ощущают. У iPhone 5s, iPad Air и iPad mini Retina всего лишь 1 Гбайт оперативки; и вряд ли в новом поколении мобильных устройств Apple объем ОЗУ вырастит больше чем вдвое.
Qualcomm Snapdragon 410, 610, 615, 808 и 810
Вслед за Apple свои 64-битные ARM-процессоры поспешила анонсировать компания Qualcomm, причем сразу пять моделей. Правда, пока ни одна из них в коммерческих смартфонах или планшетах не применяется. Скорее всего, расцвет эпохи 64-битных Android-устройств состоится в начале 2015 года на выставках 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)?
MediaTek MT6732, MT6752, MT6795
Не могла долго оставаться в стороне 64-битной гонки и компания MediaTek, всего за несколько лет превратившаяся из мелкого производителя процессоров для китайских клонов iPhone в одного из крупнейших в мире чипмейкеров, пусть и безфабричного. Впрочем, Apple и Qualcomm собственных производственных линий по «штамповке» полупроводников тоже не имеют.
Однокристальные системы MediaTek MT6732 и MT6752 должны составить конкуренцию чипам Snapdragon 610 и 615. У них четыре и восемь процессорных ядер Cortex-A53 (частота 1,5 и 2 ГГц соответственно) и одинаковая графика Mali-T760 (разработка ARM Limited). Старший же чип MT6795 стал ответом Snapdragon 810: архитектура big.LITTLE, по четыре ядра Cortex-A57 и A53 с частотой 2,2 ГГц, а также графический ускоритель PowerVR G6200.
NVIDIA Tegra K1 (Project Denver)
Компания NVIDIA решила перевести на 64-битную процессорную архитектуру свой уже существующий чип Tegra K1. Графическая составляющая у него и раньше была едва ли не лучшей среди конкурентов – GK20A с 192 ядрами Kepler, производительностью 365 GFLOPS и поддержкой ПК-стандартов графики DirectX 11.2 и OpenGL 4.4 (а не их мобильных аналогов).
Вместо же четырех 32-битных ядер Cortex-A15 (плюс пятое энергоэффективное ядро) обновленная однокристальная система Tegra K1 получит два ARMv8-совместимых ядра фирменной архитектуры NVIDIA Project Denver. Тактовая частота процессора вырастет до 2,5 ГГц, увеличится и объем кеша. Интересный факт: графика Tegra K1 примерно в пятьдесят раз мощнее Tegra 2.
Выводы
За один такт процессоры архитектуры ARMv8 способны обработать значительно больше данных. Это повышает как общую производительность процессора, так и производительность на ватт. Учитывая ограничения технологических норм (максимально допустимую тактовую частоту), переход на ARMv8 – это единственный возможный способ нарастить быстродействие мобильных процессоров, не выходя за разумные рамки энергопотребления и нагрева.
Естественно, пользу от архитектуры ARMv8 получат только те приложения для iOS и Android, которые способны задействовать все ресурсы новых процессоров. Оптимизация программ под новую архитектуру может быть как ручной, так и автоматической, на уровне компилятора.
Первое же Android-устройство с 64-битным ARM-процессором и 4 Гбайт ОЗУ – фаблет Samsung Galaxy Note 4 (чип Exynos 5433: по четыре ядра Cortex-A57 и A53) – представят уже 3 сентября. А вторым, возможно, станет планшетный компьютер HTC серии Google Nexus c процессором Tegra K1 Denver.
в чем преимущества 64-битной архитектуры?
В 2011 году компания ARM Limited анонсировала новое семейство процессоров под названием ARMv8. А в 2013 году компания Apple выпустила первый ARMv8-процессор – однокристальную систему А7, которая применяется в iPhone 5S, iPad Air и iPad mini Retina. Архитектура ARMv8 получила 64-битный набор команд, но это далеко не единственное её преимущество над предшественницей ARMv7. Как устроены и какими бывают 64-битные процессоры ARMv8, читайте в статье.
Об истории архитектуры ARM, специфике деятельности компании ARM Limited и поколениях процессоров ARMv5, ARMv6 и ARMv7 вы можете прочитать в статье «Процессоры ARM: особенности архитектуры, отличия и перспективы». А про популярные модели ARMv7-чипов производства Qualcomm, NVIDIA, Samsung, Apple, MediaTek и др. подробно рассказано в статьях «Процессоры ARM: производители и модели» и «Процессоры ARM: обновление модельного ряда».
Нововведения ARMv8
Обновленную архитектуру процессоров семейства ARMv8 окрестили именем AArch64. Она получила 64-битный набор инструкций и возможность работать с большим объемом оперативной памяти (4 Гбайт и больше). Само собой, предусмотрена совместимость с 32-битными приложениями (AArch42). Другими важными нововведениями ARMv8 стали:
— 31 регистр общего назначения, каждый длиной 64 бита, тогда как SP и PC не являются регистрами общего назначения. Чем выше разрядность регистров, тем больше числа можно в них хранить. А чем больше количество регистров, тем больше данних в них помещается одновременно. Как результат, за одну инструкцию можно обработать больший объем данних и весь алгоритм выполнится быстрее; — трансляция виртуальных адресов из 48-битного формата работает с помощью механизмов LPAE, позаимствованных у ARMv7; — новый набор инструкций с фиксированной длинной. Инструкции имеют размер 32 бита и многие совпадают с командами AArch42, хотя условных инструкций стало меньше; — увеличено с 16 до 32 количество 128-битных регистров (совместимы с 64-битными регистрами), доступных сопроцессорам SIMD NEON и VFP, а также добавлены новые криптографические инструкции AES и SHA. Набор инструкций SIMD NEON ускоряет работу приложений, отвечающих за обработку медиаданных и сигналов. В свою очередь VFP отвечает за малоэнергозатратные вычисления над числами с плавающей запятой; — поддержка вычислений над числами с плавающей запятой двойной точности и стандарта IEEE 754, который является общепринятым форматом представления чисел с плавающей запятой, используемый в программных реализациях арифметических действий.
Что такое архитектура?
Процессор — это основной компонент любого вычислительного устройства, будь то смартфон или компьютер. От его производительности зависит то, насколько быстро будет работать устройство и сколько оно сможет работать от батареи. Если говорить просто, то архитектура процессора — это набор инструкций, которые могут использоваться при составлении программ и реализованы на аппаратном уровне с помощью определенных сочетаний транзисторов процессора. Именно они позволяют программам взаимодействовать с аппаратным обеспечением и определяют каким образом будут передаваться данные в память и считываться оттуда.
На данный момент существуют два типа архитектур: CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). Первая предполагает, что в процессоре будут реализованы инструкции на все случаи жизни, вторая, RISC — ставит перед разработчиками задачу создания процессора с набором минимально необходимых для работы команд. Инструкции RISC имеют меньший размер и более просты.
Референсные ядра ARM Limited
Первыми процессорными ядрами ARMv8, разработанными непосредственно компанией ARM Limited, стали Cortex-A53 и A57. Ядро A53 является среднеуровневым решением с производительностью 2,3 DMIPS/МГц, что находится примерно по середине между нынешними Cortex-A7 (1,9 DMIPS/МГц) и A9 (2,5 DMIPS/МГц). Тогда как A57 занимает верхний сегмент, ведь его быстродействие (4,1 DMIPS/МГц) превосходит показатели обеих 32-битных флагманов: Cortex-A15 (3,5 DMIPS/МГц) и А17 (4 DMIPS/МГц).
Помимо лицензирования референсных процессорных ядер компания ARM Limited продает расширенные лицензии, позволяющие чипмейкерам по своему усмотрению модифицировать архитектуру ARM. Такие лицензии есть, к примеру, у Apple, Qualcomm и NVIDIA. Поэтому ничто не мешает производителям процессоров создавать собственные решения на базе ARMv8, существенно отличающиеся от референсных Cortex-A53 и A57.
Программное обеспечение
Проводить сравнение по этому параметру довольно трудно, поскольку оба бренда очень популярны в своих кругах. Устройства, которые основываются на процессорах arm-архитектуры, прекрасно работают с мобильными операционными системами (Android и прочее).
Машины под управлением процессоров от Intel способны работать с платформами наподобие Windows и Linux. К тому же оба семейства микропроцессоров дружат с приложениями, написанными на языке Java.
Разбирая различия архитектур, можно однозначно сказать одно – процессоры ARM главным образом управляют энергопотреблением мобильных устройств. Задача же настольных решений большего всего заключается в обеспечении высокой производительности.
Apple A7
Первым и пока единственным 64-битным ARM-процессором, который уже применяется в смартфонах и планшетах, является Apple A7. Построен он на фирменной архитектуре Apple Cyclone, совместимой с ARMv8. Это вторая разработанная внутри компании процессорная архитектура; первой же была Swift (чипы A6 и A6X, семейство ARMv7).
Процессорных ядер у однокристальной системы A7 только два (частота до 1,4 ГГц), но присутствует графический ускоритель PowerVR G6430 с четырьмя кластерами ядер. Быстродействие чипа A7 в процессорозависимых задачах выросло примерно в полтора раза по сравнению с А6, тогда как в различных графических тестах прирост составляет от двух до трех раз.
А вот теоретическую возможность работать с большим объемом оперативной памяти благодаря 64-битной архитектуре процессора A7 устройства под управлением iOS пока не ощущают. У iPhone 5s, iPad Air и iPad mini Retina всего лишь 1 Гбайт оперативки; и вряд ли в новом поколении мобильных устройств Apple объем ОЗУ вырастит больше чем вдвое.
Ядра Cortex
ARM разрабатывает несколько семейств ядер, которые используются для различных задач. К примеру, процессоры, основанные на Cortex-Mx и Cortex-Rx (где “х” — цифра или число, обозначающее точный номер ядра) используются во встраиваемых системах и даже бытовых устройствах, к примеру, роутерах или принтерах.
Cortex
Подробно на них мы останавливаться не будем, ведь нас, в первую очередь, интересует семейство Cortex-Ax — чипы с такими ядрами используются в наиболее производительных устройствах, в том числе смартфонах, планшетах и игровых консолях. ARM постоянно работает над новыми ядрами из линейки Cortex-Ax, но на момент написания этой статьи в смартфонах используются следующие из них:
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)?
www.MobiMS.ru
ARM Процессоры, характеристики ARM-процессоров.
Cердце любого девайса, работающего под управлением Google Android OS – процессор, построенный на архитектуре ARM.
ARM – это как обозначение типа архитектуры процессора (Advanced RISC Machine), так и название компании-холдинга, которая занимается разработкой 32-битных процессоров на базе RISC-топологии. Заметьте, компания не занимается производством как таковым. Она лишь разрабатывает сами процессоры, а доход имеет с продажи лицензий на изготовление процессоров другим компаниям. Вот основной список лицензиатов: Alcatel-Lucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, DEC, LG, Marvell Technology Group, Microsoft, NEC, Nintendo, Nvidia, Sony, Oki, ON Semiconductor, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha и ZiiLABS (Creative).
То есть, будь то процессор Texas Instruments OMAP или NVIDIA Tega 2, основа его – разработка компании ARM. Но это не говорит о том, что процессоры одинаковые. Семейства, да, могут быть одинаковые. Но вот сама реализации чипа целиком, где помимо самого процессора находится еще и куча всего, полностью зависит от компании-производителя. Ведь сердце практически любого смартфона или планшетного ПК – SoC (System On Chip), что переводится, как «система на чипе». Помимо самого процессора как такового, на этом же чипе (одна микросхема) может быть реализовано практически всё, включая графический процессор, модуль GPS, модули связи, контроллеры дисплея и разнообразных портов и т.д. Мало того, что сама топология RISC (Reduced Instruction Set Computer – “компьютер с уменьшенным набором команд”) подразумевает гораздо более низкое энергопотребление, чем х86 (то, что мы используем в обычных компьютерах), как минимум за счет того, что кристаллы процессоров содержат гораздо меньше транзисторов, потребителей энергии, так еще и сочетание всей нужной периферии на одном кристалле делает энергоэффективность всей системы еще лучше. Плюс ко всему мы, потребители, получаем и еще один бонус – низкая цена устройства. Естественно, это также позволяет делать девайсы очень компактными.
В чем же разница ARM архитектуры и x86? В корне. ARM подразумевает выполнение только целочисленных вычислений, в то время, как x86 может выполнять еще и вычисления с «плавающей запятой». Набор и длинна команд у x86 на порядки больше. В каких-то операциях с данными x86 будет гораздо быстрее ARM, а в каких-то – наоборот. Вы теперь знаете, почему на устройствах с процессором ARM невозможно поставить Windows, к примеру: ARM не поддерживает ту гору процессорных команд (инструкций), что знает и умеет x86, которые в большинстве своём не нужны на мобильных устройствах. Но за счет этого ARM архитектура выигрывает во многом другом. И в лучшей поддержке мультиядерности, многопотоковости — меньше размер и количество команд, а значит проще распределить; и в энергоэффективности — та же частота процессора, но операций выполняется больше, а сам процессор имеет гораздо меньшее потребление энергии.
Надо сказать, что ARM процессоры используются далеко не только в планшетах и смартфонах на базе ОС Гугл Андроид, но практически во всех любых других мобильных устройствах. Даже в любом простом телефоне сердце – процессор на базе ARM, только специализированный.
Характеристики ARM-процессоров:
VIA 8505
Поддержка рабочих частот 300 — 600 MHz
Устанавливается на самые бюджетные устройства. Производительность достаточна для работы в режиме проигрывания музыки, чтения книг, неспешного браузинга и воспроизведения видео с небольшим разрешением. Поддержка ОС Android 1.6.
VIA 8650
Поддержка рабочих частот 600 — 800 MHz
Бюджетное решение, производительности которого достаточно для работы типовых приложений и воспроизведения видео с разрешением до 720p. Поддержка Adobe Flash Player 10.3, проигрывает данный фотрмат с небольшим FPS. Поддержка ОС Android 2.2, проигрывает ролики Youtube.
Rockchip 2808
Поддержка рабочих частот 600 — 800 MHz
Более производительная платформа, по сравнению с решением от VIA обеспечивает приемлемую скорость работы интерфейса и браузинга. Устройства на базе Rockchip 2808 способны проигрывать неконвертированное видео в режиме реального времени с разрешением вплоть до HD 720p, битрейт до 2.5Mbit/s. Поддержка ОС Android 1.6, проигрывает ролики Youtube.
Rockchip 2818
Поддержка рабочих частот 600 — 800 MHz
Обновленная версия чипа 2808, обладает более быстрым видеоядром, и достаточной для комфортного запуска большинства приложений производительностью. Улучшена аппаратная поддержка воспроизведения видео, в том числе, реализована поддержка видеоконтента форматов VC-1 и H.264 с расширением до 720p, а также роликов в формате MKV. Экономное энергопотребление, высокие показатели работы в спяще режиме. Поддержка ОС Android 2.2, проигрывает ролики Youtube.
Telechips 8902
Поддержка рабочих частот 600 — 800 MHz
Более высокая производительность по сравнению с Rockchip 2818. Модуль аппаратного декодирования видео позволяет проигрывать видеоролики в формате Full HD, в том числе в формате MKV, с разрешением до 1080p, битрейт до 50Mbit/s, проигрывает ролики Youtube.
Qualcomm MSM7227
Рабочая частота 600 MHz
Недорогое и качественное решение от изобретателя технологии CDMA. Производительности процессора досточно для типовых приложений и просмотра видео c разрешением до 720p, проигрывает ролики Youtube.
Zenithink ZT-180
Поддержка рабочих частот 600 — 1000 MHz
Бестселлер 2010г. Обеспечивает производительность достаточную для запуска типовых приложений и просмотра видео c разрешением до 720p. Поддержка ОС Android 2.1 — 2.2, проигрывает ролики Youtube.
Marvell NS166
Поддержка рабочих частот 800 — 1000 MHz
Недорогое качественное решение. Хорошо показывает себя в работе с типовыми приложениями, воспроизводит мультимедиа контент высокого разрешения, но плохо ведет себя при работе с графикой. Поддержка ОС Android 2.2, проигрывает ролики Youtube.
Freescale MX515
Поддержка рабочих частот 600 — 1200 MHz
Производительности с лихвой хватает для типовых приложений, просмотра видео c разрешением до 720p, а также запуска 3D игр с нетребовательной графикой. Хорошие показатели автономной работы. Поддержка ОС Android 2.2 — 2.3, проигрывает ролики Youtube.
Infotm X220
Поддержка рабочих частот 800 — 1000 MHz
Бестселлер 2011 г. используется в планшетах Flytouch Производительности с лихвой хватает для типовых приложений, просмотра видео c разрешением до 720p. Поддержка Adobe Flash Player и Youtube. хорошие показатели автономной работы. Поддержка ОС Android 2.2.
Samsung S5PV210
Поддержка рабочих частот 800 — 1000 MHz
Стабильное производительное решение. По производительности обходит вычислительное ядро Samsung Galaxy S. Позволяет запускать типовые приложения, а также просматривать HD видео и запускать 3D-игры. Поддержка Adobe Flash Player и Youtube, ОС Android 2.2.
Samsung S5PC110
Поддержка рабочих частот 600 — 1000 MHz
Качественое и производительное решение. Используется в iphone 3GS и Samsung Galaxy Tab. Позволяет запускать типовые приложения, а также просматривать HD видео и запускать 3D-игры, проигрывает ролики Youtube.
Ingenic JZ4770 Xburst
Поддержка рабочих частот 1000 MHz.
Процессор построен на базе архитектуры MIPS. Объединен с графическим ядром GC860. Позволяет воспроизводить видео в разрешении 1080p через интерфейс HDMI. Преимуществом процессора является сравнительно низкое энергопотребление. Однако, при этом архитектура MIPS не совместима с архитектурой ARM, в результате чего на апаратах с данным вычислительным ядром может не работать значительная часть приложений, оптимизированных под ARM. Работает на аппаратах с ОС Android 4.0.
Telechips 8803
Поддержка рабочих частот 800-1200 MHz
Решение на базе архитектуры Cortex A8. Отличается быстротой и оптимизированным энергопотреблением, воспроизводит тяжелые форматы мультимедиа, такие как видео с разрешением до 1080p.
Бэнчмарки показывают более высокую вычислительную производительность по сравнению с многими популярными устройствами на базе Samsung S5PV210, Qualcomm, при этом уступает по возможностям обработки 3D-графики. Поддержка Adobe Flash Player и Youtube, ОС Android 2.2 — 2.3.
AMLogic8726-M
Поддержка рабочих частот 800-1200 MHz
Базируется на ядре Cortex-A9, с интегрированным графическим видеоускорителем Mali400, который поддерживает 3D-игры воспроизведение видео с разрешением 1080p. Поддерживает 2D-векторную графику при помощи OpenVG 1.1 и 3D-графику – OpenGL ES 1.1 и 2.0. обладает высокой производительностью в сравнении с аналогичными решениями.
Поддержка Adobe Flash Player и Youtube. Android 2.2-2.3.
Boxchip AllWinner A13
Поддержка рабочих частот до 1000 MHz
Упрощенная версия процессора Allwinner A10. Отличается уменьшенной частотой иотсутствием поддержки Bluetooth и HDMI. Преимущественно используется в бюджетных устройствах, при этом обеспечивает поддержку 3D-игр благодаря встроенному видеоядру Mali-400. Проигрывает все популярные аудио и видео форматы. Поддерживает Adobe Flash Player и проигрывает онлайн видео. Работает на аппаратах с ОС Android 4.0.
Boxchip AllWinner A10
Поддержка рабочих частот 1000-1500 MHz
Один из самых популярных процессоров использующихся в планшетных компьютерах 2012г. выпуска. Преимущественно используется в бюджетных устройствах, при этом обеспечивает хорошую производительность и поддержку 3D-игр благодаря встроенному видеоядру Mali-400. Обеспечивает декодирование видео Super HD 2160р. Проигрывает все популярные аудио и видео форматы. Поддерживает Adobe Flash Player и проигрывает онлайн видео. Работает на аппаратах с ОС Android 4.0.
Rockchip 2918
Поддержка рабочих частот 800-1200 MHz
Качественное решение на базе архитектуры Cortex A8. Считается одной из самых стабильных платформ для ОС Android, обладает возможностью проигрывания HD видео, обеспечивает поддержку 3D-игр. Оснащен видеоускорителем Vivante GC800.
Высокие показатели автономной работы в рабочем и спящем режимах. Поддержка Adobe Flash Player и Youtube. Android 2.3 — 4.0.
VIA WonderMedia 8850
Поддержка рабочих частот 800-1500 MHz
Производителоное и недорогое решение на базе процессора Cortex A9. Процессор заметно быстроее и производительнее популярного AllWinner A10. Gозволяет просматривать любое видео без конвертации вплоть до HD2160 с выводом на TV через HDMI порт, а также играть в 3D игры. Оснащен видеоускорителем mali-400.
Высокие показатели автономной работы в рабочем и спящем режимах. Поддержка Adobe Flash Player и Youtube. Android 4.0.
MediaTek MT6575
Рабочая частота 1000 MHz
Платформа третьего поколения для Android-смартфонов. Включает процессор ARM Cortex A9, функционирующий на тактовой частоте 1 ГГц, модем с поддержкой сетей 3G/HSPA, а также модуль GPS+Глонасс. Видеоускоритель PowerVR SGX531 позволяет играть в современные 3D игры.
Высокие показатели автономной работы в рабочем и спящем режимах. Поддержка Adobe Flash Player и Youtube. Android 4.0.
NEC Renesas EV2
Поддержка рабочих частот 533-1200 MHz
Способен обрабатывать информацию высокой чёткости и 3D-графику при очень низком энергопотреблении. Оптимизирован для рынка портативных устройств, включая портативные мультимедиаплееры и мобильные планшеты. Основан на двухядерном процессоре Cortex™-A9 компании ARM и высокопроизводительном аудио/видео (A/V) процессоре. Обеспечивает декодирование видео H.264, MPEG-2, MPEG-4, VC-1 вплоть до разрешения Full-HD (1920×1080 пикселей). Интегрировано графическое 3D-ядро Mali-400, которое позволяет комфортно играть в 3D игры.
Поддержка Adobe Flash Player и Youtube. Android 2.2-2.3.
NVidia Tegra 2
Поддержка рабочих частот 1000 MHz
Двухядерный процессор на архитектуре ARM, широко использующийся в совремнных планшетных компьютерах. Обеспечивает призводительность высокого уровня, без проблем справляется с воспроизведением тяжелых форматов видео и 3D-игр. Поддержка Android 3.x, проигрывает ролики Youtube.
NVidia Tegra 3
Поддержка рабочих частот 1400 MHz
Процессор построенный на архитектуре Cortex-A9 имеет 4 процессорных ядра и 12 графических. По сведеньям NVidia, процессор обеспечивает в 5 раз больше производительность, чем его предшественник Tegra 2. Также имеет лучшую графическую составляющую, которая позволяет реализовывать сложные эффекты, такие как динамические тени и освещение. Позволяет проигрывать HD видео с качеством 1080p. Графическое ускорение позволяет играть в наиболее требовательные к аппаратуре игры.
Rockchip RK3066
Поддержка рабочих частот 1600 MHz
RK3066 – малопотребляющий, высокопроизводительный процессор для цифровых мультимедийных устройств. В RK3066 интегрировано два ядра ARM Cortex-A9 с раздельными NEON и FPU сопроцессорами. Множество мощных встроенных аппаратных решений обеспечивают оптимальную производительность для конечных приложений. RK3066 поддерживает декодирование полноформатного видео с разрешением 1080 пикселей со скоростью до 60 кадров в секунду, также поддерживается H.264/MVC/VP8 кодирование с разрешением 1080 пикселей со скоростью до 30 кадров в секунду, высококачественный JPEG кодер/декодер, специальный препроцессор и постпроцессор для обработки изображений.
MediaTek MTK6577
MT6577 — является двухядерным процессором. Архитектурой процессора выступает ARMv7 Cortex-A9 с частотой каждого ядра равной 1 Ghz. В роли GPU все так же выступает PowerVR SGX 531. Чипсет обладает поддержкой камеры с матрицей до 8 Мп, видео в формате 720p и воспроизведения FullHD. Данный процессор предназначен для бюджетного сегмента телефонов на базе Android 4 ICS. Цена таких телефонов не будет сильно отличаться от моделей на MTK6575. Хорошей новостью так же можно назвать совместимость с MT6575 — это облегчает китайцам работу т.к новый процессор можно ставить на платы, предназначенные для старого MT6575.
+3
0
789
Если Вы не смогли скачать файл по причине, что ссылка нерабочая, просто сообщите нам об этом в комментариях и мы это исправим!
MediaTek MT6732, MT6752, MT6795
Не могла долго оставаться в стороне 64-битной гонки и компания MediaTek, всего за несколько лет превратившаяся из мелкого производителя процессоров для китайских клонов iPhone в одного из крупнейших в мире чипмейкеров, пусть и безфабричного. Впрочем, Apple и Qualcomm собственных производственных линий по «штамповке» полупроводников тоже не имеют.
Однокристальные системы MediaTek MT6732 и MT6752 должны составить конкуренцию чипам Snapdragon 610 и 615. У них четыре и восемь процессорных ядер Cortex-A53 (частота 1,5 и 2 ГГц соответственно) и одинаковая графика Mali-T760 (разработка ARM Limited). Старший же чип MT6795 стал ответом Snapdragon 810: архитектура big.LITTLE, по четыре ядра Cortex-A57 и A53 с частотой 2,2 ГГц, а также графический ускоритель PowerVR G6200.
Небольшое путешествие назад в прошлое
Отправимся на воображаемой машине времени на несколько лет назад и попробуем разобраться, с чего же все начиналось. Можно с уверенностью сказать, что компания ARM – это, скорее, монополист в своей области. И это подтверждается тем, что подавляющее большинство смартфонов и прочих электронных цифровых устройств работают под управлением микропроцессоров, созданных по данной архитектуре.
В 1980 году была основана компания Acorn Computers, которая начала создавать персональные компьютеры. Поэтому ранее ARM была представлена как Acorn RISC Machines.
Год спустя на суд потребителей была представлена домашняя версия ПК BBC Micro с самой первой ARM-архитектурой процессора. Это был успех, тем не менее чип не справлялся с графическими задачами, а прочие варианты в лице процессоров Motorola 68000 и National Semiconductor 32016 тоже не годились для этого.
Тогда руководство компании задумалось над созданием своего микропроцессора. Инженеров заинтересовала новая процессорная архитектура, придуманная выпускниками местного университета. В ней как раз использовался сокращенный набор команд, или RISC. И после появления первого компьютера, который управлялся процессором Acorn Risc Machine, успех пришел довольно быстро – в 1990 году между британским брендом и Apple был заключен договор. Это положило началу разработки нового чипсета, что, в свою очередь, привело к образованию целой команды разработчиков, именуемой как Advanced RISC Machines, или ARM.
Начиная с 1998 года, компания сменила название на ARM Limited. И теперь специалисты не занимаются производством и реализацией ARM-архитектуры. Что это дало? На развитии компании это никоим образом не сказалось, хоть основным и единственным направлением компании стала разработка технологий, а также продажа лицензий сторонним фирмам, чтобы те могли пользоваться процессорной архитектурой. При этом некоторые компании приобретают права на готовые ядра, другие же по приобретенной лицензии оснащают процессоры своими ядрами.
Согласно некоторым данным заработок компании на каждом подобном решении составляет 0,067 $. Но эти сведения усредненные и устаревшие. Ежегодно количество ядер в чипсетах растет, соответственно и себестоимость современных процессоров превосходит старые образцы.
NVIDIA Tegra K1 (Project Denver)
Компания NVIDIA решила перевести на 64-битную процессорную архитектуру свой уже существующий чип Tegra K1. Графическая составляющая у него и раньше была едва ли не лучшей среди конкурентов – GK20A с 192 ядрами Kepler, производительностью 365 GFLOPS и поддержкой ПК-стандартов графики DirectX 11.2 и OpenGL 4.4 (а не их мобильных аналогов).
Вместо же четырех 32-битных ядер Cortex-A15 (плюс пятое энергоэффективное ядро) обновленная однокристальная система Tegra K1 получит два ARMv8-совместимых ядра фирменной архитектуры NVIDIA Project Denver. Тактовая частота процессора вырастет до 2,5 ГГц, увеличится и объем кеша. Интересный факт: графика Tegra K1 примерно в пятьдесят раз мощнее Tegra 2.
ARM предыдущих поколений
На мобильном рынке довольно распространены процессоры ARM11. Они построены на базе архитектуры ARMv6 и ее модификаций. Она характеризуется 8-9-стадийными конвейерами, поддержкой Jazelle, способствующей ускорению обработки Java-кода, потоковых инструкций SIMD, Thumb-2.
XScale, процессоры ARM10E, ARM9E основаны на архитектуре ARMv5 и ее модификациях. Максимальная длина конвейера составляет 6 стадий, Thumb, Jazelle DBX, Enhanced DSP. Чипы XScale имеют кэш второго уровня. Процессоры использовались в смартфонах середины нулевых, сегодня их можно найти в некоторых недорогих мобильниках.
Процессор DEC StrongARM SA-110
ARM9TDMI, ARM8, StrongARM – представители ARMv4, обладающей 3-5 стадийным конвейером, поддерживающей Thumb. ARMv4, например, можно было найти в первых классических iPod.
ARM6 и ARM7 относятся к ARMv3. В этой архитектуре впервые появился блок FPU, было реализована 32-битная адресация памяти, а не 26-битная, как в первых образцах архитектуры. Формально ARMv2 и ARMv1 были 32-битными чипами, но в действительности активно работали только с 26-битным адресным пространством. Кэш впервые появился в ARMv2.
Выводы
За один такт процессоры архитектуры ARMv8 способны обработать значительно больше данных. Это повышает как общую производительность процессора, так и производительность на ватт. Учитывая ограничения технологических норм (максимально допустимую тактовую частоту), переход на ARMv8 – это единственный возможный способ нарастить быстродействие мобильных процессоров, не выходя за разумные рамки энергопотребления и нагрева.
Естественно, пользу от архитектуры ARMv8 получат только те приложения для iOS и Android, которые способны задействовать все ресурсы новых процессоров. Оптимизация программ под новую архитектуру может быть как ручной, так и автоматической, на уровне компилятора. Первое же Android-устройство с 64-битным ARM-процессором и 4 Гбайт ОЗУ – фаблет Samsung Galaxy Note 4 (чип Exynos 5433: по четыре ядра Cortex-A57 и A53) – представят уже 3 сентября. А вторым, возможно, станет планшетный компьютер HTC серии Google Nexus c процессором Tegra K1 Denver.
Отличия ARM и x86
А теперь, когда мы рассмотрели историю развития этих архитектур и их принципиальные отличия, давайте сделаем подробное сравнение ARM и x86, по различным их характеристикам, чтобы определить что лучше и более точно понять в чем их разница.
Производство
Производство x86 vs arm отличается. Процессоры x86 производят только две компании Intel и AMD. Изначально эта была одна компания, но это совсем другая история. Право на выпуск таких процессоров есть только у этих компаний, а это значит, что и направлением развития инфраструктуры будут управлять только они.
ARM работает совсем по-другому. Компания, разрабатывающая ARM, не выпускает ничего. Они просто выдают разрешение на разработку процессоров этой архитектуры, а уже производители могут делать все, что им нужно, например, выпускать специфические чипы с нужными им модулями.
Количество инструкций
Это главные различия архитектуры arm и x86. Процессоры x86 развивались стремительно, как более мощные и производительные. Разработчики добавили большое количество инструкций процессора, причем здесь есть не просто базовый набор, а достаточно много команд, без которых можно было бы обойтись. Изначально это делалось чтобы уменьшить объем памяти занимаемый программами на диске. Также было разработано много вариантов защит и виртуализаций, оптимизаций и многое другое. Все это требует дополнительных транзисторов и энергии.
ARM более прост. Здесь намного меньше инструкций процессора, только те, которые нужны операционной системе и реально используются. Если сравнивать x86, то там используется только 30% от всех возможных инструкций. Их проще выучить, если вы решили писать программы вручную, а также для их реализации нужно меньше транзисторов.
Потребление энергии
Из предыдущего пункта выплывает еще один вывод. Чем больше транзисторов на плате, тем больше ее площадь и потребление энергии, правильно и обратное.
Процессоры x86 потребляют намного больше энергии, чем ARM. Но на потребление энергии также влияет размер самого транзистора. Например, процессор Intel i7 потребляет 47 Ватт, а любой процессор ARM для смартфонов — не более 3 Ватт. Раньше выпускались платы с размером одного элемента 80 нм, затем Intel добилась уменьшения до 22 нм, а в этом году ученые получили возможность создать плату с размером элемента 1 нанометр. Это очень сильно уменьшит энергопотребление без потерь производительности.
За последние годы потребление энергии процессорами x86 очень сильно уменьшилось, например, новые процессоры Intel Haswell могут работать дольше от батареи. Сейчас разница arm vs x86 постепенно стирается.
Тепловыделение
Количество транзисторов влияет еще на один параметр — это выделение тепла. Современные устройства не могут преобразовывать всю энергию в эффективное действие, часть ее рассеивается в виде тепла. КПД плат одинаковый, а значит чем меньше транзисторов и чем меньше их размер — тем меньше тепла будет выделять процессор. Тут уже не возникает вопрос ARM или x86 будет выделять меньше теплоты.
Производительность процессоров
ARM изначально не были заточены для максимальной производительности, это область преуспевания x86. Отчасти этому причина меньше количество транзисторов. Но в последнее время производительность ARM процессоров растет, и они уже могут полноценно использоваться в ноутбуках или на серверах.
У ARM готова новая процессорная архитектура с взрывным потенциалом роста производительности
| ПоделитьсяARM представила процессорную архитектуру ARMv9 с прицелом на безопасные вычисления и ускорение работы ИИ-приложений. Она должна обеспечить еще и 30-процентный прирост производительности процессоров, и на ее основе, считают в руководстве ARM, будет выпущено более 300 млрд чипов. Это больше, чем было произведено за все время с момента основания компании в 1990 г. Чем ответят Intel и AMD, пока неизвестно
Первая архитектура ARM за 10 лет
Компания ARM разработала новую процессорную архитектуру следующего поколения, получившую название ARMv9. Она появилась спустя почти 10 лет с момента выпуска ARMv8 (октябрь 2011 г.) и, по заверениям разработчиков, сохранила полную совместимость с ней.
К основным преимуществам своей новой архитектуры ARM относит ее ориентированность на безопасность и использование в составе технологий искусственного интеллекта (ИИ). «Поскольку мы смотрим в будущее, которое будет определять ИИ, мы обязаны заложить фундамент передовых вычислений для решения грядущих проблем. ARMv9 – это и есть решение, и оно будет в авангарде следующих 300 млрд чипов на базе ARM, обусловленных спросом на повсеместную специализированную, безопасную и мощную обработку данных, базирующуюся на экономике, свободе проектирования и доступности универсальных вычислений», – заявил гендиректор ARM Саймон Сегарс (Simon Segars).
В дополнение к этому ARMv9 может обеспечить значительный прирост скорости вычислений новых процессоров в сравнении с теми, что построены на ARMv8. В компании уверены, что в следующих двух поколениях ARM-процессоров производительность подскочит на 30%, в том числе и за счет улучшенной методологии проектирования ARM Total Compute.
ARM уверена, что на новой архитектуре выйдет больше процессоров, чем было произведено на первых восьми ревизиях в сумме
Сроки появления первых процессоров на базе ARMv9 в компании не уточняют.
Как ARM улучшит ИИ и безопасность
За ускорение работы алгоритмов искусственного интеллекта в ARMv9 отвечает второе поколение технологии Scalable Vector Extension (SVE), которую ARM разработала совместно с японской компанией Fujitsu. Она способна обеспечить расширенные возможности машинного обучения (machine learning) и цифровой обработки сигналов (digital signal processing), применяющиеся широком наборе приложений.
Технология SVE в настоящее время доказала свою эффективность. Ее первая ревизия используется прямо сейчас в японском суперкомпьютере Fugaku производства Fujitsu – он занимает первое место в рейтинге суперкомпьютеров Top500 за ноябрь 2020 г. (следующий будет опубликован в июне 2021г. ) и значительно отрывается от ближайшего преследователя. Его производительность превышает 442 ПФЛОПС, а у IBM Summit, занявшего второе место, она едва достигает 148,6 ПФЛОПС.
Обеспечение безопасности данных – это задача для новой архитектуры конфиденциальных вычислений в составе ARMv9 (Confidential Compute Architecture, CCA). Она позволяет защищать информацию и определенные части кода и от доступа к ним или их модификации во время использования путем выполнения вычислений с ними в специальной аппаратной защищенной среде.
Пример использования Realms
CCA позволяет проводить необходимые вычисления с использованием конфиденциальных в защищенных динамически создаваемых областях, которые сама ARM называет Realms.
История успеха ARM
Компания ARM была основана в 1990 г. как совместное предприятие компаний Apple, VLSI Technology и Acorn Computers – разработчика ARM-архитектуры как таковой. Название ARM расшифровывается как Advanced RISC Machines, но иногда встречается и расшифровка Acorn RISC Machines.
Acorn представила первую версию архитектуры ARM, получившую впоследствии индекс v1, в октябре 1983 г., а спустя еще три года, в 1986 г., свет увидела ARMv2. Компания ARM после своего основания представила в 1990 г. ARMv4.
Интернет вещей пришел в аккумуляторы: что от этого получит бизнес
ИнфраструктураВсе версии ARM-архитектуры, вплоть до ARMv7 включительно, были 32-битными. Переход на 64 бит состоялся с релизом ряда ревизий ARMv8.
ARM работает над своей архитектурой больше 20 лет
В период с 1997 по 2017 г. в мире было выпущено в общей сложности в пределах 120 млрд ARM-чипов, притом на протяжении этих 20 лет их количество постоянно увеличивалось. Так, если в 2004 г. их было произведено около 1,3 млрд, то в 2013 г. – уже 10 млрд, а в 2017 г. – 21,3 млрд.
За последние пять лет, с 2016 по 2020 гг. включительно, было отгружено 100 млрд ARM-процессоров. По прогнозам Саймона Сегарса, ARMv9 станет основой для еще 300 млрд чипов, но глава ARM не уточняет, в течение какого времени они будут произведены.
В сентябре 2020 г. стало известно о грядущем переходе британской ARM в собственность американской Nvidia. Стороны пришли к соглашению, и сумма сделки должна составить $40 млрд, но против нее выступили как бизнесмены, так и политики.
Еще в начале августа 2020 г., когда появились первые подробности о грядущем поглощении, свое мнение по этому вопросу высказал соучредитель ARM – британский бизнесмен
В октябре 2020 г. Хаузер отправил в правительство Британии письмо с просьбой запретить эту сделку. Он считает, что после нее Nvidia станет очередным американским ИТ-монополистом, и что передачу крупной технологической компании другой стране можно считать вопросом национальной безопасности.
Месяцем ранее, в середине сентября 2020 г. члены Unite, крупнейшего британского профсоюза, тоже возмутились продажей ARM американской Nvidia. Они считают, что это может привести к закрытию тысяч рабочих мест в стране. Их мнение разделяют крупные британские политики, в том числе
Архитектура Firmware систем на базе архитектуры ARMv8
В статье Сергея Темерханова и Игоря Починка описывается применение процессоров ARMv8 в серверных (и опционально во встраиваемых) системах с точки зрения микропрограммных модулей и компонентов.
С момента своего релиза в 2011 году процессорная архитектура ARMv8 получила достаточно широкое распространение на рынке мобильных устройств. По прогнозам главы компании ARM Limited, к 2020 году процессоры этого поколения займут до 25% мирового рынка. Вполне закономерно, что и программная составляющая сформирована и развивается, наследуя черты и общие принципы исторически сложившейся инфраструктуры.
Принципиально иная ситуация сложилась в серверном сегменте. На этом рынке уже продолжительное время доминируют серверы на базе x86, и ARMv8 только начинает проникновение на него, причём речь пока идёт только об определённых специфических нишах. Новизна этого рынка для ARM и тот факт, что большая часть принятых стандартов и спецификаций (в первую очередь ACPI и UEFI) до недавнего времени не были адаптированы для ARM-систем, накладывает свой отпечаток на развитие программной инфраструктуры.
Данная статья сфокусирована на рассмотрении особенностей серверных ARM-систем и процессов и не претендует на исчерпывающее описание. Авторы хотели бы обратить внимание также на том, что изложенные здесь данные могут достаточно быстро устареть, поскольку уже в обозримом будущем новые процессоры будут сопровождаться новыми техническими решениями, которые потребуют иного подхода к реализации программной инфраструктуры.
Прежде всего следует указать, что нынешние реализации микропрограммных средств для серверных систем на ARMv8 состоят из нескольких относительно независимых компонентов. Это даёт ряд преимуществ, например возможность использования одних и тех же компонентов в микропрограммных средствах как серверных, так и встраиваемых систем, а также относительную независимость вносимых изменений.
Итак, какие же модули и компоненты используются в рассматриваемых системах, и каковы их функции? Общая схема загрузки и взаимодействия модулей показана на рис. 1. Процесс начинается с инициализации оборудования таких подсистем, как оперативная память и межпроцессорные интерфейсы. В текущих реализациях она исполняется отдельным модулем в режиме EL3S сразу после включения питания. Таким образом, данный компонент системы обладает максимально возможными привилегиями. Он обычно не взаимодействует с ОС непосредственно.
Рис. 1. Процесс загрузки и общая схема взаимодействия микропрограммных модулей ARMv8
Далее управление передаётся следующему компоненту, чаще всего модулю ARM Trusted Firmware (ATF), исполняемому в том же режиме. Управление ATF может передаваться как непосредственно от загрузчика 0-го уровня, рассмотренного в предыдущем абзаце, так и опосредованно через специальный модуль UEFI, который реализует так называемую процедуру загрузки PEI (PreEFI Initialization). ATF состоит из нескольких модулей, получающих управление в разные моменты времени. Стартовый модуль BL1 выполняет инициализацию частей платформы, связанную с доверенным (secure) режимом работы процессора. Поскольку в системах на базе ARMv8 применяется аппаратное разделение доверенных и обычных ресурсов, включая оперативную память, то модуль BL1 создаёт такое окружение, в котором мог бы функционировать доверенный код. В частности, к этому типу инициализации относится настройка контроллеров памяти/кэша (чаще всего доверенные и обычные зоны размечаются путём программирования регистров в этих устройствах) и разметка накристалльных устройств (контроллеры энергонезависимой памяти). Такая разметка также вводит и фильтрацию DMA-транзакций на основе типа устройства (доверенный/недоверенный). При этом запись/чтение памяти возможны только в область/из области того же типа, что и устройство.
Реализация доверенного окружения может быть достаточно сложной, например включающей отдельную ОС. Однако описание подобных реализаций выходит за рамки данной статьи. Модуль BL1 настраивает таблицу преобразования адресов MMU, а также таблицу обработчиков исключений, самым важным элементом которой является обработчик исключения от инструкции вызова доверенного окружения (Secure Monitor Call, SMC). На данном этапе обработчик минимален и способен фактически только передавать управление загруженным в оперативную память образам. В процессе исполнения модуль BL1 загружает в ОЗУ следующую стадию, BL2, и передаёт управление на неё. Модуль BL2 работает с пониженными привилегиями, в режиме EL1S. Соответственно, передача управления этому модулю производится с помощью инструкции ERET.
Предназначение модуля BL2 — загрузка остальных микропрограммных модулей (частей BL3) и передача им управления. Пониженный уровень привилегий используется для того, чтобы не повредить код и данные EL3S, уже находящиеся в памяти. Управление этим частям передаётся путём вызова кода EL3S, размещённого на стадии BL1, с помощью инструкции SMC.
Третья стадия загрузки и инициализации ATF может состоять из трёх этапов, но довольно часто второй этап пропускается, так что на деле и их остаётся только два. Модуль BL3-1 представляет собой ту часть доверенного кода, которая доступна обычному ПО (ОС и т.д.) во время его исполнения. Ключевая часть этого модуля – функция обработки исключения, вызванного инструкцией SMC. В самом модуле располагаются функции реализации стандартных вызовов SMC: код, реализующий стандартизированный интерфейс PSCI (предназначен для управления всей платформой: включения/отключения процессорных ядер, питания всей платформы, перезагрузки и т. д.), а также отвечающий за вызовы, зависящие от производителя и конкретной реализации платформы (получение информации о платформе, управление некоторыми встроенными устройствами и т.п.).
Наличие модуля BL3-2, как мы уже отмечали выше, не является обязательным; его код (в случае наличия модуля) выполняется в режиме EL1S. Обычно он служит в качестве специализированного сервиса/монитора событий, происходящих во время работы платформы (прерывания от некоторых таймеров, устройств и т.п.).
BL3-3, по сути, модулем ATF не является. Это образ прошивки (firmware), исполняемой в незащищённом режиме. Запускается он обычно в режиме EL2 и представляет собой образ либо загрузчика наподобие широко известного U-Boot, либо окружения UEFI, стандартного для серверных систем.
Общая схема загрузки модулей ATF показана на рис. 2.
Рис. 2. Схема загрузки в оперативную память модулей ATF
На ряде серверных систем на базе ARMv8 применяется другая схема загрузки: ATF запускается во время фазы UEFI PEI, после чего происходит переход на фазу UEFI DXE.
UEFI для ARMv8 значительно отличается от такового для x86. Фазы PEI (Pre-EFI initialization) и DXE (Driver) используются и для x86, и для ARMv8. Однако на многих системах ARMv8 фаза PEI значительно сокращена и во время неё не выполняется никакой инициализации оборудования. Этот этап сводится к настройке таблиц трансляции MMU, настройке контроллера прерываний и таймера (согласно спецификации UEFI, единственным обрабатываемым прерыванием для этого окружения является прерывание от таймера), построению блоков конфигурационной информации (EFI Hand-off block, HOB) и запуску модуля DXE Core. На данном этапе платформозависимые модули UEFI достаточно широко используют специфические для платформы вызовы SMC, описанные ранее.
На этапе DXE выполняется основной объём работы UEFI. Прежде всего это развёртывание и запуск драйверов аппаратного обеспечения — как встроенных в кристалл блоков, так и внешних устройств, подключаемых по интерфейсам PCIe, USB, SATA и пр.
Следует отметить, что системы на базе ARMv8 демонстрируют довольно серьёзные отличия от подобных систем на основе архитектуры x86 в плане конфигурации, механизмов обнаружения устройств, и т.п. Так, для x86 основным механизмом обнаружения устройств является механизм обхода конфигурационного пространства PCI с назначением устройствам адресов памяти, которые они должны декодировать. В случае систем на базе ARMv8 встроенные блоки практически всегда имеют фиксированные адреса в пространстве памяти (пространство портов не используется, так как не является частью архитектуры) и в некоторых случаях не отображаются в конфигурационном
пространстве PCI. Для таких систем используется описание аппаратуры, составленное в виде так называемой Flattened Device Tree — древовидной базы данных, описывающей иерархию подключения аппаратных блоков, а также такие ресурсы, как области памяти, номера прерывания и т.п., связанные с этими блоками.
В более продвинутых системах блоки, входящие в состав SoC, поддерживают доступ через конфигурационное пространство PCI, и соответственно обладают контроллерами, реализующими доступ к этому пространству посредством механизма ECAM (Enhanced Configuration Access Mechanism). Поскольку адреса памяти у таких блоков всё равно фиксированные, поддержка обычного механизма конфигурирования устройств PCI не представляется целесообразной. Специально для систем с фиксированными адресами PCI-устройств было разработано расширение Enhanced Allocation, разрешающее этот конфликт. Уникальные свойства этого расширения достойны отдельной публикации, но вкратце оно может быть описано как расширение, состоящее из набора альтернативных регистров, в которых содержится информация об адресах памяти, номерах шин (для встроенных мостов PCI—PCI) и т.д.
UEFI неотделимо от другого метода передачи информации о конфигурации платформы — ACPI. В настоящее время мы наблюдаем поступательное развитие и доработку спецификаций ACPI в интересах более полной поддержки именно архитектуры ARMv8. По имеющейся информации, ACPI должна стать основным методом передачи базовой информации о платформе (прежде всего о числе и конфигурации процессорных ядер, контроллеров PCI/PCIe) и управления ею для ARMv8. Некоторые из планируемых к выпуску на ARMv8 ОС поддерживают исключительно ACPI.
Итак, на этапе DXE выполняется обнаружение устройств (в тех системах, с которыми приходилось встречаться авторам, для этого используется механизм PCI ECAM), их инициализация и регистрация в UEFI, а также подготовка к запуску ОС. Последняя заключается в подготовке карты памяти системы и конфигурационной информации, то есть в загрузке, генерации и публикации таблиц ACPI, внесении в загруженные таблицы изменений, отражающих текущую конфигурацию платформы, внесении подобных же изменений в FDT, проверке и генерации контрольных сумм. Ряд модулей, загруженных на этом этапе, реализует так называемые UEFI Runtime Services — функции, доступные для вызова из ОС во время её исполнения.
По завершении этого этапа начинается этап выбора устройства для загрузки (Boot Device Selection, BDS). Обычно на этой стадии используется отдельный модуль, обрабатывающий значения переменных BootOrder, BootNext и т.д. Часто такой модуль реализует (псевдо)графический интерфейс. На этом этапе можно заметить большое сходство с системами на базе x86: используются те же самые методы загрузки – PXE, iSCSI, блочные устройства (такие как SATA/SAS/USB диски, SSD, NVME устройства) и т.п.
Отдельно хотелось бы обратить внимание на драйверы внешних устройств (обычно это устройства PCIe) для ARMv8 UEFI. Они могут быть реализованы как в виде модулей, расположенных на устройствах хранения (с файловой системой FAT32), так и располагаться непосредственно на самом устройстве (Option ROM). Добавление в список поддерживаемых архитектур ARMv8 в некоторых случаях вызывает проблемы для производителей. Простой перекомпиляции исходного кода для ARMv8 не всегда достаточно, так как ряд таких модулей не рассчитан на работу в полном 64-битном адресном пространстве. Также некоторые сложности порой вызывает тот факт, что на системах ARMv8 широко используется трансляция шинных адресов PCI в процессорные и наоборот. Это связано с тем, что при разработке решено было отказаться от унаследованных «окон», располагающихся в пределах младших 32 бит. В плане расширения поддержки могли бы помочь драйверы, скомпилированные в байт-код EBC, но на момент написания этой статьи интерпретатор EBC для ARMv8 находился на ранних стадиях разработки.
Передача управления загруженному в память модулю (загрузчик или непосредственно ядро ОС) выполняется в соответствии со спецификацией UEFI: уникальный указатель в регистре X0, указатель на системную таблицу в X1, и адрес возврата в X30 (LR).
Ядро ОС выполняет некоторые подготовительные процедуры, используя сервисы UEFI, затем устанавливает собственные таблицы трансляции и вызывает метод UEFI SetVirtualAddressMap(). Необходимость этих процедур обусловлена тем обстоятельством, что код UEFI выполняется в том же адресном пространстве, что и ОС, а также необходимостью отключения прерываний таймера. Следует отметить, что в случае использования архитектуры ARMv8 для ОС Linux, есть один нюанс: основной код ядра работает в режиме EL1, тогда как в режиме EL2 вместе с сервисами UEFI выполняется только часть кода гипервизора KVM. После этого ядру из сервисов UEFI становятся доступны только так называемые Runtime Services – подмножество всех сервисов UEFI. Ядро Linux на ARMv8 широко использует интерфейс PSCI (при его наличии), реализуемый одним из модулей ATF, как было указано ранее. Это особенно характерно для многоядерных систем. Сам интерфейс и процесс инициализации процессорных ядер можно кратко описать как вызов SMC с номеров функции PSCI и точкой входа в функцию инициализации в качестве одного из параметров. Собственно, вызовы сервисов UEFI и SMC и являются в настоящее время основным способом взаимодействия ОС и микропрограммы (firmware). Существуют черновые спецификации способа уведомления ОС о различных событиях из микропрограммы, но на текущий момент (2015) о каких-либо готовых реализациях не сообщалось.
Подводя итог вышесказанному, следует ещё раз акцентировать внимание на том, что в статье представлено далеко не исчерпывающее описание функционирования и взаимодействия компонентов прошивки на ARMv8. Кроме того, архитектура находится в процессе постоянной доработки и переработки, что, вероятно, со временем даст материал для новых публикаций.
новые возможности -Инновационные концепции и технологии -Рубрики
Восьмая версия процессорной архитектуры ARM, анонсированная в 2011 году и переживающая настоящий бум в последние несколько лет, представляет собой самый значительный шаг за всю историю существования этой архитектуры. Вообще говоря, речь может идти о новой архитектуре. Попробуем разобраться, почему это так.Основное и самое значительное отличие ARMv8 от предыдущих версий – это поддержка 64-битных операндов, в том числе адресов (рис. 1). Не секрет, что процессоры с архитектурой ARM разрабатывались все эти годы, в основном, для рынка встраиваемых устройств, где 32-х бит до недавнего времени хватало для всего. Хотя первые признаки нехватки разрядности адреса появились уже достаточно давно, радикально эта проблема не решалась. В предыдущей версии, ARMv7, было предусмотрено расширение физического адреса до 40 бит (LPAE), хотя полностью проблему это не решило. И вот в ARMv8 был введён новый режим исполнения – AArch64. В нём виртуальные адреса были наконец-то расширены до 64 бит (хотя значащих меньше, но об этом позднее). Естественно, это повлекло за собой увеличение размера всех регистров общего назначения (РОН). Разработчики, впрочем, решили не останавливаться на достигнутом и внесли ещё целый ряд кардинальных изменений.Одно из них – удвоение количества регистров общего назначения. В ARMv8 их 32, и в мнемониках они обозначаются как x0–x31 (младшие половины w0–w31). Следует, однако, отметить, что часть из них зарезервирована для специальных нужд: х30 – регистр адреса возврата (Lnk Register), x31 – регистр с нулевым значением (xzr).
Рис. 1. Сравнение процессорных архитектур ARMv7 и ARMv8 профиля A
Изменения в регистровой модели затронули системные регистры, причём значительно сильнее, чем РОН. В ARMv8, в отличие от предыдущих версий архитектуры, нет отображения регистров. То есть если раньше регистры указателя стека, адреса возврата адреса текущей команды и состояния исполнения переключались автоматически в зависимости от режима исполнения, то теперь значительная часть регистров дублируется для разных уровней привилегий. Это значительно упрощает доступ к регистрам состояния и т. д. с более высоких уровней привилегий. Регистр указателя команд больше не является одним из РОН и доступен только для инструкций управления исполнением и некоторых режимов адресации.
Как и следовало ожидать, в режиме AArch64, вслед за моделью памяти очень значительно изменился набор инструкций, относящихся к ней. В целом набор инструкций в режиме AArch64 очень похож на то, что было раньше, но ряд особенностей, трудно реализуемых в современных процессорах, было решено оставить в прошлом. Так, в 32-битном наборе присутствовало поле предиката, позволяющее условное исполнение инструкций. В 64-битном наборе инструкций от предикатирования было решено отказаться, поскольку длина кода команды осталась той же, 32 бита, а число регистров удвоилось. Кроме того, предикатирование сильно усложняет возможности внеочередного исполнения команд ввиду дополнительных требований по переименованию регистров. В AArch64 единственными условными операциями являются инструкции перехода, выбора и сравнения.
Также в 64-битный набор инструкций не вошли встроенные сдвиги – помимо того, что место для них в кодировке операций было в дефиците, сдвигатель достаточно сложен в реализации. Сохранение прежнего формата потребовало бы удлинения исполнительного конвейера и затруднило бы достижение высоких тактовых частот.
Также в AArch64 не вошла пара инструкций LDM/ STM. Раньше эти инструкции были реализованы в микрокоде, но в кодах операций оказалось недостаточно места для списка регистров, а кроме того, такие загрузки/сохранения усложняют блоки предзагрузки данных, а реализация должна была учитывать целый ряд факторов, потенциально мешающих исполнению – исключения, прерывания и т. д. За одну инструкцию теперь можно загрузить или сохранить только 2 регистра (инструкции LDP/STP). Это позволило несколько упростить реализацию за счёт меньшей плотности кода.
Вся концепция сопроцессоров как класс не нашла места в новой архитектуре, что позволило несколько упростить некоторые моменты. Так, инструкции управления кэшем теперь не требуют сложных кодировок, а вычисления с плавающей запятой оперируют с общим архитектурным регистром флагов и не требуют пересылок в сопроцессор и обратно для выполнения сравнений.
Инструкции для вычислений с плавающей запятой также подверглись довольно значительным изменениям, в основном, в части векторных операций. В ARMv8 они, кроме присутствовавших ранее целочисленных операций и операций с одинарной точностью, включают в себя операции с двойной точностью. Изменению подвергся и формат регистров – если раньше 32 64-битных архитектурных регистра могли использоваться парами, формируя 16 виртуальных 128-битных, то теперь архитектурные регистры стали 128-битными и их 32. Поддерживается полная совместимость со стандартом IEEE754-2008. Кроме того, добавлены ин- струкции для работы с элементами векторов и редукции последних. Таким образом, этот набор инструкций по универсальности примерно соответствует x86 SSE последних версий.
Также в набор инструкций AArch64 входят в качестве необязательного элемента инструкции для вычисления криптографических хэшей и т. д., что позволяет им не отстать от конкурентов в новых для ARM-процессоров нишах, таких как серверные задачи.
Модель привилегий в ARMv8 напоминает предыдущие версии достаточно отдалённо – все режимы, ранее бывшие расширениями, теперь являются частью базовой архитектуры. Они получили названия уровней исполнения (Exception levels, дословно «уровни исключений»). Так, на уровне с минимальными привилегиями, EL0, выполняются приложения, на EL1 – ядро ОС (одно или несколько), EL2 – гипервизор (рис. 2). Наибольшие привилегии имеет уровень EL3, где выполняется доверенный код. Кроме того, в базовую спецификацию вошли и расширения безопасности, ранее известные как TrustZone. Системное ПО может выполняться в изолированной области памяти, а также объявить часть оборудования доверенным, таким образом создав изолированную среду исполнения, недоступную из основного окружения.
Изменение длины адреса естественным образом повлекло за собой изменения блока трансляции адресов (MMU). Для ядра и приложений доступны по два адресных пространства с 48 битами адреса, одно из которых отображает старшие адреса, другое – младшие (рис. 3). Однако необходимость отображения большего количества страниц памяти диктует повышенные требования к объёму памяти для размещения структур, описывающих отображаемые блоки, причём кэш буфера трансляции (TLB) должен адекватно отображать их и достаточно быстро выдавать результат трансляции. Базовая спецификация позволяет достаточно гибко подходить к вопросу построения таких таблиц – поддерживаются размеры единицы трансляции длиной в 4, 16 и 64 Кбайт (конечно же, все страницы должны быть одного размера), что позволяет увеличить процент попаданий при кэшировании таблиц. Соответственно, такие таблицы имеют до 3-х или 4-х уровней. Более того, поддерживаются специальные типы структур, описывающие блоки адресов – такие блоки могут иметь размер до 512 Гбайт. На уровнях привилегий EL2, EL3 адресное пространство только одно. Это связано с тем, что в этих режимах трансляция адресов выполняется только в один этап, в отличие от EL1, EL0, для которых трансляция может выполняться в 2 этапа (виртуальный адрес – промежуточный – физический), если это задано гипервизором.
Рис. 2. Уровни привилегий
Подсистема кэша в ARMv8 поставлена в зависимость от MMU – атрибуты блоков памяти читаются из структур-описателей, поэтому для работы кэша необходимо настроить и включить MMU.
Рис . 3. Адресные пространства архитектуры ARMv8
ARMv8, подобно другим RISC-архитектурам, имеет отдельные инструкции для обращений к памяти и арифметике/логике. Режимы адресации мало измени- лись со времен ARMv7 – присутствуют все основные режимы, однако добавлена адресация относительно указателя текущей команды. Это решение связано с тем, что указатель текущей команды более не доступен напрямую. Введён так называемый режим адресации литералов, который, строго говоря, отдельным режимом не является – литералы размещаются в пределах 1 Мбайт от места обращения и обращение к ним происходит путём адресации относительно указателя команд.
В плане схемы упорядочивания операций в ARMv8 был сделан выбор в пользу упорядочивания при окончании критического участка. Атомарность в такой модели гарантирована для выровненного чтения или записи с одним РОН в качестве операнда. Выровненные пары регистров «чтение/запись» формируют пары атомарных операций, а невыровненные операции, равно как и векторные, неатомарны.
Для синхронизации предусмотрено несколько инструкций – барьеры DSB, DMB, ISB, существовавшие и в ARMv7. Первая инструкция ожидает, пока все операции чтения и записи, идущие в фоне, не закончатся, вторая – пока предыдущие обращения к памяти не станут видимыми глобально, и третья – сбрасывает исполнительный конвейер и приводит к выборке следующих инструкций из кэша или памяти.
В ARMv8 реализован набор инструкций для создания синхронизационных примитивов по типу загрузка со связью/условная запись (Load Linked/Store Conditional, LL/SC), как и в предыдущих версиях архитектуры.
Запись в этой паре происходит только при условии, когда в промежутке между ней и предыдущей загрузкой не было других записей.
Кроме того, в ARMv8 реализованы инструкции чтения с блокировкой и записи с разблокировкой. Такая пара гарантирует, что все последующие обращения к памяти будут видны остальным агентам только после выполнения первой инструкции, и до того, как завершится исполнение второй.
Следующее значительное обновление архитектуры, ARMv8.1, в рамках модели Release Consistency принесёт значительное расширение числа инструкций, предназначенных для атомарного доступа к памяти. Фактически, ARMv8.1 станет первой архитектурой, где реализованы обе концепции LL/SC и CAS (compare and swap, сравнение и обмен). Помимо этого, расширение коснётся целого набора атомарных битовых операций, таких как «и», «или» и т. д.
В плане поддержки многопроцессорных конфигураций, ARMv8 сохраняет возможности, заложенные в ARMv7, – это в первую очередь поддержка различных доменов когерентности, что позволяет значительно сократить паразитный трафик протоколов когерентности в ряде ситуаций, различные настройки когерентности таблиц трансляции и т. д.
Для ARMv8 была разработана новая инфраструктура IP-ядер, позволяющая реализовать возможности архитектуры, – это в первую очередь контроллеры прерываний: новая спецификация GICv3 определяет новые возможности, такие как локальные периферийные прерывания (LPI), сервис трансляции прерываний (ITS), масштабируемость на несколько кристаллов. Все прерывания вызываются посредством сообщений (Message Signaled Interrupts), физические линии отошли в прошлое. Новые возможности рассчитаны, в основном, на поддержку виртуализации, ввиду богатых возможностей трансляции и доставки прерываний к произвольным группам процессорных элементов и программным окружениям, формируемым для них.
Также следует отметить блоки трансляции операций ввода/вывода SMMU, предназначенные для контроля транзакций к периферийным устройствам и от них, в том числе встроенных. Они также предназначены, в основном, для поддержки виртуализации (но не только) и позволяют обеспечить трансляцию адресов, по которым происходят DMA-обращения к адресам памяти с контролем доступа.
Спецификация ARMv8 позволяет разработчикам процессорных ядер достаточно свободно подходить к реализации аппаратуры – так, множество возможностей объявлены необязательными, а для определения их поддержки конкрентным ядром есть специальные системные регистры. В настоящее время существует ряд реализаций архитектуры ARMv8, выполненных как самой компаний ARM, так и другими производителями, такими как Cavium, Qualcomm, AppliedMicro, отличающихся не только внутренним устройством, но и набором реализованных опциональных возможностей. Архитектура продолжает развиваться, и вполне очевидно, что новые версии будут её совершенствовать.
Введение в архитектуру ARMV8-M
Хотя для процессоров ARMV8-M существует широкий спектр потенциальных приложений, разработчики, работающие над безопасными приложениями в режиме реального времени, безусловно, получат наибольшую выгоду. До сих пор архитектура ARMV8-M можно было найти в процессорах M23 и M33 Cortex-M и M35P. Давайте рассмотрим новые функции, входящие в состав ARMV8-M, и как эти процессоры отличаются от предыдущих частей ARMV7-M предыдущего поколения.
Во-первых, полезно увидеть полный спектр процессоров реального времени в серии Cortex-M и почувствовать, как они сравниваются в производительности. На следующем рисунке показано, как все процессоры Cortex-M сравниваются друг с другом при рассмотрении их относительной частоты. M23 существенно подходит как новый маломощный процессор, который обеспечивает небольшое улучшение по сравнению с M0 +. M33 вписывается в высокопроизводительные процессоры M3 / M4, но с улучшенной производительностью.
Относительная частотная характеристика между различными процессорами ARM Cortex-M. (Источник изображения: ARM 1 ) |
Функция ARMV8-M, которая на самом деле устанавливает M23, M33 и M35P, является их поддержкой для ARM TrustZone. TrustZone — это расширение безопасности, которое обеспечивает аппаратную изоляцию в микроконтроллере, чтобы разработчики могли создавать безопасные и небезопасные регионы. Эти регионы могут быть местами в ОЗУ, Flash или даже прерываниях и периферийных устройствах. Разделение между безопасными и незащищенными регионами создает изоляцию внутри микроконтроллера, что позволяет разработчикам защищать критически важные для пользователя коды и данные.
Изоляция создает два новых режима, в которых процессор может работать: безопасный и небезопасный. В защищенном режиме исполняемый код может получить доступ ко всей памяти как в безопасных, так и в незащищенных зонах. Однако, если процессор работает в незащищенной зоне, можно увидеть только незащищенные регионы. Защищенные области скрыты и не могут быть выполнены из незащищенного состояния без добавления специального кода, который создает шлюз для доступа к защищенному вызову. Это позволяет использовать защищенные функции, скрывая то, что происходит за кулисами.
Изоляция между безопасными и незащищенными состояниями позволяет разработчикам включать защищенные приложения и библиотеки в изолированную среду выполнения в процессоре. (Источник изображения: ARM) |
Есть несколько других новых функций, которые разработчики найдут интересными, помимо расширения TrustZone. К ним относятся:
- Упрощенная установка MPU
- Гибкая конфигурация точки останова
- Улучшенная поддержка трассировки
- Усовершенствования набора инструкций
- Динамическая переориентация прерываний
Итак, когда появятся первые процессоры Cortex-M, поддерживающие ARMV8-M? Оказывается, уже доступны первые публично выпущенные процессоры Cortex-M23. Недавно Microchip выпустила свои процессоры SAM L10 / L11 Cortex-M23 вместе с платами разработки Xplained, которые включают в себя детали. Однако важно отметить, что SAM L10 не включает расширения TrustZone. Эта честь принадлежит SAM L11.
Конечно, есть намного больше, чтобы узнать и исследовать под капотом относительно архитектуры ARMV8-M, предлагающей разработчикам. Лично я с нетерпением ожидал возможностей TrustZone и улучшенных возможностей безопасности, которые он предлагает разработчикам.
Список литературы
- https://www.arm.com/products/processors/cortex-m
Набор для разработки Microchip SAML11 основан на архитектуре ARMV-8 и поддерживает расширения ARM TrustZone. (Источник изображения: Kei) |
7 Советы по защите встроенной системы
Где, где, где мои очки?
A7 Советы по началу работы с трассировкой приложений
Якоб Бенинго является консультантом по встроенному программному обеспечению, который в настоящее время работает с клиентами в более чем десятке стран, чтобы кардинально преобразовать свой бизнес, улучшив качество, стоимость и время выхода на рынок. Он опубликовал более 200 статей по разработке встроенных технологий разработки программного обеспечения, является востребованным спикером и техническим тренером и имеет три степени, включая магистров инженерных наук из Мичиганского университета. Не стесняйтесь связаться с ним по адресу [email protected], на его веб-сайте www.beningo.com/ и подписаться на его ежемесячный Embedded Bytes Newsletter .
Как узнать тип процессора, который используется в вашем Android устройстве
Недавно мы рассказывали вам о том, как узнать DPI дисплея вашего Android устройства, которое необходимо знать для выбора правильного APK файла приложения, которое вы хотите установить на него вручную. Однако, при этом зачастую нужно знать еще и тип процессора: ARM, ARM64 или x86, который используется в вашем смартфоне или планшете.
Как оказалось, многие владельцы Android устройств не имеют никакого представления об этом. Поэтому сегодня речь пойдет о том, как можно получить эти сведения.
Самым простым способом узнать тип процессора на базе которого выполнен ваш смартфон, планшет или другое Android устройство будет установить на него приложение Droid Hardware Info.
Это приложение доступно для скачивания с этой страницы Google Play Маркет совершенно бесплатно и после его запуска вы увидите на экране смартфона следующую информацию (слева — данные о смартфоне Nexus 5, справа — информация о Nexus 6):
В самой первой строке с наименованием «CPU architecture» вы увидите одно из значений: ARMv7, AArch64 или x86, а в строке «Insructions Set»: armeabi, arm64 или x86abi.
Соответствие этих значений типу вашего процессора приведено ниже:
ARM: ARMv7 или armeabi
ARM64: AArch64 или arm64
x86: x86 или x86abi
Есть еще один достаточно простой способ узнать тип процессора вашего смартфона, планшета или другого устройства, который знаком пользователям Linux
Для этого вам нужно установить на свое устройство из Google Play Маркет приложение Terminal Emulator, запустить его и выполнить следующую команду:
cat /proc/cpuinfo
На экране при этом отобразится информация о процессоре в следующей форме:
Как вы уже, наверняка поняли, нам нужна информация из самой первой строки «Processor:»
Похожие материалы:
Функция Quick Ball из MIUI на любом Android устройстве
Как скачать Apk файл из Google Play Маркета с помощью APK Downloader
Скачать APK файлы приложений из Google Play Маркет можно с помощью расширения Toolbox for Google Play Store для браузера Chrome
Raccoon. Приложение для скачивания APK файлов из Google Play Маркет обновилось, получив обновленный интерфейс и новые возможности
ARMv8 — ARM — WikiChip
ARMv8 (кодовое имя Oban ) является преемником ARMv7, архитектуры набора инструкций ARM, анонсированной в 2011 году, которая внесла большое количество фундаментальных изменений в набор инструкций, включая введение 64-разрядной версии. возможности работы долота.
Обзор [править]
Работа над ARMv8 началась в группе исследований и разработок ARM в 2007 году. ARMv8, впервые раскрытая в конце 2011 года, является преемником и расширением ARMv7 ISA.Эта архитектура представила новые 64-битные операционные возможности, названные AArch64 , и определила связь с предыдущим 32-битным рабочим состоянием, именуемым AArch42 (охватывающим A32 и T32 ISA). По сути, ARMv8 расширяет старую архитектуру, сохраняя при этом совместимость со старыми версиями и расширениями (например, Thumb, NEON, VFP) в AArch42. Кроме того, ARMv8 внес ряд улучшений в AArch42, который по-прежнему поддерживает полную совместимость с ARMv7.Вообще говоря, ARMv8 был разработан таким образом, что хорошо спроектированное ядро AArch64 должно также хорошо работать как ядро AArch42.
AArch42 [править]
- Основная статья: AArch42
ARMv8 представила концепцию состояния выполнения AArch42 для включения того, что ранее было ARMv7. Он охватывает наборы инструкций A32 и T32, а также ряд новых инструкций. AArch42 сохраняет классическую модель исключений ARM и ограничивает виртуальный адрес 32 битами.
Улучшения ARMv8 [править]
ARMv8 представил набор улучшений классического набора команд A32.Расширения криптографии, улучшенные типы барьеров и выпуск загрузки и сохранения, которые были представлены с A64, также были добавлены в набор инструкций A32.
AArch64 [редактировать]
- Основная статья: AArch64
ARMv8 представила новое состояние выполнения AArch64, которое работает с новым набором инструкций под названием A64. Этот режим переработал модель обработки исключений в ARM, упростив ее за счет меньшего количества режимов и регистров с хранением в банках. При поддержке 64-битной архитектуры было введено до 48 бит виртуального адреса (обратите внимание, что на самом деле это расширение Large Physical Address Extension, которое было введено в ARMv7, но было разработано одновременно с ARMv8).Кроме того, и безопасность (TrustZone), и виртуализация переносятся на AArch64.
Отношения AArch42 / AArch64 [править]
Изменения между двумя состояниями могут происходить только при входе исключения и выходе исключения. Это означает, что невозможно выполнять ветвление и связывание между двумя режимами выполнения, и невозможно уменьшить ширину регистра, переходя от одного исключения к более высокому уровню исключения. Эти ограничения позволяют приложению AAarch42 работать вместе с другим приложением AArch64 в операционной системе AArch64.Кроме того, они также позволяют гостевой ОС AAarch42 работать вместе с гостевой ОС AArch42 под гипервизором AAarch64 и другими аналогичными комбинациями.
Профили [править]
ARMv8 представил ряд профилей или разновидностей архитектуры, нацеленных на определенные классы рабочих нагрузок.
Профиль | Имя | Описание |
---|---|---|
Приложение | ARMv8-A | Оптимизирован для большого класса общих приложений для мобильных устройств, планшетов и серверов. |
в реальном времени | ARMv8-R | Оптимизирован для работы в критических с точки зрения безопасности средах. |
Микроконтроллер | АРМв8-М | Оптимизирован для встраиваемых систем с высокой степенью детерминированности операций. |
Расширения ARMv8 и особенности процессора [править]
ARMv8 имеет множество версий (ARMv8.1 и т. Д.), Которые определяют обязательные и дополнительные функции. Ядро Linux раскрывает наличие некоторых из этих функций через hwcaps.Эти значения отображаются в / proc / cpuinfo.
Имя | Версии | Функция поддерживается |
---|---|---|
fp | – | С плавающей запятой одинарной и двойной точности. |
asimd | – | Расширенный SIMD. |
evtstrm | НЕТ | Общий таймер сконфигурирован для генерации «событий» с частотой около 100 кГц. |
aes | – | инструкции AES (AESE и т. Д.) |
pmull | – | Полиномиальное умножение длинных инструкций (PMULL / PMULL2) |
sha1 | – | инструкции SHA-1 (SHA1C и т. Д.) |
sha2 | – | инструкции SHA-2 (SHA256H и т. Д.) |
crc32 | [ARMv8.0], ARMv8.1 … | CRC32 / CRC32C инструкции |
атомикс | ARMv8.1 … | Large System Extensions (LSE) — (CAS / SWP / LD [op]) |
fphp | ARMv8.2-FP16 | Плавающая точка половинной точности. |
процессор | НЕТ | Некоторые регистры идентификатора процессора доступны для чтения на уровне пользователя. |
asimdrdm | ARMv8.1 | Округление двойного умножения, накопления / вычитания (SQRDMLAH / SQRDMLSH) |
ао | ARMv8.3 | Javascript-style double-> int convert (FJCVTZS) |
lrcpc | ARMv8.3 | Более слабая согласованность выпуска (LDAPR и т. Д.) |
DCPOP | ARMv8.2 | Очистка кэша данных до точки сохранения (DC CVAP) |
sha3 | ARMv8.2-SHA | инструкции SHA-3 (EOR3, RAX1, XAR, BCAX) |
см3 | ARMv8.2-SM | SM3 инструкции |
см4 | ARMv8.2-SM | SM4 инструкции |
asimddp | ARMv8.2-DotProd | Точечный продукт SIMD |
sha512 | ARMv8.2-SHA | SHA512 инструкции |
све | ARMv8.2-SVE | Масштабируемое векторное расширение (SVE) |
Crypto Extension [править]
ARMv8 представила аппаратное ускорение для криптографии. Эти операции были добавлены для дополнения, но не замены традиционных ускорителей криптографии. Предназначенные для поддержки криптографии на уровне небольших инструкций, поддерживались два основных алгоритма: AES и SHA (SHA-1 и SHA-256).
Библиография [править]
- Ричард Гризентуэйт. (26 октября 2011 г.). «Технологический обзор: архитектура ARM — взгляд в будущее» .
- Архитектурная группа ARM. «Обзор набора команд Armv8». т. PRD03-GENC-010197 (2011).
- elf_hwcaps.txt
ARMv8 — ARM — WikiChip
ARMv8 (кодовое имя Oban ) является преемником ARMv7, архитектуры набора команд ARM, анонсированной в 2011 году, которая внесла большое количество фундаментальных изменений в набор команд. включая введение 64-битных операционных возможностей.
Обзор [править]
Работа над ARMv8 началась в группе исследований и разработок ARM в 2007 году. ARMv8, впервые раскрытая в конце 2011 года, является преемником и расширением ARMv7 ISA. Эта архитектура представила новые 64-битные операционные возможности, названные AArch64 , и определила связь с предыдущим 32-битным рабочим состоянием, именуемым AArch42 (охватывающим A32 и T32 ISA). По сути, ARMv8 расширяет старую архитектуру, сохраняя при этом совместимость со старыми версиями и расширениями (например,g., Thumb, NEON, VFP) в AArch42. Кроме того, ARMv8 внес ряд улучшений в AArch42, который по-прежнему поддерживает полную совместимость с ARMv7. Вообще говоря, ARMv8 был разработан таким образом, что хорошо спроектированное ядро AArch64 должно также хорошо работать как ядро AArch42.
AArch42 [править]
- Основная статья: AArch42
ARMv8 представила концепцию состояния выполнения AArch42 для включения того, что ранее было ARMv7. Он охватывает наборы инструкций A32 и T32, а также ряд новых инструкций.AArch42 сохраняет классическую модель исключений ARM и ограничивает виртуальный адрес 32 битами.
Улучшения ARMv8 [править]
ARMv8 представил набор улучшений классического набора команд A32. Расширения криптографии, улучшенные типы барьеров и выпуск загрузки и сохранения, которые были представлены с A64, также были добавлены в набор инструкций A32.
AArch64 [редактировать]
- Основная статья: AArch64
ARMv8 представила новое состояние выполнения AArch64, которое работает с новым набором инструкций под названием A64.Этот режим переработал модель обработки исключений в ARM, упростив ее за счет меньшего количества режимов и регистров с хранением в банках. При поддержке 64-битной архитектуры было введено до 48 бит виртуального адреса (обратите внимание, что на самом деле это расширение Large Physical Address Extension, которое было введено в ARMv7, но было разработано одновременно с ARMv8). Кроме того, и безопасность (TrustZone), и виртуализация переносятся на AArch64.
Отношения AArch42 / AArch64 [править]
Изменения между двумя состояниями могут происходить только при входе исключения и выходе исключения.Это означает, что невозможно выполнять ветвление и связывание между двумя режимами выполнения, и невозможно уменьшить ширину регистра, переходя от одного исключения к более высокому уровню исключения. Эти ограничения позволяют приложению AAarch42 работать вместе с другим приложением AArch64 в операционной системе AArch64. Кроме того, они также позволяют гостевой ОС AAarch42 работать вместе с гостевой ОС AArch42 под гипервизором AAarch64 и другими аналогичными комбинациями.
Профили [править]
ARMv8 представил ряд профилей или разновидностей архитектуры, нацеленных на определенные классы рабочих нагрузок.
Профиль | Имя | Описание |
---|---|---|
Приложение | ARMv8-A | Оптимизирован для большого класса общих приложений для мобильных устройств, планшетов и серверов. |
в реальном времени | ARMv8-R | Оптимизирован для работы в критических с точки зрения безопасности средах. |
Микроконтроллер | АРМв8-М | Оптимизирован для встраиваемых систем с высокой степенью детерминированности операций. |
Расширения ARMv8 и особенности процессора [править]
ARMv8 имеет множество версий (ARMv8.1 и т. Д.), Которые определяют обязательные и дополнительные функции. Ядро Linux раскрывает наличие некоторых из этих функций через hwcaps. Эти значения отображаются в / proc / cpuinfo.
Имя | Версии | Функция поддерживается |
---|---|---|
fp | – | С плавающей запятой одинарной и двойной точности. |
asimd | – | Расширенный SIMD. |
evtstrm | НЕТ | Общий таймер сконфигурирован для генерации «событий» с частотой около 100 кГц. |
aes | – | инструкции AES (AESE и т. Д.) |
pmull | – | Полиномиальное умножение длинных инструкций (PMULL / PMULL2) |
sha1 | – | инструкции SHA-1 (SHA1C и т. Д.) |
sha2 | – | инструкции SHA-2 (SHA256H и т. Д.) |
crc32 | [ARMv8.0], ARMv8.1 … | CRC32 / CRC32C инструкции |
атомикс | ARMv8.1 … | Large System Extensions (LSE) — (CAS / SWP / LD [op]) |
fphp | ARMv8.2-FP16 | Плавающая точка половинной точности. |
процессор | НЕТ | Некоторые регистры идентификатора процессора доступны для чтения на уровне пользователя. |
asimdrdm | ARMv8.1 | Округление двойного умножения, накопления / вычитания (SQRDMLAH / SQRDMLSH) |
ао | ARMv8.3 | Javascript-style double-> int convert (FJCVTZS) |
lrcpc | ARMv8.3 | Более слабая согласованность выпуска (LDAPR и т. Д.) |
DCPOP | ARMv8.2 | Очистка кэша данных до точки сохранения (DC CVAP) |
sha3 | ARMv8.2-SHA | инструкции SHA-3 (EOR3, RAX1, XAR, BCAX) |
см3 | ARMv8.2-SM | SM3 инструкции |
см4 | ARMv8.2-SM | SM4 инструкции |
asimddp | ARMv8.2-DotProd | Точечный продукт SIMD |
sha512 | ARMv8.2-SHA | SHA512 инструкции |
све | ARMv8.2-SVE | Масштабируемое векторное расширение (SVE) |
Crypto Extension [править]
ARMv8 представила аппаратное ускорение для криптографии. Эти операции были добавлены для дополнения, но не замены традиционных ускорителей криптографии.Предназначенные для поддержки криптографии на уровне небольших инструкций, поддерживались два основных алгоритма: AES и SHA (SHA-1 и SHA-256).
Библиография [править]
- Ричард Гризентуэйт. (26 октября 2011 г.). «Технологический обзор: архитектура ARM — взгляд в будущее» .
- Архитектурная группа ARM. «Обзор набора команд Armv8». т. PRD03-GENC-010197 (2011).
- elf_hwcaps.txt
ARMv8 — ARM — WikiChip
ARMv8 (кодовое имя Oban ) является преемником ARMv7, архитектуры набора команд ARM, анонсированной в 2011 году, которая внесла большое количество фундаментальных изменений в набор команд. включая введение 64-битных операционных возможностей.
Обзор [править]
Работа над ARMv8 началась в группе исследований и разработок ARM в 2007 году. ARMv8, впервые раскрытая в конце 2011 года, является преемником и расширением ARMv7 ISA. Эта архитектура представила новые 64-битные операционные возможности, названные AArch64 , и определила связь с предыдущим 32-битным рабочим состоянием, именуемым AArch42 (охватывающим A32 и T32 ISA). По сути, ARMv8 расширяет старую архитектуру, сохраняя при этом совместимость со старыми версиями и расширениями (например,g., Thumb, NEON, VFP) в AArch42. Кроме того, ARMv8 внес ряд улучшений в AArch42, который по-прежнему поддерживает полную совместимость с ARMv7. Вообще говоря, ARMv8 был разработан таким образом, что хорошо спроектированное ядро AArch64 должно также хорошо работать как ядро AArch42.
AArch42 [править]
- Основная статья: AArch42
ARMv8 представила концепцию состояния выполнения AArch42 для включения того, что ранее было ARMv7. Он охватывает наборы инструкций A32 и T32, а также ряд новых инструкций.AArch42 сохраняет классическую модель исключений ARM и ограничивает виртуальный адрес 32 битами.
Улучшения ARMv8 [править]
ARMv8 представил набор улучшений классического набора команд A32. Расширения криптографии, улучшенные типы барьеров и выпуск загрузки и сохранения, которые были представлены с A64, также были добавлены в набор инструкций A32.
AArch64 [редактировать]
- Основная статья: AArch64
ARMv8 представила новое состояние выполнения AArch64, которое работает с новым набором инструкций под названием A64.Этот режим переработал модель обработки исключений в ARM, упростив ее за счет меньшего количества режимов и регистров с хранением в банках. При поддержке 64-битной архитектуры было введено до 48 бит виртуального адреса (обратите внимание, что на самом деле это расширение Large Physical Address Extension, которое было введено в ARMv7, но было разработано одновременно с ARMv8). Кроме того, и безопасность (TrustZone), и виртуализация переносятся на AArch64.
Отношения AArch42 / AArch64 [править]
Изменения между двумя состояниями могут происходить только при входе исключения и выходе исключения.Это означает, что невозможно выполнять ветвление и связывание между двумя режимами выполнения, и невозможно уменьшить ширину регистра, переходя от одного исключения к более высокому уровню исключения. Эти ограничения позволяют приложению AAarch42 работать вместе с другим приложением AArch64 в операционной системе AArch64. Кроме того, они также позволяют гостевой ОС AAarch42 работать вместе с гостевой ОС AArch42 под гипервизором AAarch64 и другими аналогичными комбинациями.
Профили [править]
ARMv8 представил ряд профилей или разновидностей архитектуры, нацеленных на определенные классы рабочих нагрузок.
Профиль | Имя | Описание |
---|---|---|
Приложение | ARMv8-A | Оптимизирован для большого класса общих приложений для мобильных устройств, планшетов и серверов. |
в реальном времени | ARMv8-R | Оптимизирован для работы в критических с точки зрения безопасности средах. |
Микроконтроллер | АРМв8-М | Оптимизирован для встраиваемых систем с высокой степенью детерминированности операций. |
Расширения ARMv8 и особенности процессора [править]
ARMv8 имеет множество версий (ARMv8.1 и т. Д.), Которые определяют обязательные и дополнительные функции. Ядро Linux раскрывает наличие некоторых из этих функций через hwcaps. Эти значения отображаются в / proc / cpuinfo.
Имя | Версии | Функция поддерживается |
---|---|---|
fp | – | С плавающей запятой одинарной и двойной точности. |
asimd | – | Расширенный SIMD. |
evtstrm | НЕТ | Общий таймер сконфигурирован для генерации «событий» с частотой около 100 кГц. |
aes | – | инструкции AES (AESE и т. Д.) |
pmull | – | Полиномиальное умножение длинных инструкций (PMULL / PMULL2) |
sha1 | – | инструкции SHA-1 (SHA1C и т. Д.) |
sha2 | – | инструкции SHA-2 (SHA256H и т. Д.) |
crc32 | [ARMv8.0], ARMv8.1 … | CRC32 / CRC32C инструкции |
атомикс | ARMv8.1 … | Large System Extensions (LSE) — (CAS / SWP / LD [op]) |
fphp | ARMv8.2-FP16 | Плавающая точка половинной точности. |
процессор | НЕТ | Некоторые регистры идентификатора процессора доступны для чтения на уровне пользователя. |
asimdrdm | ARMv8.1 | Округление двойного умножения, накопления / вычитания (SQRDMLAH / SQRDMLSH) |
ао | ARMv8.3 | Javascript-style double-> int convert (FJCVTZS) |
lrcpc | ARMv8.3 | Более слабая согласованность выпуска (LDAPR и т. Д.) |
DCPOP | ARMv8.2 | Очистка кэша данных до точки сохранения (DC CVAP) |
sha3 | ARMv8.2-SHA | инструкции SHA-3 (EOR3, RAX1, XAR, BCAX) |
см3 | ARMv8.2-SM | SM3 инструкции |
см4 | ARMv8.2-SM | SM4 инструкции |
asimddp | ARMv8.2-DotProd | Точечный продукт SIMD |
sha512 | ARMv8.2-SHA | SHA512 инструкции |
све | ARMv8.2-SVE | Масштабируемое векторное расширение (SVE) |
Crypto Extension [править]
ARMv8 представила аппаратное ускорение для криптографии. Эти операции были добавлены для дополнения, но не замены традиционных ускорителей криптографии.Предназначенные для поддержки криптографии на уровне небольших инструкций, поддерживались два основных алгоритма: AES и SHA (SHA-1 и SHA-256).
Библиография [править]
- Ричард Гризентуэйт. (26 октября 2011 г.). «Технологический обзор: архитектура ARM — взгляд в будущее» .
- Архитектурная группа ARM. «Обзор набора команд Armv8». т. PRD03-GENC-010197 (2011).
- elf_hwcaps.txt
ARMv8 — ARM — WikiChip
ARMv8 (кодовое имя Oban ) является преемником ARMv7, архитектуры набора команд ARM, анонсированной в 2011 году, которая внесла большое количество фундаментальных изменений в набор команд. включая введение 64-битных операционных возможностей.
Обзор [править]
Работа над ARMv8 началась в группе исследований и разработок ARM в 2007 году. ARMv8, впервые раскрытая в конце 2011 года, является преемником и расширением ARMv7 ISA. Эта архитектура представила новые 64-битные операционные возможности, названные AArch64 , и определила связь с предыдущим 32-битным рабочим состоянием, именуемым AArch42 (охватывающим A32 и T32 ISA). По сути, ARMv8 расширяет старую архитектуру, сохраняя при этом совместимость со старыми версиями и расширениями (например,g., Thumb, NEON, VFP) в AArch42. Кроме того, ARMv8 внес ряд улучшений в AArch42, который по-прежнему поддерживает полную совместимость с ARMv7. Вообще говоря, ARMv8 был разработан таким образом, что хорошо спроектированное ядро AArch64 должно также хорошо работать как ядро AArch42.
AArch42 [править]
- Основная статья: AArch42
ARMv8 представила концепцию состояния выполнения AArch42 для включения того, что ранее было ARMv7. Он охватывает наборы инструкций A32 и T32, а также ряд новых инструкций.AArch42 сохраняет классическую модель исключений ARM и ограничивает виртуальный адрес 32 битами.
Улучшения ARMv8 [править]
ARMv8 представил набор улучшений классического набора команд A32. Расширения криптографии, улучшенные типы барьеров и выпуск загрузки и сохранения, которые были представлены с A64, также были добавлены в набор инструкций A32.
AArch64 [редактировать]
- Основная статья: AArch64
ARMv8 представила новое состояние выполнения AArch64, которое работает с новым набором инструкций под названием A64.Этот режим переработал модель обработки исключений в ARM, упростив ее за счет меньшего количества режимов и регистров с хранением в банках. При поддержке 64-битной архитектуры было введено до 48 бит виртуального адреса (обратите внимание, что на самом деле это расширение Large Physical Address Extension, которое было введено в ARMv7, но было разработано одновременно с ARMv8). Кроме того, и безопасность (TrustZone), и виртуализация переносятся на AArch64.
Отношения AArch42 / AArch64 [править]
Изменения между двумя состояниями могут происходить только при входе исключения и выходе исключения.Это означает, что невозможно выполнять ветвление и связывание между двумя режимами выполнения, и невозможно уменьшить ширину регистра, переходя от одного исключения к более высокому уровню исключения. Эти ограничения позволяют приложению AAarch42 работать вместе с другим приложением AArch64 в операционной системе AArch64. Кроме того, они также позволяют гостевой ОС AAarch42 работать вместе с гостевой ОС AArch42 под гипервизором AAarch64 и другими аналогичными комбинациями.
Профили [править]
ARMv8 представил ряд профилей или разновидностей архитектуры, нацеленных на определенные классы рабочих нагрузок.
Профиль | Имя | Описание |
---|---|---|
Приложение | ARMv8-A | Оптимизирован для большого класса общих приложений для мобильных устройств, планшетов и серверов. |
в реальном времени | ARMv8-R | Оптимизирован для работы в критических с точки зрения безопасности средах. |
Микроконтроллер | АРМв8-М | Оптимизирован для встраиваемых систем с высокой степенью детерминированности операций. |
Расширения ARMv8 и особенности процессора [править]
ARMv8 имеет множество версий (ARMv8.1 и т. Д.), Которые определяют обязательные и дополнительные функции. Ядро Linux раскрывает наличие некоторых из этих функций через hwcaps. Эти значения отображаются в / proc / cpuinfo.
Имя | Версии | Функция поддерживается |
---|---|---|
fp | – | С плавающей запятой одинарной и двойной точности. |
asimd | – | Расширенный SIMD. |
evtstrm | НЕТ | Общий таймер сконфигурирован для генерации «событий» с частотой около 100 кГц. |
aes | – | инструкции AES (AESE и т. Д.) |
pmull | – | Полиномиальное умножение длинных инструкций (PMULL / PMULL2) |
sha1 | – | инструкции SHA-1 (SHA1C и т. Д.) |
sha2 | – | инструкции SHA-2 (SHA256H и т. Д.) |
crc32 | [ARMv8.0], ARMv8.1 … | CRC32 / CRC32C инструкции |
атомикс | ARMv8.1 … | Large System Extensions (LSE) — (CAS / SWP / LD [op]) |
fphp | ARMv8.2-FP16 | Плавающая точка половинной точности. |
процессор | НЕТ | Некоторые регистры идентификатора процессора доступны для чтения на уровне пользователя. |
asimdrdm | ARMv8.1 | Округление двойного умножения, накопления / вычитания (SQRDMLAH / SQRDMLSH) |
ао | ARMv8.3 | Javascript-style double-> int convert (FJCVTZS) |
lrcpc | ARMv8.3 | Более слабая согласованность выпуска (LDAPR и т. Д.) |
DCPOP | ARMv8.2 | Очистка кэша данных до точки сохранения (DC CVAP) |
sha3 | ARMv8.2-SHA | инструкции SHA-3 (EOR3, RAX1, XAR, BCAX) |
см3 | ARMv8.2-SM | SM3 инструкции |
см4 | ARMv8.2-SM | SM4 инструкции |
asimddp | ARMv8.2-DotProd | Точечный продукт SIMD |
sha512 | ARMv8.2-SHA | SHA512 инструкции |
све | ARMv8.2-SVE | Масштабируемое векторное расширение (SVE) |
Crypto Extension [править]
ARMv8 представила аппаратное ускорение для криптографии. Эти операции были добавлены для дополнения, но не замены традиционных ускорителей криптографии.Предназначенные для поддержки криптографии на уровне небольших инструкций, поддерживались два основных алгоритма: AES и SHA (SHA-1 и SHA-256).
Библиография [править]
- Ричард Гризентуэйт. (26 октября 2011 г.). «Технологический обзор: архитектура ARM — взгляд в будущее» .
- Архитектурная группа ARM. «Обзор набора команд Armv8». т. PRD03-GENC-010197 (2011).
- elf_hwcaps.txt
ARMv8 — ARM — WikiChip
ARMv8 (кодовое имя Oban ) является преемником ARMv7, архитектуры набора команд ARM, анонсированной в 2011 году, которая внесла большое количество фундаментальных изменений в набор команд. включая введение 64-битных операционных возможностей.
Обзор [править]
Работа над ARMv8 началась в группе исследований и разработок ARM в 2007 году. ARMv8, впервые раскрытая в конце 2011 года, является преемником и расширением ARMv7 ISA. Эта архитектура представила новые 64-битные операционные возможности, названные AArch64 , и определила связь с предыдущим 32-битным рабочим состоянием, именуемым AArch42 (охватывающим A32 и T32 ISA). По сути, ARMv8 расширяет старую архитектуру, сохраняя при этом совместимость со старыми версиями и расширениями (например,g., Thumb, NEON, VFP) в AArch42. Кроме того, ARMv8 внес ряд улучшений в AArch42, который по-прежнему поддерживает полную совместимость с ARMv7. Вообще говоря, ARMv8 был разработан таким образом, что хорошо спроектированное ядро AArch64 должно также хорошо работать как ядро AArch42.
AArch42 [править]
- Основная статья: AArch42
ARMv8 представила концепцию состояния выполнения AArch42 для включения того, что ранее было ARMv7. Он охватывает наборы инструкций A32 и T32, а также ряд новых инструкций.AArch42 сохраняет классическую модель исключений ARM и ограничивает виртуальный адрес 32 битами.
Улучшения ARMv8 [править]
ARMv8 представил набор улучшений классического набора команд A32. Расширения криптографии, улучшенные типы барьеров и выпуск загрузки и сохранения, которые были представлены с A64, также были добавлены в набор инструкций A32.
AArch64 [редактировать]
- Основная статья: AArch64
ARMv8 представила новое состояние выполнения AArch64, которое работает с новым набором инструкций под названием A64.Этот режим переработал модель обработки исключений в ARM, упростив ее за счет меньшего количества режимов и регистров с хранением в банках. При поддержке 64-битной архитектуры было введено до 48 бит виртуального адреса (обратите внимание, что на самом деле это расширение Large Physical Address Extension, которое было введено в ARMv7, но было разработано одновременно с ARMv8). Кроме того, и безопасность (TrustZone), и виртуализация переносятся на AArch64.
Отношения AArch42 / AArch64 [править]
Изменения между двумя состояниями могут происходить только при входе исключения и выходе исключения.Это означает, что невозможно выполнять ветвление и связывание между двумя режимами выполнения, и невозможно уменьшить ширину регистра, переходя от одного исключения к более высокому уровню исключения. Эти ограничения позволяют приложению AAarch42 работать вместе с другим приложением AArch64 в операционной системе AArch64. Кроме того, они также позволяют гостевой ОС AAarch42 работать вместе с гостевой ОС AArch42 под гипервизором AAarch64 и другими аналогичными комбинациями.
Профили [править]
ARMv8 представил ряд профилей или разновидностей архитектуры, нацеленных на определенные классы рабочих нагрузок.
Профиль | Имя | Описание |
---|---|---|
Приложение | ARMv8-A | Оптимизирован для большого класса общих приложений для мобильных устройств, планшетов и серверов. |
в реальном времени | ARMv8-R | Оптимизирован для работы в критических с точки зрения безопасности средах. |
Микроконтроллер | АРМв8-М | Оптимизирован для встраиваемых систем с высокой степенью детерминированности операций. |
Расширения ARMv8 и особенности процессора [править]
ARMv8 имеет множество версий (ARMv8.1 и т. Д.), Которые определяют обязательные и дополнительные функции. Ядро Linux раскрывает наличие некоторых из этих функций через hwcaps. Эти значения отображаются в / proc / cpuinfo.
Имя | Версии | Функция поддерживается |
---|---|---|
fp | – | С плавающей запятой одинарной и двойной точности. |
asimd | – | Расширенный SIMD. |
evtstrm | НЕТ | Общий таймер сконфигурирован для генерации «событий» с частотой около 100 кГц. |
aes | – | инструкции AES (AESE и т. Д.) |
pmull | – | Полиномиальное умножение длинных инструкций (PMULL / PMULL2) |
sha1 | – | инструкции SHA-1 (SHA1C и т. Д.) |
sha2 | – | инструкции SHA-2 (SHA256H и т. Д.) |
crc32 | [ARMv8.0], ARMv8.1 … | CRC32 / CRC32C инструкции |
атомикс | ARMv8.1 … | Large System Extensions (LSE) — (CAS / SWP / LD [op]) |
fphp | ARMv8.2-FP16 | Плавающая точка половинной точности. |
процессор | НЕТ | Некоторые регистры идентификатора процессора доступны для чтения на уровне пользователя. |
asimdrdm | ARMv8.1 | Округление двойного умножения, накопления / вычитания (SQRDMLAH / SQRDMLSH) |
ао | ARMv8.3 | Javascript-style double-> int convert (FJCVTZS) |
lrcpc | ARMv8.3 | Более слабая согласованность выпуска (LDAPR и т. Д.) |
DCPOP | ARMv8.2 | Очистка кэша данных до точки сохранения (DC CVAP) |
sha3 | ARMv8.2-SHA | инструкции SHA-3 (EOR3, RAX1, XAR, BCAX) |
см3 | ARMv8.2-SM | SM3 инструкции |
см4 | ARMv8.2-SM | SM4 инструкции |
asimddp | ARMv8.2-DotProd | Точечный продукт SIMD |
sha512 | ARMv8.2-SHA | SHA512 инструкции |
све | ARMv8.2-SVE | Масштабируемое векторное расширение (SVE) |
Crypto Extension [править]
ARMv8 представила аппаратное ускорение для криптографии. Эти операции были добавлены для дополнения, но не замены традиционных ускорителей криптографии.Предназначенные для поддержки криптографии на уровне небольших инструкций, поддерживались два основных алгоритма: AES и SHA (SHA-1 и SHA-256).
Библиография [править]
- Ричард Гризентуэйт. (26 октября 2011 г.). «Технологический обзор: архитектура ARM — взгляд в будущее» .
- Архитектурная группа ARM. «Обзор набора команд Armv8». т. PRD03-GENC-010197 (2011).
- elf_hwcaps.txt
ARM подробно описывает новую 64-битную архитектуру ARMv8, планы по доминированию на сервере
Этот сайт может получать партнерские комиссии по ссылкам на этой странице.Условия эксплуатации.ARM представила свою новую 64-битную архитектуру ARMv8. В ARMv8 компания представляет два различных режима работы: AArch64 и AArch42. Ранняя информация предполагает, что между расширениями AMD x86-64 и собственным переходом ARM к 64-битным вычислениям есть конструктивные параллели. Микросхемы ARMv8 будут поддерживать любой режим выполнения, при этом AArch42 является точной копией текущего набора инструкций ARMv7, который находится под капотом большинства современных процессоров для смартфонов.AArch64 представит новый набор инструкций (A64), но сохранит уже установленную поддержку оборудования NEON SIMD, виртуализации и TrustZone.
«Мы считаем, что архитектура ARMv8 идеально подходит для того, чтобы партнерство с ARM продолжало расти в области 32-разрядных приложений и предлагало разнообразные, инновационные и энергоэффективные решения на рынках 64-разрядных процессоров», — сказал Майк Мюллер, технический директор ARM. .
ARM уже предоставила инструменты разработки некоторым партнерам, включая Microsoft и Nvidia, но до коммерческих продуктов еще далеко.ARM планирует раскрыть продукты на базе ARMv8 в 2012 году, а прототипы систем нацелены на 2014 год. Учитывая указанные временные рамки, определенная болтовня, вызванная этим заявлением, неуместна: Microsoft, например, могла бы создать разновидность Windows 8. это совместимо с AArch64, но с учетом того, что Windows 9, по слухам, нацелена на запуск в 2014 году, а чипы ARMv8, как ожидается, не будут прототипированы до тех пор, это маловероятно.
Пройдут годы, прежде чем ARMv8 повлияет на поставки продуктов, но существование архитектуры является еще одним признаком долгосрочных устремлений ARM.Ожидается, что первые чипы на основе Cortex-A15, современной 32-разрядной архитектуры ARM, появятся в продаже в следующем году, и есть серьезные свидетельства того, что по крайней мере некоторые из них появятся на серверах. ARM не скрывала своих корпоративных устремлений, и Intel не упустила из виду намерения компании; мы также увидим дебют 64-битных серверов Xeon Atom в следующем году.
Поддержка 64-разрядных систем — это одна из функций, предлагаемых процессорами x86, которой не могут соответствовать существующие продукты ARM, и в ближайшее время она не понадобится мобильным телефонам.Хотя до реализации еще далеко, ARMv8 является основным строительным блоком в усилиях ARM по превращению из разработчика мобильных процессоров в поставщика комплексных решений.
Объяснение наборов инструкций, архитектуры и других различий
Android может работать на трех различных типах архитектуры процессоров: Arm, Intel и MIPS. Первая является сегодня повсеместной архитектурой после того, как Intel отказалась от процессоров для мобильных устройств, в то время как процессоры MIPS для телефонов не появлялись уже много лет.Arm — это архитектура ЦП, используемая всеми современными смартфонами в экосистемах Android и Apple. Процессоры Arm также выходят на рынок ПК через Windows на Arm и специальный процессор Apple M1 для Mac. В связи с тем, что война Arm против Intel CPU вот-вот разгорится, вот все, что вам нужно знать о Arm против x86.
Объяснение архитектуры ЦП
Центральный процессор (ЦП) — это «мозг» вашего устройства, но он не совсем умный. ЦП работает только тогда, когда ему даны очень конкретные инструкции — соответственно называемые набором инструкций — которые говорят процессору перемещать данные между регистрами и памятью или выполнять вычисления с использованием определенной исполнительной единицы (например, умножения или вычитания).Уникальные аппаратные блоки ЦП требуют разных инструкций. Они, как правило, масштабируются с помощью более сложных и мощных процессоров. Желаемые инструкции также могут повлиять на конструкцию оборудования, как мы вскоре увидим.
Что такое SoC? Все, что вам нужно знать о наборах микросхем для смартфонов
Приложения, которые запускаются на вашем телефоне, не записываются в инструкции ЦП; это было бы безумием с сегодняшними крупными кроссплатформенными приложениями, чем работающими на различных чипах. Вместо этого приложения, написанные на различных языках программирования более высокого уровня (например, Java или C ++), соответствуют определенным наборам инструкций, чтобы они правильно работали на Arm, x86 или других процессорах.Эти инструкции далее декодируются в операции микрокода в ЦП, что требует места на кремнии и питания. Если вам нужен ЦП с наименьшим энергопотреблением, простота набора команд имеет первостепенное значение. Однако более высокая производительность может быть получена от более сложного оборудования и инструкций за счет энергопотребления. Это фундаментальное различие между историческими подходами Arm и Intel к проектированию процессоров.
x86 традиционно нацелен на максимальную производительность, энергоэффективность Arm
Arm основан на RISC (вычислениях с сокращенным набором команд), а Intel (x86) — на CISC (вычислениях со сложными наборами команд).Инструкции процессора Arm в разумной степени атомарны, с очень тесной корреляцией между количеством инструкций и микрооперациями. Для сравнения, CISC предлагает гораздо больше инструкций, многие из которых выполняют несколько операций (например, оптимизированные математические вычисления и перемещение данных). Это приводит к лучшей производительности, но большему энергопотреблению при декодировании этих сложных инструкций.
Эта связь между инструкциями и конструкцией аппаратного обеспечения процессора и составляет архитектуру центрального процессора. Таким образом, архитектуры ЦП могут быть спроектированы для различных целей, таких как экстремальное вычисление чисел, низкое энергопотребление или минимальная площадь кремния.Это ключевое отличие при сравнении Arm и x86 с точки зрения процессоров, поскольку первое основано на более низком энергопотреблении, наборе команд и аппаратном обеспечении.
Современные 64-битные архитектуры ЦП
Сегодня 64-битные архитектуры широко используются в смартфонах и ПК, но так было не всегда. Телефоны переходили на этот рынок только в 2012 году, примерно через десять лет после компьютеров. В двух словах, 64-битные вычисления используют регистры и адреса памяти, достаточно большие для использования 64-битных (1 и 0) длинных типов данных.Помимо совместимого оборудования и инструкций, вам также понадобится 64-разрядная операционная система, например Android.
Ветераны индустрии, возможно, помнят шумиху, когда Apple представила свой первый 64-битный процессор, опередив своих конкурентов Android. Переход на 64-битную архитектуру не изменил повседневные вычисления. Однако важно эффективно выполнять математические вычисления при использовании чисел с плавающей запятой высокой точности. 64-битные регистры также улучшают точность 3D-рендеринга, скорость шифрования и упрощают адресацию более 4 ГБ ОЗУ.
Сегодня обе архитектуры поддерживают 64-битную архитектуру, но недавно появилась мобильная версия
ПК перешли на 64-битную архитектуру задолго до появления смартфонов, но не Intel изобрела современную архитектуру x86-64 (также известную как x64). Эта награда принадлежит объявлению AMD от 1999 года о модернизации существующей архитектуры Intel x86. Альтернативная архитектура Intel IA64 Itanium отошла на второй план.
Arm представила свою 64-битную архитектуру ARMv8 в 2011 году. Вместо того, чтобы расширять свой 32-битный набор инструкций, Arm предлагает чистую 64-битную реализацию.Для этого архитектура ARMv8 использует два состояния выполнения: AArch42 и AArch64. Как следует из названий, один предназначен для запуска 32-разрядного кода, а другой — для 64-разрядного. Прелесть дизайна ARM заключается в том, что процессор может легко переключаться из одного режима в другой во время его нормального выполнения. Это означает, что декодер для 64-битных инструкций представляет собой новую конструкцию, которая не требует поддержки совместимости с 32-битной эрой, но процессор в целом остается обратно совместимым. Однако Arm указала, что будущие процессоры ARMv9 Cortex-A будут 64-разрядными только к 2023 году, что отключит поддержку старых 32-разрядных приложений и операционных систем на этих процессорах следующего поколения.Фактически, небольшие процессоры Cortex-A510 2021 года и мощные процессоры Cortex-X2 уже являются только 64-разрядными.
Подробнее: Arm Cortex-X2, A710 и A510: подробное описание: объяснение конструкции процессоров Armv9
Гетерогенные вычисления Arm выиграли у мобильных
Архитектурные различия, описанные выше, частично объясняют текущие успехи и проблемы, с которыми сталкиваются два гиганта микросхемы. Подход Arm с низким энергопотреблением идеально соответствует требованиям к расчетной тепловой мощности (TDP) 3,5 Вт для мобильных устройств, но при этом производительность увеличивается до уровня чипов Intel для ноутбуков.Между тем, типичные Intel Core i7 и i9 с TDP 100 Вт вместе с конкурирующими наборами микросхем от AMD выигрывают в серверах и высокопроизводительных настольных компьютерах, но исторически с трудом сокращаются до уровня ниже 5 Вт. Посмотрите на сомнительный состав Atom.
Конечно, мы не должны забывать и о той роли, которую процессы производства кремния сыграли в значительном повышении энергоэффективности за последнее десятилетие. Вообще говоря, транзисторы ЦП меньшего размера потребляют меньше энергии. Intel застряла в попытках выйти за рамки собственного 14-нм техпроцесса 2014 года, а 10-нм чипы начнут появляться в 2021 году.За это время наборы микросхем для смартфонов перешли с 20-нм на 14-, 10- и 7-нанометровую конструкцию, а с 2021 года на рынке появится 5-нанометровая технология. Это было достигнуто просто за счет конкуренции между компаниями Samsung и TSMC. Это также частично помогло AMD сократить отставание от своего конкурента x86-64, выпустив новейшие 7-нм процессоры Ryzen.
Однако одна уникальная особенность архитектуры Arm сыграла особенно важную роль в поддержании низкого уровня TDP для мобильных приложений — гетерогенные вычисления. Идея достаточно проста: построить архитектуру, которая позволяет различным частям ЦП (с точки зрения производительности и мощности) работать вместе для повышения эффективности.
Способность Arm распределять рабочие нагрузки между высокопроизводительными и низкопроизводительными ядрами ЦП является благом для энергоэффективности
Arm по этой идее был МАЛЕНЬКИЙ еще в 2011 году с большим ядром Cortex-A15 и маленьким ядром Cortex-A7. Идея использования больших вышедших из строя ядер ЦП для требовательных приложений и энергоэффективных упорядоченных ЦП для фоновых задач — это то, что сегодня пользователи смартфонов принимают как должное, но потребовалось несколько попыток, чтобы сгладить эту формулу.Компания Arm основывалась на этой идее с DynamIQ и архитектурой ARMAv8.2 в 2017 году, позволяя различным процессорам находиться в одном кластере, совместно используя ресурсы памяти для гораздо более эффективной обработки. DynamIQ также поддерживает конструкцию ЦП 2 + 6, которая все чаще встречается в микросхемах среднего уровня.
Связано: Одноядерные или многоядерные процессоры: что лучше для смартфонов?
Конкурирующие Intel процессоры Atom без гетерогенных вычислений не могут сравниться с балансом производительности и эффективности Arm.Потребовалось до 2020 года для проектов Intel Foveros, Embedded Multi-die Interconnect Bridge (EMIB) и Hybrid Technology, чтобы создать конкурирующую микросхему — 10-нм Lakefield. Lakefield сочетает в себе одно высокопроизводительное ядро Sunny Cove с четырьмя энергоэффективными ядрами Tremont, а также графические возможности и возможности подключения. Однако даже этот пакет нацелен на подключенные ноутбуки с TDP 7 Вт, который все еще слишком высок для смартфонов.
Intel Lakefield с гибридной технологией использует те же принципы проектирования, что и Arm’s big.LITTLE
Сегодня все чаще идет борьба между Arm и x86 в сегменте ноутбуков с TDP мощностью менее 10 Вт, где Intel масштабируется вниз, а Arm масштабируется все более успешно. Переход Apple на собственные чипы Arm для Mac является ярким примером растущего охвата производительности архитектуры Arm, отчасти благодаря гетерогенным вычислениям и индивидуальной оптимизации, сделанной Apple.
Ядра Custom Arm и наборы инструкций
Еще одно важное различие между Arm и Intel заключается в том, что последняя контролирует весь процесс от начала до конца и напрямую продает свои чипы.Arm просто продает лицензии. Intel сохраняет свою архитектуру, дизайн процессоров и даже производство полностью собственными силами. Arm, для сравнения, предлагает множество продуктов таким партнерам, как Apple, Samsung и Qualcomm. Они варьируются от готовых дизайнов ядер ЦП, таких как Cortex-A78 и A710, проектов, созданных в партнерстве в рамках программы Arm CXC, и лицензий на пользовательскую архитектуру, которые позволяют таким компаниям, как Apple и Samsung, создавать собственные ядра ЦП и даже вносить изменения в них. набор инструкций.
Подробнее: Первые компьютеры Apple на базе Arm включают в себя новые MacBook и Mac Mini
Создание собственных процессоров — дорогостоящий и сложный процесс, но правильное выполнение может привести к впечатляющим результатам.Процессоры Apple демонстрируют, как изготовленное на заказ оборудование и инструкции значительно приближают производительность Arm к стандартным x86-64 и даже выше. Хотя ядра Mongoose от Samsung были менее успешными и в конечном итоге прекратили свое существование.
Apple намерена постепенно заменить процессоры Intel в своих продуктах Mac на собственные микросхемы на базе Arm. Apple M1 — первая микросхема в этом направлении, на которой установлены новейшие MacBook Air, Pro и Mac Mini. M1 может похвастаться некоторыми впечатляющими улучшениями производительности, что говорит о том, что высокопроизводительные ядра Arm способны конкурировать с x86-64 в более требовательных вычислительных сценариях.Однако помните, что Apple сравнивает процессоры класса портативных компьютеров, а не настольные компьютеры.
На момент написания самый мощный суперкомпьютер в мире, Fugaku, работал на Arm
Архитектура x84-64, используемая Intel и AMD, остается впереди с точки зрения чистой производительности в области потребительского оборудования. Но в настоящее время Arm является очень конкурентоспособным в сегментах продуктов, где высокая производительность и энергоэффективность остаются ключевыми, включая рынок серверов. На момент написания самый мощный в мире суперкомпьютер впервые работал на ядрах ЦП Arm.Его SoC A64FX разработан Fujitsu и первым использует архитектуру Armv8-A SVE.
Совместимость программного обеспечения
Как мы упоминали ранее, приложения и программное обеспечение должны быть скомпилированы для архитектуры ЦП, на которой они работают. Исторический союз между процессорами и экосистемами (такими как Android на Arm и Windows на x86) означал, что совместимость никогда не вызывала особой озабоченности, поскольку приложениям не нужно было работать на нескольких платформах и архитектурах. Однако рост кроссплатформенных приложений и операционных систем, работающих на нескольких архитектурах ЦП, меняет эту картину.
Mac от Apple на базе Arm, Google Chrome OS и Microsoft Windows on Arm — все это современные примеры, когда программное обеспечение должно работать как на Arm, так и на x86-64 архитектурах. Компиляция нативного программного обеспечения для обоих является вариантом для новых приложений и разработчиков, желающих вложить средства в перекомпиляцию. Чтобы заполнить пробелы, эти платформы также полагаются на эмуляцию кода. Другими словами, перевод кода, скомпилированного для одной архитектуры ЦП, для работы на другой. Это менее эффективно и снижает производительность по сравнению с собственными приложениями, но в настоящее время возможна хорошая эмуляция для обеспечения работы приложений.
После многих лет разработки эмуляция Windows on Arm находится в довольно хорошем состоянии для большинства приложений. Приложения Android работают на Intel Chromebook по большей части прилично. У Apple есть собственный инструмент перевода, получивший название Rosetta 2, который также поддерживает устаревшие приложения Mac. Но все три страдают от потери производительности по сравнению с приложениями, скомпилированными в собственном коде.
Arm vs x86: последнее слово
За последнее десятилетие соперничества Arm и x86, Arm стал лучшим выбором для устройств с низким энергопотреблением, таких как смартфоны.Эта архитектура теперь также широко используется в ноутбуках и других устройствах, где требуется повышенная энергоэффективность. Несмотря на проигрыш в области телефонов, усилия Intel по снижению энергопотребления с годами также улучшились: гибридные идеи, такие как Lakefield и Alder Lake, теперь имеют гораздо больше общего с традиционными процессорами Arm, используемыми в телефонах.
Тем не менее, Arm и x86 по-прежнему сильно отличаются с инженерной точки зрения, и у них по-прежнему есть свои сильные и слабые стороны. Однако варианты использования потребителями этих двух архитектур становятся нечеткими, поскольку экосистемы все чаще поддерживают обе архитектуры.Тем не менее, хотя в сравнении Arm и x86 есть кроссовер, именно Arm, несомненно, останется архитектурой выбора для индустрии смартфонов в обозримом будущем. Архитектура также демонстрирует большие перспективы в плане вычислительной мощности и эффективности портативного компьютера.
.