intel-LOGO

Unitate funcțională Intel Native Loopback Accelerator (AFU)

Intel-Native-Loopback-Accelerator-Unitate-funcțională-(AFU)-PRO

Despre acest document

Convenții
Tabelul 1. Convențiile documentelor

Convenţie Descriere
# Precedează o comandă care indică că comanda trebuie introdusă ca root.
$ Indică o comandă care urmează să fie introdusă ca utilizator.
Acest font Filenumele, comenzile și cuvintele cheie sunt tipărite în acest font. Liniile lungi de comandă sunt tipărite în acest font. Deși liniile de comandă lungi se pot încheia la următoarea linie, revenirea nu face parte din comandă; nu apăsați enter.
Indică că textul substituent care apare între parantezele unghiulare trebuie înlocuit cu o valoare adecvată. Nu introduceți parantezele unghiulare.

Acronime
Tabelul 2. Acronime

Acronime Expansiune Descriere
AF Funcția de accelerare Imagine compilată Hardware Accelerator implementată în logica FPGA care accelerează o aplicație.
AFU Unitate Funcțională Accelerator Accelerator hardware implementat în logica FPGA care descarcă o operație de calcul pentru o aplicație de pe CPU pentru a îmbunătăți performanța.
API Interfață de programare a aplicației Un set de definiții de subrutine, protocoale și instrumente pentru construirea de aplicații software.
ASE Mediu de simulare AFU Mediu de co-simulare care vă permite să utilizați aceeași aplicație gazdă și AF într-un mediu de simulare. ASE face parte din Intel® Acceleration Stack pentru FPGA.
CCI-P Core Cache Interfață CCI-P este interfața standard utilizată de AFU pentru a comunica cu gazda.
CL Linia cache Linie cache de 64 de octeți
DFH Antet caracteristică dispozitiv Creează o listă legată de anteturi de caracteristici pentru a oferi o modalitate extensibilă de a adăuga caracteristici.
FIM Manager de interfață FPGA Hardware-ul FPGA care conține unitatea de interfață FPGA (FIU) și interfețe externe pentru memorie, rețea etc.

Funcția de accelerație (AF) interfață cu FIM în timpul rulării.

FIU Unitate de interfață FPGA FIU este un strat de interfață de platformă care acționează ca o punte între interfețele platformei precum PCIe*, UPI și interfețele laterale AFU, cum ar fi CCI-P.
a continuat…

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Acronime Expansiune Descriere
MPF Fabrica de proprietăți memorie MPF este un element de bază (BBB) ​​pe care AFU-urile îl pot folosi pentru a furniza operațiuni de modelare a traficului CCI-P pentru tranzacțiile cu FIU.
Msg Mesaj Mesaj – o notificare de control
NLB Loopback nativ NLB efectuează citiri și scrieri pe legătura CCI-P pentru a testa conectivitatea și debitul.
RdLine_I Linia de citire nevalidă Solicitare de citire a memoriei, cu indiciu cache FPGA setat la nevalid. Linia nu este stocată în cache în FPGA, dar poate cauza poluarea cache-ului FPGA.

Nota: Memoria cache tag urmărește starea solicitării pentru toate solicitările restante pe Intel Ultra Path Interconnect (Intel UPI).

Prin urmare, chiar dacă RdLine_I este marcat ca invalid la finalizare, consumă memoria cache tag temporar pentru a urmări starea solicitării prin UPI. Această acțiune poate duce la evacuarea unei linii de cache, ceea ce duce la poluarea memoriei cache. AdvanultagUtilizarea RdLine_I este că nu este urmărită de directorul CPU; astfel, previne snooping de la CPU.

RdLine-S Citiți linia partajată Solicitare de citire a memoriei cu indiciu cache FPGA setat la partajat. Se încearcă să-l păstreze în memoria cache FPGA într-o stare partajată.
WrLine_I Linia de scriere nevalidă Solicitare de scriere în memorie, cu indiciu cache FPGA setat la Invalid. FIU scrie datele fără intenția de a păstra datele în memoria cache FPGA.
WrLine_M Linia de scriere modificată Solicitare de scriere în memorie, cu indiciu cache FPGA setat la Modificat. FIU scrie datele și le lasă în memoria cache FPGA într-o stare modificată.

Glosar de accelerare
Tabelul 3. Stiva de accelerare pentru procesorul Intel Xeon® cu FPGA Glosar

Termen Abreviere Descriere
Intel Acceleration Stack pentru procesorul Intel Xeon® cu FPGA Stiva de accelerare O colecție de software, firmware și instrumente care oferă conectivitate optimizată pentru performanță între un procesor Intel FPGA și un procesor Intel Xeon.
Placă de accelerație programabilă Intel FPGA (Intel FPGA PAC) Intel FPGA PAC Placă de accelerare PCIe FPGA. Conține un manager de interfață FPGA (FIM) care se asociază cu un procesor Intel Xeon prin magistrala PCIe.

Unitatea funcțională Native Loopback Accelerator (AFU)

Native Loopback (NLB) AFU Overview

  • NLB sampAFU-urile cuprind un set de Verilog și System Verilog files pentru a testa citirile și scrierile din memorie, lățimea de bandă și latența.
  • Acest pachet include trei AFU pe care le puteți construi din aceeași sursă RTL. Configurația dvs. a codului sursă RTL creează aceste AFU.

NLB Sample Funcția de accelerare (AF)
$OPAE_PLATFORM_ROOT/hw/sampdirectorul les stochează codul sursă pentru următoarele NLB-uriample AFU:

  • nlb_mode_0
  • nlb_mode_0_stp
  • nlb_mode_3

Nota: $DCP_LOC/hw/sampdirectorul les stochează NLB-urileampcodul sursă AFU pentru pachetul de lansare 1.0.

Pentru a înțelege NLB sampStructura codului sursă al fișierului AFU și cum să-l construiți, consultați unul dintre următoarele Ghiduri de pornire rapidă (în funcție de Intel FPGA PAC pe care îl utilizați):

  • Dacă utilizați Intel PAC cu Intel Arria® 10 GX FPGA, consultați IntelProgrammable Acceleration Card cu Intel Arria 10 GX FPGA.
  • Dacă utilizați Intel FPGA PAC D5005, consultați Ghidul de pornire rapidă Intel Acceleration Stack pentru Intel FPGA Programable Acceleration Card D5005.

Pachetul de lansare oferă următoarele trei sample AF-uri:

  • Modul NLB 0 AF: necesită utilitarul hello_fpga sau fpgadiag pentru a efectua testul lpbk1.
  • Modul NLB 3 AF: necesită utilitarul fpgadiag pentru a efectua testele trupt, citire și scriere.
  • Modul NLB 0 stp AF: necesită utilitarul hello_fpga sau fpgadiag pentru a efectua testul lpbak1.
    Nota: nlb_mode_0_stp este același AFU ca nlb_mode_0, dar cu funcția de depanare Signal Tap activată.
    Utilitarele fpgadiag și hello_fpga ajută AF adecvat să diagnosticheze, să testeze și să raporteze hardware-ul FPGA.

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Figura 1. Loopback nativ (nlb_lpbk.sv) Wrapper de nivel superior

Intel-Native-Loopback-Accelerator-Unitate-funcțională-(AFU)-1

Tabelul 4. NLB Files

File Nume Descriere
nlb_lpbk.sv Wrapper de nivel superior pentru NLB care instanțează solicitantul și arbitrul.
arbitru.sv Instanțiază testul AF.
solicitant.sv Acceptă cereri de la arbitru și formatează cererile conform specificației CCI-P. De asemenea, implementează controlul fluxului.
nlb_csr.sv Implementează un registre de control și stare de citire/scriere (CSR) pe 64 de biți. Registrele acceptă citiri și scrieri pe 32 și 64 de biți.
nlb_gram_sdp.sv Implementează o RAM generică dual-port cu un port de scriere și unul de citire.

NLB este o implementare de referință a unui AFU compatibil cu Intel Acceleration Stack for Intel Xeon CPU with FPGAs Core Cache Interface (CCI-P) Manual de referință. Funcția principală a NLB este de a valida conectivitatea gazdei folosind diferite modele de acces la memorie. NLB măsoară, de asemenea, lățimea de bandă și latența de citire/scriere. Testul lățimii de bandă are următoarele opțiuni:

  • 100% citit
  • 100% scriu
  • 50% citesc și 50% scriu

Informații conexe

  • Ghid de pornire rapidă Intel Acceleration Stack pentru cardul de accelerare programabil Intel cu Arria 10 GX FPGA
  • Stack de accelerare pentru procesorul Intel Xeon cu interfață Core Cache FPGA (CCI-P) Manual de referință
  • Ghid de pornire rapidă Intel Acceleration Stack pentru placa de accelerație programabilă Intel FPGA D5005

Controlul nativ Loopback și descrierile registrului de stare
Tabelul 5. Nume, adrese și descrieri CSR

 Adresa octet (OPAE) Cuvânt Adresa (CCI-P)  Acces  Nume  Lăţime  Descriere
0x0000 0x0000 RO DFH 64 Antet caracteristică dispozitiv AF.
0x0008 0x0002 RO AFU_ID_L 64 ID AF scăzut.
0x0010 0x0004 RO AFU_ID_H 64 ID AF ridicat.
0x0018 0x0006 Rsvd CSR_DFH_RSVD0 64 Rezervat obligatoriu 0.
0x0020 0x0008 RO CSR_DFH_RSVD1 64 Rezervat obligatoriu 1.
0x0100 0x0040 RW CSR_SCRATCHPAD0 64 Registrul Scratchpad 0.
0x0108 0x0042 RW CSR_SCRATCHPAD1 64 Registrul Scratchpad 2.
0x0110 0x0044 RW CSR_AFU_DSM_BASE L 32 32 de biți inferioare adresei de bază AF DSM. Cei 6 biți inferiori sunt 4×00 deoarece adresa este aliniată la dimensiunea liniei de cache de 64 de octeți.
0x0114 0x0045 RW CSR_AFU_DSM_BASE H 32 32 de biți superiori ai adresei de bază AF DSM.
0x0120 0x0048 RW CSR_SRC_ADDR 64 Porniți adresa fizică pentru buffer-ul sursă. Toate solicitările de citire vizează această regiune.
0x0128 0x004A RW CSR_DST_ADDR 64 Adresa fizică de pornire a memoriei tampon de destinație. Toate solicitările de scriere vizează această regiune
0x0130 0x004C RW CSR_NUM_LINES 32 Numărul de linii cache.
0x0138 0x004E RW CSR_CTL 32 Controlează fluxul de testare, pornirea, oprirea, finalizarea forțată.
0x0140 0x0050 RW CSR_CFG 32 Configurarea parametrilor de testare.
0x0148 0x0052 RW CSR_INACT_THRESH 32 Limită prag de inactivitate.
0x0150 0x0054 RW CSR_INTERRUPT0 32 SW alocă Interrupt APIC ID și Vector dispozitivului.
Harta offset DSM
0x0040 0x0010 RO DSM_STATUS 32 Starea testului și registrul de erori.

Tabelul 6. Câmpuri de biți CSR cu Examples
Acest tabel listează câmpurile de biți CSR care depind de valoarea CSR_NUM_LINES, . În example de mai jos = 14.

Nume Câmp de biți Acces Descriere
CSR_SRC_ADDR [63:] RW Adresa aliniată de 2^(N+6)MB indică începutul tamponului de citire.
[-1:0] RW 0x0.
CSR_DST_ADDR [63:] RW Adresa aliniată cu 2^(N+6)MB indică începutul bufferului de scriere.
[-1:0] RW 0x0.
CSR_NUM_LINES [31:] RW 0x0.
a continuat…
Nume Câmp de biți Acces Descriere
  [-1:0] RW Numărul de linii cache de citit sau scris. Acest prag poate fi diferit pentru fiecare test AF.

Nota: Asigurați-vă că sursă și destinație tampon sunt suficient de mari pentru a găzdui linii cache.

CSR_NUM_LINES ar trebui să fie mai mic sau egal cu .

Pentru următoarele valori, presupuneți =14. Apoi, CSR_SRC_ADDR și CSR_DST_ADDR acceptă 2^20 (0x100000).
CSR_SRC_ADDR [31:14] RW Adresă aliniată de 1 MB.
[13:0] RW 0x0.
CSR_DST_ADDR [31:14] RW Adresă aliniată de 1 MB.
[13:0] RW 0x0.
CSR_NUM_LINES [31:14] RW 0x0.
[13:0] RW Numărul de linii cache de citit sau scris. Acest prag poate fi diferit pentru fiecare test AF.

Nota: Asigurați-vă că sursă și destinație tampon sunt suficient de mari pentru a găzdui linii cache.

Tabelul 7. Câmpuri suplimentare de biți CSR

Nume Câmp de biți Acces Descriere
CSR_CTL [31:3] RW Rezervat.
[2] RW Forțați finalizarea testului. Scrie indicatorul de finalizare a testului și alte contoare de performanță în csr_stat. După forțarea finalizării testului, starea hardware este identică cu o finalizare a testului neforțată.
[1] RW Începe execuția testului.
[0] RW Resetare activă a testului scăzut. Când este scăzut, toți parametrii de configurare se schimbă la valorile implicite.
CSR_CFG [29] RW cr_interrupt_testmode testează întreruperi. Generează o întrerupere la sfârșitul fiecărui test.
  [28] RW cr_interrupt_on_error trimite o întrerupere la o eroare
      detectare.
  [27:20] RW cr_test_cfg configurează comportamentul fiecărui mod de testare.
  [13:12] RW cr_chsel selectează canalul virtual.
  [10:9] RW cr_rdsel configurează tipul de solicitare de citire. Codificările au
      următoarele valori valide:
      • 1'b00: RdLine_S
      • 2'b01: RdLine_I
      • 2'b11: Mod mixt
  [8] RW cr_delay_en permite inserarea aleatorie a întârzierilor între cereri.
  [6:5] RW Configura modul de testare,cr_multiCL-len. Valorile valide sunt 0,1 și 3.
  [4:2] RW cr_mode, configurează modul de testare. Următoarele valori sunt valabile:
      • 3'b000: LPBK1
      • 3'b001: Citiți
      • 3'b010: Scrie
      • 3'b011: TRPUT
a continuat…
Nume Câmp de biți Acces Descriere
      Pentru mai multe informații despre modul de testare, consultați Moduri de testare subiectul de mai jos.
[1] RW c_cont selectează trecerea testului sau terminarea testului.

• Când 1'b0, testul se încheie. Actualizează starea CSR când

Numărul de CSR_NUM_LINES a fost atins.

• Când 1'b1, testul trece la adresa de început după ce atinge numărul CSR_NUM_LINES. În modul rollover, testul se încheie numai în caz de eroare.

[0] RW cr_wrthru_en comută între tipurile de cerere WrLine_I și Wrline_M.

• 1'b0: WrLine_M

• 1'b1: WrLine_I

CSR_INACT_THRESHOLD [31:0] RW Limită prag de inactivitate. Detectează durata blocajelor în timpul unui test de rulare. Contorizează numărul de cicluri inactiv consecutive. Dacă inactivitatea contează

> CSR_INACT_THRESHOLD, nu sunt trimise solicitări, nici răspunsuri

primit și semnalul inact_timeout este setat. Scrierea 1 la CSR_CTL[1] activează acest contor.

CSR_INTERRUPT0 [23:16] RW Numărul vectorului de întrerupere pentru dispozitiv.
[15:0] RW apic_id este APIC OD pentru dispozitiv.
DSM_STATUS [511:256] RO Eroare de descărcare a formularului Mod de testare.
[255:224] RO Încheierea deasupra capului.
[223:192] RO Începeți deasupra capului.
[191:160] RO Numărul de scrieri.
[159:128] RO Numărul de citiri.
[127:64] RO Numărul de ceasuri.
[63:32] RO Testează registrul erorilor.
[31:16] RO Comparați și schimbați contorul de succes.
[15:1] RO ID unic pentru fiecare scriere a stării DSM.
[0] RO Indicatorul de finalizare a testului.

Moduri de testare
CSR_CFG[4:2] configurează modul de testare. Următoarele patru teste sunt disponibile:

  • LPBK1: Acesta este un test de copiere a memoriei. AF copiază CSR_NUM_LINES din memoria tampon sursă în memoria tampon de destinație. La finalizarea testului, software-ul compară sursa și destinația tampon.
  • Citire: Acest test subliniază calea de citire și măsoară lățimea de bandă de citire sau latența. AF citește CSR_NUM_LINES începând de la CSR_SRC_ADDR. Acesta este doar un test de lățime de bandă sau de latență. Nu verifică datele citite.
  • Scrie: Acest test subliniază calea de scriere și măsoară lățimea de bandă sau latența de scriere. AF citește CSR_NUM_LINES începând de la CSR_SRC_ADDR. Acesta este doar un test de lățime de bandă sau de latență. Nu verifică datele scrise.
  • TRUPT: Acest test combină citirile și scrierile. Citește CSR_NUM_LINES începând de la locația CSR_SRC_ADDR și scrie CSR_NUM_LINES în CSR_SRC_ADDR. De asemenea, măsoară lățimea de bandă de citire și scriere. Acest test nu verifică datele. Citirile și scrierile nu au dependențe

Următorul tabel prezintă codificările CSR_CFG pentru cele patru teste. Acest tabel setează și CSR_NUM_LINES, =14. Puteți modifica numărul de linii de cache actualizând registrul CSR_NUM_LINES.

Tabelul 8. Moduri de testare

Diagnosticare FPGA: fpgadiag
Utilitarul fpgadiag include mai multe teste pentru a diagnostica, a testa și a raporta hardware-ul FPGA. Utilizați utilitarul fpgadiag pentru a rula toate modurile de testare. Pentru mai multe informații despre utilizarea utilitarului fpgadiag, consultați secțiunea fpgadiag din Ghidul instrumentelor Open Programmable Acceleration Engine (OPAE).

NLB Mode0 Hello_FPGA Test Flow

  1. Software-ul inițializează memoria de stare a dispozitivului (DSM) la zero.
  2. Software-ul scrie adresa DSM BASE în AFU. Scriere CSR (DSM_BASE_H), Scriere CSRW (DSM_BASE_L)
  3. Software-ul pregătește memoria tampon sursă și destinație. Acest preparat este specific testului.
  4. Software-ul scrie CSR_CTL[2:0]= 0x1. Această scriere scoate testul din resetare și în modul de configurare. Configurarea poate continua numai când CSR_CTL[0]=1 și CSR_CTL[1]=1.
  5. Software-ul configurează parametrii de testare, cum ar fi src, destaddress, csr_cfg, num lines și așa mai departe.
  6. Software CSR scrie CSR_CTL[2:0]= 0x3. AF începe execuția testului.
  7. Finalizarea testului:
    • Hardware-ul se finalizează când testul se termină sau detectează o eroare. La finalizare, hardware-ul AF actualizează DSM_STATUS. Software-ul interogează DSM_STATUS[31:0]==1 pentru a detecta finalizarea testului.
    • Software-ul poate forța finalizarea testului scriind scrieri CSR CSR_CTL[2:0]=0x7. Hardware AF actualizează DSM_STATUS.

Istoricul revizuirilor documentului pentru Ghidul utilizatorului Unității funcționale Native Loopback Accelerator (AFU).

Versiunea documentului Accelerație Intel Versiunea stivă Schimbări
 2019.08.05 2.0 (acceptat cu Intel

Ediția Quartus Prime Pro

18.1.2) și 1.2 (acceptat cu

Intel Quartus Prime Pro Edition 17.1.1)

S-a adăugat suport pentru platforma Intel FPGA PAC D5005 în versiunea actuală.
 2018.12.04 1.2 (acceptat cu Intel

Quartus® Prime Pro Edition 17.1.1)

Eliberare de întreținere.
  2018.08.06 1.1 (acceptat cu Intel

Ediția Quartus Prime Pro

17.1.1) și 1.0 (acceptat cu

Intel Quartus Prime Pro Edition 17.0.0)

S-a actualizat locația codului sursă pentru NLB-uriample AFU in NLB Sample Funcția de accelerare (AF) secțiune.
 2018.04.11 1.0 (acceptat cu Intel

Quartus Prime Pro Edition 17.0.0)

Lansare inițială.

Intel Corporation. Toate drepturile rezervate. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Intel garantează performanța produselor sale FPGA și semiconductoare conform specificațiilor actuale, în conformitate cu garanția standard Intel, dar își rezervă dreptul de a face modificări oricăror produse și servicii în orice moment, fără notificare. Intel nu își asumă nicio responsabilitate sau răspundere care decurge din aplicarea sau utilizarea oricăror informații, produse sau servicii descrise aici, cu excepția cazului în care Intel a convenit în mod expres în scris. Clienții Intel sunt sfătuiți să obțină cea mai recentă versiune a specificațiilor dispozitivului înainte de a se baza pe orice informații publicate și înainte de a plasa comenzi pentru produse sau servicii. *Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.

Documente/Resurse

Unitate funcțională Intel Native Loopback Accelerator (AFU) [pdfGhid de utilizare
Unitate funcțională Native Loopback Accelerator AFU, Native Loopback, Unitate funcțională Accelerator AFU, Unitate funcțională AFU

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *