intel-логотип

Функциональный блок Intel Native Loopback Accelerator (AFU)

intel-Native-Loopback-Accelerator-Functional-Unit-(AFU)-PRO

Об этом документе

Конвенции
Таблица 1. Условные обозначения документов

Соглашение Описание
# Предшествует команде, которая указывает, что команда должна быть введена как root.
$ Указывает, что команда должна быть введена пользователем.
Этот шрифт Fileимена, команды и ключевые слова печатаются этим шрифтом. Этим шрифтом печатаются длинные командные строки. Хотя длинные командные строки могут переноситься на следующую строку, возврат не является частью команды; не нажимайте ввод.
Указывает, что текст-заполнитель, который появляется между угловыми скобками, должен быть заменен соответствующим значением. Не вводите угловые скобки.

Сокращения
Таблица 2. Сокращения

Сокращения Расширение Описание
AF Ускоряющая функция Скомпилированный образ аппаратного ускорителя, реализованный в логике FPGA, который ускоряет приложение.
ВСУ Функциональный блок ускорителя Аппаратный ускоритель, реализованный в логике FPGA, который разгружает вычислительную операцию для приложения с ЦП для повышения производительности.
API Интерфейс прикладного программирования Набор определений подпрограмм, протоколов и инструментов для создания программных приложений.
АСЕ Среда моделирования ВСУ Среда совместного моделирования, позволяющая использовать одно и то же главное приложение и AF в среде моделирования. ASE является частью стека Intel® Acceleration Stack для FPGA.
ТПП-П Интерфейс основного кэша CCI-P — это стандартный интерфейс, который AFU используют для связи с хостом.
CL Линия кэша 64-байтовая строка кэша
ДФХ Заголовок функции устройства Создает связанный список заголовков функций, чтобы обеспечить расширяемый способ добавления функций.
ФИМ Менеджер интерфейсов ПЛИС Аппаратное обеспечение FPGA, содержащее блок интерфейса FPGA (FIU) и внешние интерфейсы для памяти, сети и т. д.

Функция ускорителя (AF) взаимодействует с FIM во время выполнения.

ПФР Блок интерфейса ПЛИС FIU — это уровень интерфейса платформы, который действует как мост между интерфейсами платформы, такими как PCIe*, UPI, и интерфейсами на стороне AFU, такими как CCI-P.
продолжение…

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

Сокращения Расширение Описание
МПФ Фабрика свойств памяти MPF — это базовый структурный блок (BBB), который AFU могут использовать для обеспечения операций формирования трафика CCI-P для транзакций с FIU.
Сообщ. Сообщение Сообщение – контрольное уведомление
НЛБ Родная петля NLB выполняет чтение и запись в канал CCI-P для проверки возможности подключения и пропускной способности.
РдЛайн_I Неверная строка чтения Запрос на чтение памяти, при этом указание кэша FPGA установлено как недействительное. Строка не кэшируется в FPGA, но может привести к загрязнению кэша FPGA.

Примечание: Кеш tag отслеживает статус всех невыполненных запросов на Intel Ultra Path Interconnect (Intel UPI).

Таким образом, даже если RdLine_I помечается как недействительный после завершения, он потребляет кеш. tag временно для отслеживания статуса запроса через UPI. Это действие может привести к удалению строки кэша, что приведет к загрязнению кэша. АдванtagСуть использования RdLine_I заключается в том, что он не отслеживается каталогом ЦП; таким образом, это предотвращает отслеживание со стороны ЦП.

РдЛайн-С Чтение общей строки Запрос на чтение памяти с указанием общего доступа к кэшу FPGA. Предпринимается попытка сохранить его в кэше FPGA в общем состоянии.
WrLine_I Неверная строка записи Запрос на запись в память, для подсказки кэша FPGA установлено значение «Недействительно». ПФР записывает данные, не намереваясь хранить их в кэше FPGA.
WrLine_M Записать измененную строку Запрос на запись в память, при этом для подсказки кэша FPGA установлено значение «Изменено». ПФР записывает данные и оставляет их в кэше FPGA в измененном состоянии.

