Функціональний блок intel Native Loopback Accelerator (AFU)
Про цей документ
Конвенції
Таблиця 1. Умовні позначення в документі
Конвенція | опис |
# | Передує команді, яка вказує, що команду потрібно ввести як root. |
$ | Вказує, що команду потрібно ввести як користувач. |
Цей шрифт | Fileімена, команди та ключові слова друкуються цим шрифтом. Довгі командні рядки друкуються цим шрифтом. Хоча довгі командні рядки можуть переходити до наступного рядка, повернення не є частиною команди; не натискайте enter. |
Вказує, що текст покажчика місця заповнення, що з’являється між кутовими дужками, потрібно замінити відповідним значенням. Не вводьте кутові дужки. |
Акроніми
Таблиця 2. Акроніми
Акроніми | Розширення | опис |
AF | Функція прискорювача | Зібраний образ апаратного прискорювача, реалізований у логіці FPGA, який прискорює програму. |
ЗСУ | Функціональний блок прискорювача | Апаратний прискорювач, реалізований у логіці FPGA, який знімає обчислювальну операцію для програми з ЦП для підвищення продуктивності. |
API | Інтерфейс прикладного програмування | Набір визначень підпрограм, протоколів та інструментів для створення програмних додатків. |
ASE | Середовище моделювання AFU | Середовище спільного моделювання, яке дозволяє використовувати ту саму головну програму та AF у середовищі моделювання. ASE є частиною Intel® Acceleration Stack для FPGA. |
CCI-P | Основний інтерфейс кешу | CCI-P — це стандартний інтерфейс AFU, який використовується для зв’язку з хостом. |
CL | Лінія кешу | 64-байтовий рядок кешу |
DFH | Заголовок функції пристрою | Створює пов’язаний список заголовків функцій, щоб забезпечити розширюваний спосіб додавання функцій. |
FIM | Менеджер інтерфейсу FPGA | Апаратне забезпечення FPGA, що містить блок інтерфейсу FPGA (FIU) і зовнішні інтерфейси для пам’яті, мережі тощо.
Функція прискорювача (AF) взаємодіє з FIM під час виконання. |
ПФР | Блок інтерфейсу FPGA | FIU — це рівень інтерфейсу платформи, який діє як міст між інтерфейсами платформи, такими як PCIe*, UPI, і інтерфейсами на стороні AFU, такими як CCI-P. |
продовження... |
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Акроніми | Розширення | опис |
MPF | Фабрика властивостей пам'яті | MPF — це базовий будівельний блок (BBB), який AFU можуть використовувати для забезпечення операцій формування трафіку CCI-P для транзакцій із FIU. |
повідомлення | повідомлення | Повідомлення – контрольне повідомлення |
NLB | Рідна Loopback | NLB виконує читання та запис у канал CCI-P, щоб перевірити з’єднання та пропускну здатність. |
RdLine_I | Прочитати рядок недійсний | Запит на читання пам’яті з підказкою кешу FPGA встановлено як недійсну. Рядок не кешується в FPGA, але може спричинити забруднення кешу FPGA.
Примітка: Кеш tag відстежує статус запитів для всіх невиконаних запитів на Intel Ultra Path Interconnect (Intel UPI). Таким чином, навіть якщо RdLine_I позначено як недійсний після завершення, він споживає кеш tag тимчасово для відстеження статусу запиту через UPI. Ця дія може призвести до видалення рядка кешу, що призведе до забруднення кешу. АвансtagВикористання RdLine_I полягає в тому, що він не відстежується каталогом ЦП; таким чином, це запобігає відстеженню від ЦП. |
RdLine-S | Прочитати спільний рядок | Запит на читання пам’яті з підказкою кешу FPGA встановлено на спільний доступ. Робиться спроба зберегти його в кеші FPGA у загальному стані. |
WrLine_I | Написати недійсний рядок | Запит на запис у пам’ять із підказкою кешу FPGA, встановленою на Недійсну. ПФР записує дані без наміру зберігати дані в кеші FPGA. |
WrLine_M | Написати змінений рядок | Запит на запис у пам’ять із підказкою кешу FPGA, встановленою на Modified. ПФР записує дані та залишає їх у кеші FPGA у зміненому стані. |
Глосарій прискорення
Таблиця 3. Глосарій стека прискорення для процесора Intel Xeon® із FPGA
термін | Абревіатура | опис |
Intel Acceleration Stack для процесора Intel Xeon® із FPGA | Стек прискорення | Набір програмного забезпечення, вбудованого програмного забезпечення та інструментів, які забезпечують оптимізоване з’єднання між FPGA Intel і процесором Intel Xeon. |
Intel FPGA Programmable Acceleration Card (Intel FPGA PAC) | Intel FPGA PAC | Карта прискорювача PCIe FPGA. Містить менеджер інтерфейсу FPGA (FIM), який з’єднується з процесором Intel Xeon через шину PCIe. |
Функціональний блок Native Loopback Accelerator (AFU)
Нативна петля (NLB) AFU Overview
- НББ сample AFU складаються з набору Verilog і System Verilog files для перевірки читання та запису в пам’ять, пропускної здатності та затримки.
- Цей пакет містить три AFU, які можна створити з одного джерела RTL. Ваша конфігурація вихідного коду RTL створює ці AFU.
NLB Sample Функція прискорення (AF)
$OPAE_PLATFORM_ROOT/hw/sampУ каталозі les зберігається вихідний код для наступних NLBample AFU:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Примітка: $DCP_LOC/hw/sampкаталог les зберігає файли NLBample вихідний код AFUs для пакета випуску 1.0.
Щоб зрозуміти NLB sampСтруктуру вихідного коду AFU та способи її створення див. в одному з наведених нижче коротких посібників (залежно від того, який Intel FPGA PAC ви використовуєте):
- Якщо ви використовуєте Intel PAC із Intel Arria® 10 GX FPGA, зверніться до Intel Programmable Acceleration Card із Intel Arria 10 GX FPGA.
- Якщо ви використовуєте Intel FPGA PAC D5005, зверніться до Короткого посібника користувача Intel Acceleration Stack для Intel FPGA Programmable Acceleration Card D5005.
Пакет випуску містить наступні три sample AFs:
- Режим NLB 0 AF: для виконання тесту lpbk1 потрібна утиліта hello_fpga або fpgadiag.
- Режим NLB 3 AF: потрібна утиліта fpgadiag для виконання тестів trupt, читання та запису.
- Режим 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 або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Малюнок 1. Обгортка верхнього рівня Native Loopback (nlb_lpbk.sv).
Таблиця 4. NLB Files
File Ім'я | опис |
nlb_lpbk.sv | Обгортка верхнього рівня для NLB, яка створює екземпляр запитувача та арбітра. |
арбітр.св | Створює екземпляр тесту AF. |
requestor.sv | Приймає запити від арбітра та форматує запити відповідно до специфікації CCI-P. Також реалізує керування потоком. |
nlb_csr.sv | Реалізує 64-розрядні регістри керування читанням/записом і статусом (CSR). Регістри підтримують як 32-, так і 64-бітове читання та запис. |
nlb_gram_sdp.sv | Реалізує загальну двопортову ОЗУ з одним портом запису та одним портом читання. |
NLB є еталонною реалізацією AFU, сумісної з довідковим посібником Intel Acceleration Stack для процесора Intel Xeon із FPGA Core Cache Interface (CCI-P). Основною функцією NLB є перевірка підключення хоста за допомогою різних шаблонів доступу до пам’яті. NLB також вимірює пропускну здатність і затримку читання/запису. Перевірка пропускної здатності має такі параметри:
- 100% прочитано
- 100% пишу
- 50% читає і 50% пише
Пов'язана інформація
- Короткий посібник із стека прискорення Intel для програмованої карти прискорення Intel із Arria 10 GX FPGA
- Довідковий посібник із стека прискорення для процесора Intel Xeon із інтерфейсом ядра кешу FPGA (CCI-P)
- Короткий посібник зі стеку Intel Acceleration Stack для програмованої плати Intel FPGA D5005
Власне петлеве керування та опис регістра стану
Таблиця 5. Назви, адреси та описи CSR
Байтова адреса (OPAE) | Слово Адреса (CCI-P) | Доступ | Ім'я | Ширина | опис |
0x0000 | 0x0000 | RO | DFH | 64 | Заголовок функції пристрою AF. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID низький. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID високий. |
0x0018 | 0x0006 | Rsvd | 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 | Програмне забезпечення призначає ID переривання APIC і вектор пристрою. |
Карта зсуву DSM | |||||
0x0040 | 0x0010 | RO | DSM_STATUS | 32 | Статус перевірки та реєстр помилок. |
Таблиця 6. Бітові поля CSR із Exampлес
У цій таблиці наведено бітові поля CSR, які залежать від значення CSR_NUM_LINES, . У вихampнижче = 14.
Ім'я | Бітове поле | Доступ | опис |
CSR_SRC_ADDR | [63:] | RW | 2^(N+6)МБ вирівняної адреси вказує на початок буфера читання. |
[-1:0] | RW | 0x0. | |
CSR_DST_ADDR | [63:] | RW | 2^(N+6)МБ вирівняної адреси вказує на початок буфера запису. |
[-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 і XNUMX. | |
[4:2] | RW | cr_mode, налаштовує тестовий режим. Допустимі такі значення: | |
• 3'b000: LPBK1 | |||
• 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 для пристрою. | |
DSM_STATUS | [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] налаштовує тестовий режим. Доступні такі чотири тести:
- LPBK1: Це тест копіювання пам’яті. AF копіює CSR_NUM_LINES з буфера джерела в буфер призначення. Після завершення тесту програмне забезпечення порівнює вихідний і кінцевий буфери.
- читати: Цей тест підкреслює шлях читання та вимірює пропускну здатність читання або затримку. AF читає CSR_NUM_LINES, починаючи з CSR_SRC_ADDR. Це лише перевірка пропускної здатності або затримки. Він не перевіряє зчитані дані.
- Напишіть: Цей тест підкреслює шлях запису та вимірює пропускну здатність або затримку запису. AF читає CSR_NUM_LINES, починаючи з CSR_SRC_ADDR. Це лише перевірка пропускної здатності або затримки. Це не перевіряє записані дані.
- TRPUT: Цей тест поєднує читання та запис. Він читає 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 Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Програмне забезпечення готує вихідний і кінцевий буфер пам’яті. Цей препарат є специфічним для тесту.
- Програмне забезпечення записує CSR_CTL[2:0]= 0x1. Цей запис переводить тест зі скидання в режим конфігурації. Конфігурацію можна продовжити, лише коли CSR_CTL[0]=1 & CSR_CTL[1]=1.
- Програмне забезпечення налаштовує параметри тесту, такі як src, destaddress, csr_cfg, num lines тощо.
- Програмний CSR записує CSR_CTL[2:0]= 0x3. AF починає виконання тесту.
- Завершення тесту:
- Апаратне забезпечення завершується, коли тест завершується або виявляє помилку. Після завершення апаратний AF оновлює DSM_STATUS. Програмне забезпечення опитує DSM_STATUS[31:0]==1, щоб виявити завершення тесту.
- Програмне забезпечення може примусово завершити тест, написавши CSR writes CSR_CTL[2:0]=0x7. Апаратне AF оновлює DSM_STATUS.
Історія версій документа для функціонального блоку Native Loopback Accelerator (AFU) Посібник користувача
Версія документа | Прискорення Intel Стекова версія | Зміни |
2019.08.05 | 2.0 (підтримується Intel
Quartus Prime Pro Edition 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
Quartus Prime Pro Edition 17.1.1) і 1.0 (підтримується з Intel Quartus Prime Pro Edition 17.0.0) |
Оновлено розташування вихідного коду для NLB sampле ЗСУ в NLB Sample Функція прискорення (AF) розділ. |
2018.04.11 | 1.0 (підтримується Intel
Quartus Prime Pro Edition 17.0.0) |
Початковий випуск. |
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Документи / Ресурси
![]() |
Функціональний блок intel Native Loopback Accelerator (AFU) [pdfПосібник користувача Функціональний блок Native Loopback Accelerator AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU |