ARMv9, набор регистров и инструкции для процессоров, отличных от x86

Несколько недель назад, ARM представил девятое поколение набора регистров и инструкций, используемых в процессорах с одноименным ISA. ARMv9 - это имя, под которым была названа новая версия этой ISA, которая будет использоваться в будущих SoC для устройств PostPC. Что такое ARMv9 и что нового в предыдущих версиях, как будут выглядеть будущие процессоры ARM?

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

ARMv9

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

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

Масштабируемые векторные расширения 2

СВЭ ARMv9

Японская компания Fujitsu создала для своего ядра ARM серию проприетарных расширений под названием SVE, что расшифровывается как Scalable Vector Extensions. По его названию вы, возможно, догадались, что речь идет о наборе инструкций SIMD. Не будем забывать, что в процессорах с ISA ARM в течение многих лет использовались инструкции Neon. Которая будет заменена инструкциями SVE2 в ARMv9.

SVE был создан Fujitsu для своего суперкомпьютера Fugaku, который использует его ядра A64-FX. Намерение? Воспользуйтесь преимуществами параллелизма данных, необходимого для научных вычислений, в которых используются числа с более высокой точностью. Это переводится в гораздо большие блоки SIMD и, следовательно, в большее количество битов.

Поскольку интересы ARM заключаются в том, чтобы вывести свои ядра на рынок высокопроизводительных вычислений и серверов, они решили принять SVE и объединить его с Neon для создания SVE2. Самое большое преимущество, которое SVE добавляет Neon? Эти инструкции не зависят от размера, поэтому нет необходимости иметь версию каждой инструкции для разных размеров, как в случае с инструкциями AVX на x86.

Области памяти в ARMv9

Reinos ARMv9

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

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

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

Расширения тегов памяти

Расширения тегов памяти ARM

Они не новы для ARMv9, а скорее для версии 8.5. Его полезность? Это механизм, отвечающий за отслеживание всех незаконных обращений к памяти, сделанных программами. Незаконный доступ - это не что иное, как доступ к адресу памяти, к которому программа не имеет разрешения. Какая от этого польза? Поскольку это помогает избежать так называемого переполнения буфера, общей проблемы безопасности для всех процессоров, которая возникает, когда объем копируемых данных превышает резерв памяти, записывая неожиданный код в соседние адреса памяти.

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

MTE не является частью самого ISA, но представляет собой механизм, реализованный в северном мосте процессоров ARMv9, который отслеживает все обращения к памяти и функционирует так, чтобы избежать переполнения памяти прозрачным образом.

ARMv9 только для дата-центров и серверов?

Дата центр

Новинки ISA ARMv9, которые мы описали в предыдущих разделах, имеют ярко выраженную специфику и не имеют ничего общего с использованием в классических устройствах, в которых обычно встречается ISA ARM. Из всех них он мощно называет SVE, поскольку одной из причин, по которой вы обычно не видите большие блоки SIMD в процессорах для устройств PostPC, является огромное потребление энергии, которое предполагает их использование.

На данный момент ARM анонсирует только два ядра - это два из семейства Neoverse. С одной стороны, NeoVerse V1 под кодовым названием «Zeus», а с другой - Neoverse N2 под кодовым именем «Perseus». Это не ядра, которые вы увидите в смартфоне будущего, а в центрах обработки данных и серверах для высокопроизводительных вычислений таких компаний, как Amazon AWS, Oracle, Tencent, Google и т. Д.

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