Функциональный блок Intel Native Loopback Accelerator (AFU)
Об этом документе
Конвенции
Таблица 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) оболочка верхнего уровня
Таблица 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
- Программное обеспечение инициализирует память состояния устройства (DSM) до нуля.
- Программное обеспечение записывает адрес BASE DSM в AFU. Запись CSR(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Программное обеспечение подготавливает буфер памяти источника и назначения. Этот препарат предназначен для конкретного теста.
- Программное обеспечение пишет CSR_CTL[2:0]= 0x1. Эта запись выводит тест из режима сброса и в режим конфигурации. Настройка может быть продолжена только тогда, когда CSR_CTL[0]=1 и CSR_CTL[1]=1.
- Программное обеспечение настраивает параметры теста, такие как src, destaddress, csr_cfg, количество строк и т. д.
- Программный CSR записывает CSR_CTL[2:0]= 0x3. AF начинает выполнение теста.
- Завершение теста:
- Аппаратное обеспечение завершается, когда тест завершается или обнаруживается ошибка. По завершении аппаратный 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 |