intel-LOGO

Funkcionalna jedinica intel Native Loopback Accelerator (AFU)

intel-native-loopback-akcelerator-funkcionalna-jedinica-(AFU)-PRO

O ovom dokumentu

konvencije
Tabela 1. Konvencije o dokumentima

konvencija Opis
# Prethodi naredbi koja označava da se naredba upisuje kao root.
$ Označava naredbu koju treba unijeti kao korisnik.
Ovaj font Fileimena, naredbe i ključne riječi su ispisane ovim fontom. Duge komandne linije se štampaju ovim fontom. Iako se duge komandne linije mogu premotati u sljedeći red, povratak nije dio naredbe; ne pritiskajte enter.
Označava da tekst čuvara mjesta koji se pojavljuje između ugaonih zagrada mora biti zamijenjen odgovarajućom vrijednošću. Nemojte unositi ugaone zagrade.

Akronimi
Tabela 2. Akronimi

Akronimi Proširenje Opis
AF Funkcija akceleratora Prevedena slika hardverskog akceleratora implementirana u FPGA logici koja ubrzava aplikaciju.
AFU Funkcionalna jedinica akceleratora Hardverski akcelerator implementiran u FPGA logici koji rasterećuje računsku operaciju za aplikaciju sa CPU-a radi poboljšanja performansi.
API Programski interfejs aplikacije Skup definicija potprograma, protokola i alata za izradu softverskih aplikacija.
ASE AFU simulacijsko okruženje Kosimulacijsko okruženje koje vam omogućava da koristite istu host aplikaciju i AF u simulacijskom okruženju. ASE je dio Intel® Acceleration Stack-a za FPGA.
CCI-P Core Cache Interface CCI-P je standardni interfejs koji AFU koriste za komunikaciju sa domaćinom.
CL Cache Line 64-bajtna linija keš memorije
DFH Zaglavlje karakteristika uređaja Kreira povezanu listu zaglavlja funkcija kako bi se omogućio proširiv način dodavanja funkcija.
FIM FPGA Interface Manager FPGA hardver koji sadrži FPGA Interface Unit (FIU) i eksterna sučelja za memoriju, umrežavanje, itd.

Funkcija akceleratora (AF) povezuje se s FIM-om u vrijeme izvođenja.

FIU FPGA Interface Unit FIU je sloj sučelja platforme koji djeluje kao most između platformskih sučelja kao što su PCIe*, UPI i AFU sučelja kao što je CCI-P.
nastavak…

Intel Corporation. Sva prava zadržana. Intel, Intel logo i druge Intel oznake su zaštitni znaci Intel Corporation ili njenih podružnica. Intel garantuje performanse svojih FPGA i poluprovodničkih proizvoda u skladu sa trenutnim specifikacijama u skladu sa Intelovom standardnom garancijom, ali zadržava pravo da izvrši izmene bilo kojeg proizvoda i usluge u bilo koje vreme bez prethodne najave. Intel ne preuzima nikakvu odgovornost ili odgovornost koja proizilazi iz primene ili korišćenja bilo koje informacije, proizvoda ili usluge opisane ovde, osim ako je Intel izričito pristao u pisanoj formi. Intelovim kupcima se savjetuje da nabave najnoviju verziju specifikacija uređaja prije nego što se oslone na bilo koju objavljenu informaciju i prije naručivanja proizvoda ili usluga. *Druga imena i robne marke mogu se smatrati vlasništvom drugih.

Akronimi Proširenje Opis
MPF Fabrika memorijskih svojstava MPF je osnovni građevni blok (BBB) ​​koji AFU mogu koristiti za pružanje CCI-P operacija oblikovanja prometa za transakcije sa FIU.
Msg Poruka Poruka – kontrolno obaveštenje
NLB Native Loopback NLB vrši čitanje i pisanje na CCI-P vezu da testira povezanost i propusnost.
RdLine_I Čitanje linije je nevažeće Zahtjev za čitanje memorije, sa nagoveštajem FPGA keša postavljenim na nevažeće. Linija nije keširana u FPGA, ali može uzrokovati zagađenje FPGA keša.

