Особенности архитектуры ARMv8
Процессоры ARM доказали свое преимущество во встроенных системах, мобильных телефонах, планшетах, но их использование для более серьезных приложений главным образом было ограничено возможностями 32-разрядной адресации. В качестве промежуточного решения в процессорах Cortex-A15, при сохранении общей 32-разрядной архитектуры, для адресации к оперативной памяти до 1 Тбайт было предложено расширение 40-bit Large Physical Address Extensions. Однако, это решение не обеспечивало будущее развитие процессоров фирмы ARM как в уже завоеванных областях, так и в новых областях применения типа серверов и т.п..
Архитектура ARMv8 была представлена в конце 2011 года и стала восьмой по счету версией архитектуры ARM, отсюда и ее название — ARMv8 (рис.21. 6).
Рис. 21.6. Архитектура ARMv8 в ряду других архитектур ARM
В архитектуре ARMv8-А реализован один из наиважнейших принципов при внедрении новых технологий - абсолютно полная обратная программная совместимость с версией архитектуры ARMv7-А (режим AArch32).
Режим AArch64 является принципиально новым решением с новым набором команд A64. Со временем, когда не нужно будет поддерживать унаследованные приложения, планируется отказаться от режима AArch32.
В архитектуре ARMv8 по сравнению с архитектурой ARMv7 более полно отражается идеология архитектуры RISC, созданной не для встроенных систем, а для решения классических задач счета и обработки данных. В архитектуре ARMv7 и в ее предшественниках изначально были заложены свойства, уходящие корнями в требования со стороны встроенных систем и диктующие необходимость специальным образом использовать регистры, чтобы успевать в реальном времени обрабатывать прерывания. Эти особенности не находят свое отражение в режиме AArch64, поэтому в архитектуре ARMv8 были совмещены обе системы команд. Набор команд режима AArch64 адаптирован к работе в одном из двух режимов в зависимости от операционной системы. Если установлена операционная система Linux или другие распространенные клоны UNIX, то выбирается режим LP64, где целые числа имеют длину 32 разряда и длинные целые — 64 разряда, а если операционная система Windows, то режим LLP64, где целые и длинные целые имеют длину 32 разряда, а очень длинные целые (long long integers) — 64 разряда.
В режиме AArch64 используется новый набор команд А64 с 32-разрядными командами и 5-разрядными указателями регистров для доступа к 32/64/128-разрядным регистрам. При выполнении большинства команд доступен выделенный нулевой регистр. Указатель стека и счетчик команд не входят в группу регистров.
Новые команды поддерживают 32- и 64-разрядные данные. В наборе А64 отсутствует несколько команд загрузки или хранения произвольной длины. Поддержка архитектуры SIMD и операций с плавающей точкой схожи с поддержкой предыдущей версией архитектуры – ARMv7А.
В архитектуре ARMv8 используются четыре иерархических уровня привилегий (EL0-EL3). Уровень EL3 поддерживает технологию TrustZone. Эта система поддерживает множество 32- и 64-разрядных конфигураций безопасной виртуализации.
Рис. 20.8
В архитектуре появился режим Embedded Trace Mode 4 (ETM4), который расширяет адреса до 64 разрядов. Он позволяет выявить «промежуточные этапы» выполнения команд, что эффективнее, чем предоставление информации об адресах.
Аппаратная поддержка криптографии, способна ускорить процессы, использующие шифрование, в десятки раз.
Архитектура ARMv8 сохраняет и приумножает ключевые функции своей предшественницы, такие, как TrustZone, SIMD-команды NEON и виртуализация, которые позволяют устанавливать на мобильные платформы гипервизоры виртуальных машин, обеспечивающие работу нескольких гостевых операционных систем.
Cortex-A53 и Cortex-A57 были первыми процессорами, в которых реализована архитектура ARMv8-A. Они имеют общую систему команд, почти неразличимы для приложений, но процессор Cortex-A57 быстрее и потребляет больше энергии. Наличие такой пары процессоров (рис. 21.8) позволяет устройству иметь два набора процессоров и в нужный момент переключаться на тот, который точнее соответствует текущей нагрузке.
Рис. 21. 8. Процессоры ARM 50-й серии
Условно процессор Cortex-A57 можно представить как процессор Cortex-A15 с 64-разрядной архитектурой, а процессор Cortex-A53 – как процессор Cortex-A7 с 64-разрядной архитектурой. Эти процессоры даже при выполнении программ для 32-разрядной архитектуры ARMv7-А на 20–30% быстрее предшественников.
Специально для встроенных систем будет создана сокращенная 32-разрядная версия архитектуры ARMv8-R.
Выводы
В архитектуре ARMv8 реализованы 2 режима Aarch32 (32-разрядный ARMv7 и 64-разрядный режим AArch64.
Основные особенности 64-разрядного режима AArch64:
Новый набор команд A64.
31 64-разрядный регистр общего назначения.
Отдельные регистры SP и PC.
Команды 32-разрядные и многие совпадают с командами архитектуры ARMv7.
Большинство команд работают как с 32-, так и с 64-разрядными аргументами.
Адреса 64-разрядные.
Реализовано расширение NEON.
С 16 до 32 увеличено количество 128-разрядных регистров, доступных через сопроцессоры NEON, VFPv4, криптокоманды AES, SHA.
Поддерживаются вычисления с числами с плавающей точкой двойной точности. Полная совместимость со стандартом обработки чисел с плавающей точкой IEEE 754.
Новая система исключений.
Дата добавления: 2015-09-29; просмотров: 3368;