Intel Data Streaming Accelerator: что это такое и как он работает на процессоре

Будущее отношений между ЦП а память происходит при универсальной адресации, что требует для них новых типов модулей в процессоре, таких как ускоритель потоковой передачи данных. Но что это такое и как это улучшает производительность процессора?

Ускоритель потоковой передачи данных Intel

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

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

Пропускная способность равна задержке?

Мовиментос Датос

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

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

Пропускная способность - это просто скорость передачи. Например, у вас может быть 100 запросов на 1 ГБ / или 1 запрос на 100 ГБ / с, но нужно учитывать, что контроллер памяти процессора, отвечающий за управление доступом к нему, будет иметь большие трудности с первым случаем. чем со вторым.

Единицы перемещения данных

Portada-CPU-Generica-Placa-Base

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

Многие из этих инструкций устарели и имеют определенную задержку тактового цикла. Что, если бы мы добавили вспомогательный процессор, который работал бы в качестве мессенджера и мог бы разрешать эти запросы к ОЗУ или любой другой памяти в пределах того же адреса с меньшей задержкой? Что ж, производительность процессора увеличится и позволит ему сосредоточить тактовые циклы, которые обычно ждут выполнения новых инструкций.

Ну, Intel Ускоритель потоковой передачи данных основан на этом принципе и является одним из ключей к повышению производительности различных процессоров.

Ускоритель потоковой передачи данных Intel

Ускоритель потоковой передачи данных Diagrama

Как видно из названия, это ускоритель, то есть устройство, которое выполняет определенную задачу, которая в данном случае представляет собой передачу данных за меньшее время, чем это сделал бы ЦП. Особенность DSA заключается в том, что он разработан для одной из характеристик, которые Compute Express Link привносит с собой по сравнению с PCI Express 5.0, а именно: предоставлять согласованный доступ к оперативной памяти для всех периферийных устройств, подключенных к порту PCI Express, то есть они используют одни и те же адреса памяти.

Поэтому с его помощью проводят следующие операции:

  • Вы можете перемещать данные из ЦП в ОЗУ и наоборот.
  • Чтобы получить доступ к некогерентным пространствам памяти с другой адресацией памяти, вы можете выполнить преобразование адреса автоматически, поэтому технически мы сталкиваемся с обновленным модулем DMA.
  • Он также имеет доступ к постоянной или энергонезависимой памяти, поэтому он также может получать доступ к твердотельным накопителям NVMe, модулям Intel Optane, модулям NVDIMM и т. Д.
  • Через NTB и в серверной среде он дает вам доступ к другой оперативной или энергонезависимой памяти с другой платы в центре обработки данных или на сервере.
  • Он имеет встроенные функции для применения вышеуказанных пунктов к виртуальным машинам.

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

Инструкции Intel DSA

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

  • Переехать: классические инструкции по перемещению данных x86, которые знают те, кто написал ассемблер. Если у процессора есть один или несколько ускорителей потоковой передачи данных Intel, то он будет выполняться ими, а не ядрами ЦП.
  • DIF: это отвечает за выполнение процесса проверки целостности информации в памяти.
  • Генерация CRC: Создает контрольную сумму CRC для переданных данных.
  • Наполните: Он отвечает за многократное заполнение раздела памяти определенными данными, он идеально подходит для стирания содержимого части памяти, поскольку позволяет нам установить все биты в 0.
  • Для сравнения: Он используется для сравнения двух блоков памяти и проверки их идентичности.
  • Создание дельта-записи: Выполните проверку и сгенерируйте новый поток данных с разницей между ними.

Ускоритель потоковой передачи данных также может управлять несколькими устройствами хранения одновременно:

  • Включить выключить : позволяет подключать или отключать запоминающее устройство, будь то ОЗУ или энергонезависимое хранилище.
  • Прервать: прервать все запросы памяти к ОЗУ или другому устройству памяти.
  • Слив: запрашивает одновременное выполнение всех запросов к устройству памяти.

Список инструкций намного больше, но он таков, чтобы вы имели приблизительное представление о том, как работает этот новый блок, который Intel интегрировал в свои процессоры. Преимущества очевидны, и ожидается, что они будут еще больше увеличиваться на Sapphire Rapids.