Napomena: Predmemorija tag prati status zahteva za sve nerešene zahteve na Intel Ultra Path Interconnect (Intel UPI).

Stoga, iako je RdLine_I označen kao nevažeći po završetku, on troši keš memoriju tag privremeno za praćenje statusa zahtjeva preko UPI-ja. Ova radnja može rezultirati izbacivanjem keš linije, što rezultira zagađenjem keša. Advantage korištenja RdLine_I je da ga CPU direktorij ne prati; na taj način sprečava njuškanje iz CPU-a.

RdLine-S Read Line Shared Zahtjev za čitanje memorije sa FPGA cache hint postavljenim na dijeljeno. Pokušava se zadržati u FPGA kešu u zajedničkom stanju.
WrLine_I Nevažeći red za pisanje Zahtjev za upisivanje u memoriju, sa FPGA keš nagovještajem postavljenim na Nevažeći. FIU upisuje podatke bez namjere da ih čuva u FPGA kešu.
WrLine_M Izmijenjena linija pisanja Zahtjev za upisivanje u memoriju, sa FPGA cache hint postavljenim na Modified. FIU upisuje podatke i ostavlja ih u FPGA kešu u modificiranom stanju.

Acceleration Glossary
Tabela 3. Stek ubrzanja za Intel Xeon® CPU sa FPGA Glosar

Termin Skraćenica Opis
Intel Acceleration Stack za Intel Xeon® CPU sa FPGA Acceleration Stack Kolekcija softvera, firmvera i alata koji obezbeđuje povezivanje sa optimizovanim performansama između Intel FPGA i Intel Xeon procesora.
Intel FPGA programabilna kartica za ubrzanje (Intel FPGA PAC) Intel FPGA PAC PCIe FPGA akceleratorska kartica. Sadrži FPGA Interface Manager (FIM) koji se uparuje sa Intel Xeon procesorom preko PCIe magistrale.

Native Loopback Accelerator Functional Unit (AFU)

Native Loopback (NLB) AFU Overview

  • NLB sample AFU se sastoje od skupa Verilog i System Verilog files za testiranje čitanja i pisanja memorije, propusnog opsega i kašnjenja.
  • Ovaj paket uključuje tri AFU-a koje možete izgraditi iz istog RTL izvora. Vaša konfiguracija RTL izvornog koda stvara ove AFU.

NLB Sample funkcija akceleratora (AF)
$OPAE_PLATFORM_ROOT/hw/samples direktorij pohranjuje izvorni kod za sljedeće NLB sample AFUs:

  • nlb_mode_0
  • nlb_mode_0_stp
  • nlb_mode_3

Napomena: $DCP_LOC/hw/samples direktorij pohranjuje NLB sample AFUs izvorni kod za paket izdanja 1.0.

Za razumijevanje NLB sampStrukturu izvornog koda AFU i kako je izgraditi, pogledajte jedan od sljedećih vodiča za brzi početak (u zavisnosti od toga koji Intel FPGA PAC koristite):

  • Ako koristite Intel PAC sa Intel Arria® 10 GX FPGA, pogledajte IntelProgramabilnu karticu za ubrzanje sa Intel Arria 10 GX FPGA.
  • Ako koristite Intel FPGA PAC D5005, pogledajte Vodič za brzi početak Intel Acceleration Stack za Intel FPGA programabilnu karticu za ubrzanje D5005.

Paket izdanja pruža sljedeća tri sample AFs:

  • NLB mod 0 AF: zahtijeva uslužni program hello_fpga ili fpgadiag za izvođenje lpbk1 testa.
  • NLB mod 3 AF: zahtijeva fpgadiag uslužni program za izvođenje testova trupt, čitanja i pisanja.
  • NLB mod 0 stp AF: zahtijeva hello_fpga ili fpgadiag uslužni program za izvođenje lpbak1 testa.
    Napomena: nlb_mode_0_stp je isti AFU kao nlb_mode_0 ali sa omogućenom funkcijom za otklanjanje grešaka Signal Tap.
    Pomoćni programi fpgadiag i hello_fpga pomažu odgovarajućem AF-u da dijagnostikuje, testira i izvještava o FPGA hardveru.

Intel Corporation. Sva prava zadržana. Intel, Intel logo i druge Intel oznake su zaštitni znaci Intel Corporation ili njenih podružnica. Intel garantuje performanse svojih FPGA i poluprovodničkih proizvoda u skladu sa trenutnim specifikacijama u skladu sa Intelovom standardnom garancijom, ali zadržava pravo da izvrši izmene bilo kojeg proizvoda i usluge u bilo koje vreme bez prethodne najave. Intel ne preuzima nikakvu odgovornost ili odgovornost koja proizilazi iz primene ili korišćenja bilo koje informacije, proizvoda ili usluge opisane ovde, osim ako je Intel izričito pristao u pisanoj formi. Intelovim kupcima se savjetuje da nabave najnoviju verziju specifikacija uređaja prije nego što se oslone na bilo koju objavljenu informaciju i prije naručivanja proizvoda ili usluga. *Druga imena i robne marke mogu se smatrati vlasništvom drugih.

Slika 1. Native Loopback (nlb_lpbk.sv) Top Level Wrapper

intel-native-loopback-akcelerator-funkcionalna-jedinica-(AFU)-1

Tabela 4. NLB Files

File Ime Opis
nlb_lpbk.sv Omotač najvišeg nivoa za NLB koji instancira podnosioca zahteva i arbitra.
arbiter.sv Instancira test AF.
requestor.sv Prihvata zahtjeve arbitra i formatira zahtjeve prema CCI-P specifikaciji. Također implementira kontrolu protoka.
nlb_csr.sv Implementira 64-bitne registre kontrole i statusa čitanja/pisanja (CSR). Registri podržavaju i 32- i 64-bitno čitanje i pisanje.
nlb_gram_sdp.sv Implementira generički dual-port RAM sa jednim portom za pisanje i jednim portom za čitanje.

NLB je referentna implementacija AFU-a kompatibilnog sa Intel Acceleration Stack-om za Intel Xeon CPU sa FPGA Referentnim priručnikom za Core Cache Interface (CCI-P). NLB-ova primarna funkcija je da potvrdi povezanost hosta koristeći različite obrasce pristupa memoriji. NLB takođe meri propusni opseg i kašnjenje čitanja/pisanja. Test propusnosti ima sljedeće opcije:

  • 100% pročitano
  • 100% pisati
  • 50% čita i 50% piše

Povezane informacije

  • Intel Acceleration Stack Vodič za brzi početak za Intel programabilnu karticu za ubrzanje sa Arria 10 GX FPGA
  • Referentni priručnik za Acceleration Stack za Intel Xeon CPU sa FPGAs Core Cache Interface (CCI-P)
  • Intel Acceleration Stack Vodič za brzi početak za Intel FPGA programabilnu karticu za ubrzanje D5005

Opisi matične kontrole povratne petlje i registra statusa
Tabela 5. CSR nazivi, adrese i opisi

 bajt adresa (OPAE) Riječ Adresa (CCI-P)  Pristup  Ime  Širina  Opis
0x0000 0x0000 RO DFH 64 Zaglavlje funkcije AF uređaja.
0x0008 0x0002 RO AFU_ID_L 64 AF ID nizak.
0x0010 0x0004 RO AFU_ID_H 64 AF ID visok.
0x0018 0x0006 Rsvd CSR_DFH_RSVD0 64 Obavezno rezervisano 0.
0x0020 0x0008 RO CSR_DFH_RSVD1 64 Obavezno rezervisano 1.
0x0100 0x0040 RW CSR_SCRATCHPAD0 64 Scratchpad registar 0.
0x0108 0x0042 RW CSR_SCRATCHPAD1 64 Scratchpad registar 2.
0x0110 0x0044 RW CSR_AFU_DSM_BASE L 32 Donja 32-bitna AF DSM bazna adresa. Donjih 6 bitova su 4×00 jer je adresa usklađena sa 64-bajtnom veličinom keš linije.
0x0114 0x0045 RW CSR_AFU_DSM_BASE H 32 Gornja 32-bitna AF DSM bazna adresa.
0x0120 0x0048 RW CSR_SRC_ADDR 64 Početna fizička adresa za izvorni bafer. Svi zahtjevi za čitanje ciljaju ovu regiju.
0x0128 0x004A RW CSR_DST_ADDR 64 Početna fizička adresa za odredišni bafer. Svi zahtjevi za pisanje ciljaju ovu regiju
0x0130 0x004C RW CSR_NUM_LINES 32 Broj keš linija.
0x0138 0x004E RW CSR_CTL 32 Kontroliše tok testa, start, zaustavljanje, završetak.
0x0140 0x0050 RW CSR_CFG 32 Konfiguriše parametre testa.
0x0148 0x0052 RW CSR_INACT_THRESH 32 Granica praga neaktivnosti.
0x0150 0x0054 RW CSR_INTERRUPT0 32 SW dodjeljuje Interrupt APIC ID i Vector uređaju.
DSM Offset karta
0x0040 0x0010 RO DSM_STATUS 32 Status testa i registar grešaka.

Tabela 6. CSR bitova polja sa pramples
Ova tabela navodi CSR bitna polja koja zavise od vrijednosti CSR_NUM_LINES, . U example ispod = 14.

Ime Bit Field Pristup Opis
CSR_SRC_ADDR [63:] RW 2^(N+6)MB poravnata adresa ukazuje na početak bafera za čitanje.
[-1:0] RW 0x0.
CSR_DST_ADDR [63:] RW 2^(N+6)MB poravnata adresa ukazuje na početak bafera za upisivanje.
[-1:0] RW 0x0.
CSR_NUM_LINES [31:] RW 0x0.
nastavak…
Ime Bit Field Pristup Opis
  [-1:0] RW Broj keš linija za čitanje ili pisanje. Ovaj prag može biti različit za svaki test AF.

Napomena: Osigurajte da su izvorni i odredišni baferi dovoljno veliki da prihvate keš linije.

CSR_NUM_LINES bi trebao biti manji ili jednak .

Za sljedeće vrijednosti pretpostavite =14. Zatim, CSR_SRC_ADDR i CSR_DST_ADDR prihvataju 2^20 (0x100000).
CSR_SRC_ADDR [31:14] RW 1MB usklađena adresa.
[13:0] RW 0x0.
CSR_DST_ADDR [31:14] RW 1MB usklađena adresa.
[13:0] RW 0x0.
CSR_NUM_LINES [31:14] RW 0x0.
[13:0] RW Broj keš linija za čitanje ili pisanje. Ovaj prag može biti različit za svaki test AF.

Napomena: Osigurajte da su izvorni i odredišni baferi dovoljno veliki da prihvate keš linije.

Tabela 7. Dodatna CSR bit polja

Ime Bit Field Pristup Opis
CSR_CTL [31:3] RW Rezervirano.
[2] RW Prisilni završetak testa. Zapisuje oznaku završetka testa i druge brojače performansi u csr_stat. Nakon prisilnog završetka testa, stanje hardvera je identično neforsiranom završetku testa.
[1] RW Započinje izvođenje testa.
[0] RW Aktivni niski test reset. Kada je nizak, svi konfiguracijski parametri se mijenjaju na svoje zadane vrijednosti.
CSR_CFG [29] RW cr_interrupt_testmode testira prekide. Generiše prekid na kraju svakog testa.
  [28] RW cr_interrupt_on_error šalje prekid kada dođe do greške
      detekcija.
  [27:20] RW cr_test_cfg konfigurira ponašanje svakog načina testiranja.
  [13:12] RW cr_chsel bira virtuelni kanal.
  [10:9] RW cr_rdsel konfigurira tip zahtjeva za čitanje. Kodiranja imaju
      sljedeće važeće vrijednosti:
      • 1'b00: RdLine_S
      • 2'b01: RdLine_I
      • 2'b11: Mješoviti način rada
  [8] RW cr_delay_en omogućava nasumično umetanje kašnjenja između zahtjeva.
  [6:5] RW Konfigurira način testiranja,cr_multiCL-len. Važeće vrijednosti su 0,1 i 3.
  [4:2] RW cr_mode, konfigurira test mod. Sljedeće vrijednosti su važeće:
      • 3'b000: LPBK1
      • 3'b001: Pročitaj
      • 3'b010: Pisanje
      • 3'b011: TRPUT
nastavak…
Ime Bit Field Pristup Opis
      Za više informacija o režimu testiranja, pogledajte Test Modes tema ispod.
[1] RW c_cont bira preokret testa ili završetak testa.

• Kada je 1'b0, test se završava. Ažurira status CSR kada

CSR_NUM_LINES broj je dostignut.

• Kada je 1'b1, test se prebacuje na početnu adresu nakon što dostigne broj CSR_NUM_LINES. U režimu rollover, test se završava samo u slučaju greške.

[0] RW cr_wrthru_en prebacuje između tipova zahtjeva WrLine_I i Wrline_M.

• 1'b0: WrLine_M

• 1'b1: WrLine_I

CSR_INACT_THRESHOLD [31:0] RW Granica praga neaktivnosti. Detektuje trajanje zastoja tokom probnog rada. Broji broj uzastopnih ciklusa mirovanja. Ako se neaktivnost računa

> CSR_INACT_THRESHOLD, nema slanja zahtjeva, nema odgovora

primljen, a signal inact_timeout je postavljen. Upisivanje 1 u CSR_CTL[1] aktivira ovaj brojač.

CSR_INTERRUPT0 [23:16] RW Broj vektora prekida za uređaj.
[15:0] RW apic_id je APIC OD za uređaj.
DSM_STATUS [511:256] RO Režim testa za ispis greške.
[255:224] RO Kraj iznad glave.
[223:192] RO Start Overhead.
[191:160] RO Broj pisanja.
[159:128] RO Broj čitanja.
[127:64] RO Broj satova.
[63:32] RO Test registar grešaka.
[31:16] RO Uporedite i razmijenite brojač uspjeha.
[15:1] RO Jedinstveni ID za svaki upis DSM statusa.
[0] RO Oznaka završetka testa.

Test Modes
CSR_CFG[4:2] konfiguriše režim testiranja. Dostupna su sljedeća četiri testa:

  • LPBK1: Ovo je test memorijskog kopiranja. AF kopira CSR_NUM_LINES iz izvornog bafera u odredišni bafer. Po završetku testa, softver uspoređuje izvorni i odredišni bafer.
  • Pročitajte: Ovaj test naglašava putanju čitanja i mjeri propusni opseg čitanja ili kašnjenje. AF čita CSR_NUM_LINES počevši od CSR_SRC_ADDR. Ovo je samo test propusnosti ili kašnjenja. Ne provjerava pročitane podatke.
  • napišite: Ovaj test naglašava putanju pisanja i mjeri propusnost ili kašnjenje pisanja. AF čita CSR_NUM_LINES počevši od CSR_SRC_ADDR. Ovo je samo test propusnosti ili kašnjenja. Ne provjerava napisane podatke.
  • TRPUT: Ovaj test kombinuje čitanje i pisanje. Čita CSR_NUM_LINES počevši od CSR_SRC_ADDR lokacije i upisuje CSR_NUM_LINES u CSR_SRC_ADDR. Takođe meri propusni opseg za čitanje i pisanje. Ovaj test ne provjerava podatke. Čitanje i pisanje nemaju zavisnosti

Sljedeća tabela prikazuje CSR_CFG kodiranja za četiri testa. Ova tabela postavlja i CSR_NUM_LINES, =14. Možete promijeniti broj linija keš memorije ažuriranjem registra CSR_NUM_LINES.

Tabela 8. Načini testiranja

FPGA dijagnostika: fpgadiag
Uslužni program fpgadiag uključuje nekoliko testova za dijagnosticiranje, testiranje i izvještavanje o FPGA hardveru. Koristite fpgadiag uslužni program da pokrenete sve testne modove. Za više informacija o korištenju uslužnog programa fpgadiag, pogledajte odjeljak fpgadiag u Vodiču za alate Open Programmable Acceleration Engine (OPAE).

NLB Mode0 Hello_FPGA Test Flow

  1. Softver inicijalizira memoriju statusa uređaja (DSM) na nulu.
  2. Softver upisuje DSM BASE adresu u AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
  3. Softver priprema izvorni i odredišni memorijski bafer. Ovaj preparat je specifičan za test.
  4. Softver piše CSR_CTL[2:0]= 0x1. Ovo pisanje dovodi test iz resetovanja u konfiguracioni mod. Konfiguracija se može nastaviti samo kada CSR_CTL[0]=1 & CSR_CTL[1]=1.
  5. Softver konfiguriše parametre testa, kao što su src, destaddress, csr_cfg, broj redova i tako dalje.
  6. Softverski CSR piše CSR_CTL[2:0]= 0x3. AF počinje s izvođenjem testa.
  7. Završetak testa:
    • Hardver se završava kada se test završi ili otkrije grešku. Po završetku, hardverski AF ažurira DSM_STATUS. Softver ispituje DSM_STATUS[31:0]==1 da otkrije završetak testa.
    • Softver može prisiliti završetak testa pisanjem CSR zapisi CSR_CTL[2:0]=0x7. Hardverski AF ažurira DSM_STATUS.

Historija revizija dokumenta za Korisnički vodič za funkcionalnu jedinicu akceleratora povratne petlje (AFU)

Verzija dokumenta Intel Acceleration Verzija steka Promjene
 2019.08.05 2.0 (podržano sa Intel

Quartus Prime Pro Edition

18.1.2) i 1.2 (podržano sa

Intel Quartus Prime Pro Edition 17.1.1)

Dodata podrška za Intel FPGA PAC D5005 platformu u trenutnom izdanju.
 2018.12.04 1.2 (podržano sa Intel

Quartus® Prime Pro Edition 17.1.1)

Izdanje za održavanje.
  2018.08.06 1.1 (podržano sa Intel

Quartus Prime Pro Edition

17.1.1) i 1.0 (podržano sa

Intel Quartus Prime Pro Edition 17.0.0)

Ažurirana lokacija izvornog koda za NLB sample AFU in NLB Sample funkcija akceleratora (AF) odjeljak.
 2018.04.11 1.0 (podržano sa Intel

Quartus Prime Pro Edition 17.0.0)

Prvo izdanje.

Intel Corporation. Sva prava zadržana. Intel, Intel logo i druge Intel oznake su zaštitni znaci Intel Corporation ili njenih podružnica. Intel garantuje performanse svojih FPGA i poluprovodničkih proizvoda u skladu sa trenutnim specifikacijama u skladu sa Intelovom standardnom garancijom, ali zadržava pravo da izvrši izmene bilo kojeg proizvoda i usluge u bilo koje vreme bez prethodne najave. Intel ne preuzima nikakvu odgovornost ili odgovornost koja proizilazi iz primene ili korišćenja bilo koje informacije, proizvoda ili usluge opisane ovde, osim ako je Intel izričito pristao u pisanoj formi. Intelovim kupcima se savjetuje da nabave najnoviju verziju specifikacija uređaja prije nego što se oslone na bilo koju objavljenu informaciju i prije naručivanja proizvoda ili usluga. *Druga imena i robne marke mogu se smatrati vlasništvom drugih.

Dokumenti / Resursi

Funkcionalna jedinica intel Native Loopback Accelerator (AFU) [pdf] Korisnički priručnik
Native Loopback Accelerator Functional Unit AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *