Функционална единица на intel Native Loopback Accelerator (AFU)
Относно този документ
Конвенции
Таблица 1. Конвенции на документа
конвенция | Описание |
# | Предхожда команда, която показва, че командата трябва да бъде въведена като root. |
$ | Показва команда, която трябва да бъде въведена като потребител. |
Този шрифт | Fileимената, командите и ключовите думи са отпечатани с този шрифт. Дългите командни редове се отпечатват с този шрифт. Въпреки че дългите командни редове могат да преминават към следващия ред, връщането не е част от командата; не натискайте enter. |
Указва, че текстът на контейнера, който се появява между ъгловите скоби, трябва да бъде заменен с подходяща стойност. Не въвеждайте ъглови скоби. |
Съкращения
Таблица 2. Акроними
Съкращения | Разширяване | Описание |
AF | Функция ускорител | Компилиран образ на хардуерен ускорител, внедрен в FPGA логика, която ускорява приложение. |
AFU | Функционална единица на ускорителя | Хардуерен ускорител, внедрен в FPGA логика, която разтоварва изчислителна операция за приложение от процесора, за да подобри производителността. |
API | Интерфейс за програмиране на приложения | Набор от дефиниции на подпрограми, протоколи и инструменти за изграждане на софтуерни приложения. |
ASE | AFU Симулационна среда | Среда за съвместна симулация, която ви позволява да използвате едно и също хост приложение и AF в среда за симулация. ASE е част от Intel® Acceleration Stack за FPGA. |
CCI-P | Основен кеш интерфейс | CCI-P е стандартният интерфейс, използван от AFU за комуникация с хоста. |
CL | Кеш линия | 64-байтов кеш ред |
DFH | Заглавка на функцията на устройството | Създава свързан списък със заглавки на функции, за да осигури разширяем начин за добавяне на функции. |
FIM | FPGA интерфейсен мениджър | Хардуерът на FPGA, съдържащ FPGA интерфейсен модул (FIU) и външни интерфейси за памет, работа в мрежа и др.
Функцията Accelerator (AF) взаимодейства с FIM по време на изпълнение. |
ЗФР | FPGA интерфейсен модул | FIU е интерфейсен слой на платформа, който действа като мост между интерфейси на платформа като PCIe*, UPI и интерфейси от страна на AFU като CCI-P. |
продължи… |
Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.
Съкращения | Разширяване | Описание |
MPF | Фабрика за свойства на паметта | MPF е основен градивен блок (BBB), който AFU могат да използват, за да предоставят CCI-P операции за оформяне на трафик за транзакции с FIU. |
съобщ | Съобщение | Съобщение – контролно известие |
NLB | Native Loopback | NLB извършва четене и запис към CCI-P връзката, за да тества свързаността и пропускателната способност. |
RdLine_I | Невалиден ред за четене | Заявка за четене на паметта с подсказка за кеша на FPGA, зададена на невалидна. Редът не е кеширан в FPGA, но може да причини замърсяване на кеша на FPGA.
Забележка: Кеш паметта tag проследява състоянието на заявката за всички неизпълнени заявки на Intel Ultra Path Interconnect (Intel UPI). Следователно, въпреки че RdLine_I е маркиран като невалиден при завършване, той консумира кеша tag временно за проследяване на състоянието на заявката през UPI. Това действие може да доведе до изгонване на кеш линия, което води до замърсяване на кеша. НапредъкътtagИзползването на RdLine_I е, че не се проследява от CPU директория; по този начин предотвратява подслушване от процесора. |
RdLine-S | Споделен ред за четене | Заявка за четене на памет с подсказка за FPGA кеш, зададена на споделена. Прави се опит да се запази в кеша на FPGA в споделено състояние. |
WrLine_I | Редът за писане е невалиден | Заявка за запис в паметта с подсказка за кеша на FPGA, зададена на Невалидна. FIU записва данните без намерение да съхранява данните в FPGA кеша. |
WrLine_M | Напишете модифициран ред | Заявка за запис в паметта с подсказка за кеша на FPGA, зададена на Модифицирана. FIU записва данните и ги оставя в FPGA кеша в модифицирано състояние. |
Речник на ускорението
Таблица 3. Стек за ускоряване за процесор Intel Xeon® с FPGA Речник
Срок | Съкращение | Описание |
Intel Acceleration Stack за процесор Intel Xeon® с FPGA | Стек за ускорение | Колекция от софтуер, фърмуер и инструменти, които осигуряват оптимизирана за производителност свързаност между Intel FPGA и Intel Xeon процесор. |
Intel FPGA Programmable Acceleration Card (Intel FPGA PAC) | Intel FPGA PAC | PCIe FPGA ускорителна карта. Съдържа FPGA Interface Manager (FIM), който се сдвоява с процесор Intel Xeon през PCIe шината. |
Функционалната единица на Native Loopback Accelerator (AFU)
Native Loopback (NLB) AFU Overview
- NLB sample AFU се състоят от набор от Verilog и System Verilog files за тестване на четене и запис в паметта, честотна лента и латентност.
- Този пакет включва три AFU, които можете да изградите от един и същ RTL източник. Вашата конфигурация на изходния код на RTL създава тези AFU.
НЛБ Сample Ускорителна функция (AF)
$OPAE_PLATFORM_ROOT/hw/sampдиректорията les съхранява изходния код за следните NLB sample AFUs:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Забележка: $DCP_LOC/hw/samples директорията съхранява NLB sample 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.
Пакетът за освобождаване предоставя следните три sampлиста:
- NLB режим 0 AF: изисква помощна програма hello_fpga или fpgadiag за извършване на теста lpbk1.
- NLB режим 3 AF: изисква помощната програма fpgadiag за извършване на тестовете trupt, четене и запис.
- NLB режим 0 stp AF: изисква помощна програма hello_fpga или fpgadiag за извършване на теста lpbak1.
Забележка: Nlb_mode_0_stp е същият AFU като nlb_mode_0, но с активирана функция за отстраняване на грешки в Signal Tap.
Помощните програми fpgadiag и hello_fpga помагат на подходящия AF да диагностицира, тества и докладва за FPGA хардуера.
Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.
Фигура 1. Native Loopback (nlb_lpbk.sv) обвивка от най-високо ниво
Таблица 4. NLB Files
File Име | Описание |
nlb_lpbk.sv | Обвивка от най-високо ниво за NLB, която инстанцира заявителя и арбитъра. |
арбитър.св | Създава тестов AF. |
заявител.св | Приема заявки от арбитъра и форматира заявките според спецификацията на CCI-P. Също така прилага контрол на потока. |
nlb_csr.sv | Внедрява 64-битови регистри за управление на четене/запис и състояние (CSR). Регистрите поддържат както 32-, така и 64-битови четения и записи. |
nlb_gram_sdp.sv | Внедрява обща двупортова RAM с един порт за запис и един порт за четене. |
NLB е референтна реализация на AFU, съвместима с Intel Acceleration Stack за Intel Xeon CPU с FPGAs Core Cache Interface (CCI-P) Справочно ръководство. Основната функция на NLB е да проверява свързаността на хоста, използвайки различни модели за достъп до паметта. NLB също измерва честотната лента и латентността при четене/запис. Тестът за честотна лента има следните опции:
- 100% прочетено
- 100% пишете
- 50% четат и 50% пишат
Свързана информация
- Ръководство за бързо стартиране на Intel Acceleration Stack за програмируема карта за ускоряване на Intel с Arria 10 GX FPGA
- Стек за ускоряване за процесор Intel Xeon с FPGAs Core Cache Interface (CCI-P) Справочно ръководство
- Ръководство за бърз старт на Intel Acceleration Stack за Intel FPGA Programmable Acceleration Card D5005
Вътрешен Loopback контрол и описания на регистъра на състоянието
Таблица 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 | SW разпределя Interrupt APIC ID и Vector към устройството. |
DSM офсетна карта | |||||
0x0040 | 0x0010 | RO | DSM_СТАТУС | 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 | Брой кеш редове за четене или запис. Този праг може да е различен за всеки тест AF.
Забележка: Уверете се, че буферите източник и местоназначение са достатъчно големи, за да поемат кеш линии. CSR_NUM_LINES трябва да е по-малко или равно на . |
|
За следните стойности приемете =14. След това CSR_SRC_ADDR и CSR_DST_ADDR приемат 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | 1MB подравнен адрес. |
[13:0] | RW | 0x0. | |
CSR_DST_ADDR | [31:14] | RW | 1MB подравнен адрес. |
[13:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:14] | RW | 0x0. |
[13:0] | RW | Брой кеш редове за четене или запис. Този праг може да е различен за всеки тест AF.
Забележка: Уверете се, че буферите източник и местоназначение са достатъчно големи, за да поемат кеш линии. |
Таблица 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'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_СТАТУС | [511:256] | RO | Тестов режим на формуляр за изхвърляне на грешка. |
[255:224] | RO | End Overhead. | |
[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) до нула.
- Софтуерът записва DSM BASE адреса в 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 Acceleration Стекова версия | Промени |
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 sample AFU в НЛБ Сample Ускорителна функция (AF) раздел. |
2018.04.11 | 1.0 (поддържа се от Intel
Quartus Prime Pro Edition 17.0.0) |
Първоначално издание. |
Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.
Документи / Ресурси
![]() |
Функционална единица на intel Native Loopback Accelerator (AFU) [pdf] Ръководство за потребителя Функционална единица на Native Loopback Accelerator AFU, Native Loopback, Функционална единица на Accelerator AFU, Functional Unit AFU |