Глоссарий по ускорению
Табл. 3. Стек ускорения для ЦП Intel Xeon® с ПЛИС Глоссарий

Срок Аббревиатура Описание
Intel Acceleration Stack для процессоров Intel Xeon® с FPGA Стек ускорения Набор программного обеспечения, встроенного ПО и инструментов, обеспечивающих оптимизированную по производительности связь между Intel FPGA и процессором Intel Xeon.
Плата программируемого ускорения Intel FPGA (Intel FPGA PAC) ПЛИС Intel PAC Карта ускорителя PCIe FPGA. Содержит диспетчер интерфейса FPGA (FIM), который соединяется с процессором Intel Xeon по шине PCIe.

Функциональный блок собственного шлейфового ускорителя (AFU)

Собственный шлейф (NLB) AFU закончилсяview

  • НЛБampЛе AFU состоят из набора Verilog и System Verilog. files для проверки чтения и записи памяти, пропускной способности и задержки.
  • Этот пакет включает в себя три AFU, которые вы можете собрать из одного источника RTL. Ваша конфигурация исходного кода RTL создает эти AFU.

НЛБ Сample Функция ускорения (AF)
$OPAE_PLATFORM_ROOT/хв/сampВ каталоге les хранится исходный код для следующих NLB.ampле ВСУ:

  • nlb_mode_0
  • nlb_mode_0_stp
  • nlb_mode_3

Примечание: $DCP_LOC/hw/sampВ каталоге les хранятся NLBample исходный код AFU для пакета выпуска 1.0.

Чтобы понять NLBampО структуре исходного кода AFU и способах ее создания см. в одном из следующих кратких руководств (в зависимости от того, какой Intel FPGA PAC вы используете):

  • Если вы используете Intel PAC с FPGA Intel Arria® 10 GX, см. раздел «Программируемая карта ускорения Intel с FPGA Intel Arria 10 GX».
  • Если вы используете Intel FPGA PAC D5005, обратитесь к Краткому руководству по стеку ускорения Intel для программируемой карты ускорения Intel FPGA D5005.

Пакет выпуска предоставляет следующие триampле АФ:

  • Режим NLB 0 AF: для выполнения теста lpbk1 требуется утилита hello_fpga или fpgadiag.
  • Режим NLB 3 AF: для выполнения тестов прерывания, чтения и записи требуется утилита fpgadiag.
  • Режим NLB 0 stp AF: для выполнения теста lpbak1 требуется утилита hello_fpga или fpgadiag.
    Примечание: nlb_mode_0_stp — это тот же AFU, что и nlb_mode_0, но с включенной функцией отладки Signal Tap.
    Утилиты fpgadiag и hello_fpga помогают соответствующему AF диагностировать, тестировать и составлять отчеты об оборудовании FPGA.

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

Рисунок 1. Собственная петлевая проверка (nlb_lpbk.sv) оболочка верхнего уровня

intel-Native-Loopback-Accelerator-Functional-Unit-(AFU)-1

Таблица 4. НЛБ Files

File Имя Описание
nlb_lpbk.sv Оболочка верхнего уровня для NLB, которая создает экземпляры запросчика и арбитра.
arbiter.sv Создает экземпляр тестового AF.
Requestor.sv Принимает запросы от арбитра и форматирует запросы согласно спецификации CCI-P. Также реализует управление потоком.
nlb_csr.sv Реализует 64-битные регистры управления и состояния чтения/записи (CSR). Регистры поддерживают как 32-, так и 64-битное чтение и запись.
nlb_gram_sdp.sv Реализует стандартную двухпортовую ОЗУ с одним портом записи и одним портом чтения.

NLB — это эталонная реализация AFU, совместимая со стеком ускорения Intel для процессоров Intel Xeon с FPGA Core Cache Interface (CCI-P). Справочное руководство. Основная функция NLB — проверка подключения хоста с использованием различных шаблонов доступа к памяти. NLB также измеряет пропускную способность и задержку чтения/записи. Тест пропускной способности имеет следующие параметры:

  • 100% прочитано
  • 100% пишите
  • 50% читает и 50% пишет.

Сопутствующая информация

  • Краткое руководство по стеку ускорения Intel для программируемой карты ускорения Intel с FPGA Arria 10 GX
  • Стек ускорения для процессоров Intel Xeon с FPGA Core Cache Interface (CCI-P) Справочное руководство
  • Краткое руководство по стеку ускорения Intel для программируемой платы ускорения Intel FPGA D5005

Описания регистров встроенного управления обратной связью и состояния
Таблица 5. Имена, адреса и описания CSR

 Байтовый адрес (OPAE) Слово Адрес (CCI-P)  Доступ  Имя  Ширина  Описание
0x0000 0x0000 RO ДФХ 64 Заголовок функции устройства AF.
0x0008 0x0002 RO АФУ_ИД_Л 64 Низкий уровень идентификатора АФ.
0x0010 0x0004 RO AFU_ID_H 64 AF ID высокий.
0x0018 0x0006 рсвд CSR_DFH_RSVD0 64 Обязательный Зарезервирован 0.
0x0020 0x0008 RO CSR_DFH_RSVD1 64 Обязательный Зарезервирован 1.
0x0100 0x0040 RW CSR_SCRATCHPAD0 64 Регистр блокнота 0.
0x0108 0x0042 RW CSR_SCRATCHPAD1 64 Регистр блокнота 2.
0x0110 0x0044 RW CSR_AFU_DSM_BASE L 32 Младшие 32 бита базового адреса AF DSM. Младшие 6 бит равны 4×00, поскольку адрес выровнен по размеру 64-байтовой строки кэша.
0x0114 0x0045 RW CSR_AFU_DSM_BASE H 32 Старшие 32 бита базового адреса AF DSM.
0x0120 0x0048 RW CSR_SRC_ADDR 64 Начальный физический адрес исходного буфера. Все запросы на чтение нацелены на этот регион.
0x0128 0x004A RW CSR_DST_ADDR 64 Начальный физический адрес буфера назначения. Все запросы на запись нацелены на этот регион
0x0130 0x004C RW CSR_NUM_LINES 32 Количество строк кэша.
0x0138 0x004E RW CSR_CTL 32 Управляет ходом теста, его запуском, остановкой и принудительным завершением.
0x0140 0x0050 RW CSR_CFG 32 Настраивает параметры теста.
0x0148 0x0052 RW CSR_INACT_THRESH 32 Порог бездействия.
0x0150 0x0054 RW CSR_INTERRUPT0 32 Программное обеспечение назначает устройству идентификатор APIC прерывания и вектор.
Карта смещения DSM
0x0040 0x0010 RO ДСМ_СТАТУС 32 Состояние теста и регистр ошибок.

Таблица 6. Битовые поля CSR с Exampле
В этой таблице перечислены битовые поля CSR, которые зависят от значения CSR_NUM_LINES. . В бывшемampле ниже = 14.

Имя Битовое поле Доступ Описание
CSR_SRC_ADDR [63:] RW Выровненный адрес 2^(N+6)MB указывает на начало буфера чтения.
[-1: 0] RW 0x0.
CSR_DST_ADDR [63:] RW Выровненный адрес 2^(N+6)MB указывает на начало буфера записи.
[-1: 0] RW 0x0.
CSR_NUM_LINES [31:] RW 0x0.
продолжение…
Имя Битовое поле Доступ Описание
  [-1: 0] RW Количество строк кэша для чтения или записи. Этот порог может быть разным для каждого тестового ФП.

Примечание: Убедитесь, что буферы источника и назначения достаточно велики для размещения строки кэша.

CSR_NUM_LINES должно быть меньше или равно .

Для следующих значений предположим =14. Затем CSR_SRC_ADDR и CSR_DST_ADDR принимают 2^20 (0x100000).
CSR_SRC_ADDR [31:14] RW Выровненный адрес размером 1 МБ.
[13:0] RW 0x0.
CSR_DST_ADDR [31:14] RW Выровненный адрес размером 1 МБ.
[13:0] RW 0x0.
CSR_NUM_LINES [31:14] RW 0x0.
[13:0] RW Количество строк кэша для чтения или записи. Этот порог может быть разным для каждого тестового ФП.

Примечание: Убедитесь, что буферы источника и назначения достаточно велики для размещения строки кэша.

Таблица 7. Дополнительные битовые поля CSR

Имя Битовое поле Доступ Описание
CSR_CTL [31:3] RW Сдержанный.
[2] RW Завершение силового теста. Записывает флаг завершения теста и другие счетчики производительности в csr_stat. После принудительного завершения теста состояние оборудования идентично состоянию непринудительного завершения теста.
[1] RW Запускает выполнение теста.
[0] RW Сброс теста активного низкого уровня. При низком значении все параметры конфигурации изменяются на значения по умолчанию.
CSR_CFG [29] RW cr_interrupt_testmode тестирует прерывания. Генерирует прерывание в конце каждого теста.
  [28] RW cr_interrupt_on_error отправляет прерывание при ошибке
      обнаружение.
  [27:20] RW cr_test_cfg настраивает поведение каждого тестового режима.
  [13:12] RW cr_chsel выбирает виртуальный канал.
  [10:9] RW cr_rdsel настраивает тип запроса на чтение. Кодировки имеют
      следующие допустимые значения:
      • 1'b00: RdLine_S
      • 2'b01: RdLine_I
      • 2'b11: Смешанный режим
  [8] RW cr_delay_en включает случайную вставку задержки между запросами.
  [6:5] RW Настраивает тестовый режим cr_multiCL-len. Допустимые значения: 0,1 и 3.
  [4:2] RW cr_mode, настраивает тестовый режим. Допустимы следующие значения:
      • 3'000: ЛПБК1
      • 3'b001: прочитать
      • 3'b010: Написать
      • 3'b011: ТРПУТ
продолжение…
Имя Битовое поле Доступ Описание
      Дополнительную информацию о тестовом режиме см. Тестовые режимы тема ниже.
[1] RW c_cont выбирает пролонгацию или завершение теста.

• Когда 1'b0, тест завершается. Обновляет статус CSR, когда

Достигнуто количество CSR_NUM_LINES.

• При значении 1'b1 тест переходит на начальный адрес после достижения счетчика CSR_NUM_LINES. В режиме пролонгации тест завершается только в случае ошибки.

[0] RW cr_wrthru_en переключается между типами запросов WrLine_I и Wrline_M.

• 1'b0: WrLine_M

• 1'b1: WrLine_I

CSR_INACT_THRESHOLD [31:0] RW Порог бездействия. Определяет длительность зависаний во время пробного запуска. Подсчитывает количество последовательных циклов простоя. Если счетчик бездействия

> CSR_INACT_THRESHOLD, запросы не отправляются, ответы не отправляются

получен, и установлен сигнал inact_timeout. Запись 1 в CSR_CTL[1] активирует этот счетчик.

CSR_INTERRUPT0 [23:16] RW Номер вектора прерывания для устройства.
[15:0] RW apic_id — это APIC OD для устройства.
ДСМ_СТАТУС [511:256] RO Дамп ошибок из тестового режима.
[255:224] RO Конец накладных расходов.
[223:192] RO Старт над головой.
[191:160] RO Количество записей.
[159:128] RO Количество чтений.
[127:64] RO Количество часов.
[63:32] RO Регистр ошибок теста.
[31:16] RO Сравнить и обменять счетчик успеха.
[15:1] RO Уникальный идентификатор для каждой записи статуса DSM.
[0] RO Флаг завершения теста.

Тестовые режимы
CSR_CFG[4:2] настраивает тестовый режим. Доступны следующие четыре теста:

  • ЛПБК1: Это тест копирования памяти. AF копирует CSR_NUM_LINES из исходного буфера в целевой буфер. По завершении теста программное обеспечение сравнивает буферы источника и назначения.
  • Читать: Этот тест проверяет путь чтения и измеряет пропускную способность чтения или задержку. AF считывает CSR_NUM_LINES, начиная с CSR_SRC_ADDR. Это всего лишь тест пропускной способности или задержки. Он не проверяет считанные данные.
  • Писать: Этот тест проверяет путь записи и измеряет пропускную способность записи или задержку. AF считывает CSR_NUM_LINES, начиная с CSR_SRC_ADDR. Это всего лишь тест пропускной способности или задержки. Он не проверяет записанные данные.
  • ТРПУТ: Этот тест объединяет операции чтения и записи. Он считывает CSR_NUM_LINES, начиная с местоположения CSR_SRC_ADDR, и записывает CSR_NUM_LINES в CSR_SRC_ADDR. Он также измеряет пропускную способность чтения и записи. Этот тест не проверяет данные. Чтение и запись не имеют зависимостей

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

Таблица 8. Режимы тестирования

Диагностика FPGA: fpgadiag
Утилита fpgadiag включает несколько тестов для диагностики, тестирования и составления отчетов об оборудовании FPGA. Используйте утилиту fpgadiag для запуска всех режимов тестирования. Дополнительные сведения об использовании утилиты fpgadiag см. в разделе fpgadiag в Руководстве по инструментам Open Programmable Acceleration Engine (OPAE).

NLB Mode0 Тестовый процесс Hello_FPGA

  1. Программное обеспечение инициализирует память состояния устройства (DSM) до нуля.
  2. Программное обеспечение записывает адрес BASE DSM в AFU. Запись CSR(DSM_BASE_H), CSRWrite(DSM_BASE_L)
  3. Программное обеспечение подготавливает буфер памяти источника и назначения. Этот препарат предназначен для конкретного теста.
  4. Программное обеспечение пишет CSR_CTL[2:0]= 0x1. Эта запись выводит тест из режима сброса и в режим конфигурации. Настройка может быть продолжена только тогда, когда CSR_CTL[0]=1 и CSR_CTL[1]=1.
  5. Программное обеспечение настраивает параметры теста, такие как src, destaddress, csr_cfg, количество строк и т. д.
  6. Программный CSR записывает CSR_CTL[2:0]= 0x3. AF начинает выполнение теста.
  7. Завершение теста:
    • Аппаратное обеспечение завершается, когда тест завершается или обнаруживается ошибка. По завершении аппаратный AF обновляет DSM_STATUS. Программное обеспечение опрашивает DSM_STATUS[31:0]==1, чтобы определить завершение теста.
    • Программное обеспечение может принудительно завершить тест, написав CSR пишет CSR_CTL[2:0]=0x7. Аппаратный AF обновляет DSM_STATUS.

История изменений документа для руководства пользователя функционального блока Native Loopback Accelerator (AFU)

Версия документа Intel Acceleration Версия стека Изменения
 2019.08.05 2.0 (поддерживается Intel

Квартус Прайм Про Версия

18.1.2) и 1.2 (поддерживается

Intel Quartus Prime Pro Edition 17.1.1)

В текущей версии добавлена ​​поддержка платформы Intel FPGA PAC D5005.
 2018.12.04 1.2 (поддерживается Intel

Quartus® Prime Pro Edition 17.1.1)

Сервисный релиз.
  2018.08.06 1.1 (поддерживается Intel

Квартус Прайм Про Версия

17.1.1) и 1.0 (поддерживается

Intel Quartus Prime Pro Edition 17.0.0)

Обновлено расположение исходного кода NLB.ampле ВСУ в НЛБ Сample Функция ускорения (AF) раздел.
 2018.04.11 1.0 (поддерживается Intel

Квартус Прайм Про Редакция 17.0.0)

Первоначальный выпуск.

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

Документы/Ресурсы

Функциональный блок Intel Native Loopback Accelerator (AFU) [pdf] Руководство пользователя
Функциональный блок собственного ускорителя обратной связи AFU, собственный обратный цикл, Функциональный блок ускорителя AFU, Функциональный блок AFU

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *