intel Native Loopback Accelerator Functional Unit (AFU)
Om dette dokumentet
Konvensjoner
Tabell 1. Dokumentkonvensjoner
Konvensjon | Beskrivelse |
# | Går foran en kommando som indikerer at kommandoen skal legges inn som root. |
$ | Indikerer at en kommando skal legges inn som bruker. |
Denne fonten | Filenavn, kommandoer og nøkkelord skrives ut med denne fonten. Lange kommandolinjer skrives ut med denne fonten. Selv om lange kommandolinjer kan gå til neste linje, er ikke returen en del av kommandoen; ikke trykk enter. |
Indikerer at plassholderteksten som vises mellom vinkelparentesene må erstattes med en passende verdi. Ikke gå inn i vinkelbrakettene. |
Akronymer
Tabell 2. Akronymer
Akronymer | Ekspansjon | Beskrivelse |
AF | Akseleratorfunksjon | Kompilert maskinvareakseleratorbilde implementert i FPGA-logikk som akselererer en applikasjon. |
AFU | Akselerator funksjonell enhet | Maskinvareakselerator implementert i FPGA-logikk som avlaster en beregningsoperasjon for en applikasjon fra CPUen for å forbedre ytelsen. |
API | Applikasjonsprogrammeringsgrensesnitt | Et sett med subrutinedefinisjoner, protokoller og verktøy for å bygge programvareapplikasjoner. |
ASE | AFU Simuleringsmiljø | Samsimuleringsmiljø som lar deg bruke samme vertsapplikasjon og AF i et simuleringsmiljø. ASE er en del av Intel® Acceleration Stack for FPGAer. |
CCI-P | Core Cache Interface | CCI-P er standardgrensesnittet AFUer bruker for å kommunisere med verten. |
CL | Cache linje | 64-byte hurtigbufferlinje |
DFH | Overskrift for enhetsfunksjoner | Oppretter en koblet liste over funksjonsoverskrifter for å gi en utvidbar måte å legge til funksjoner på. |
FIM | FPGA Interface Manager | FPGA-maskinvaren som inneholder FPGA Interface Unit (FIU) og eksterne grensesnitt for minne, nettverk osv.
Akseleratorfunksjonen (AF) har grensesnitt med FIM under kjøretid. |
FIU | FPGA-grensesnittenhet | FIU er et plattformgrensesnittlag som fungerer som en bro mellom plattformgrensesnitt som PCIe*, UPI og AFU-sidegrensesnitt som CCI-P. |
fortsatte... |
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Akronymer | Ekspansjon | Beskrivelse |
MPF | Minneegenskaper fabrikk | MPF er en grunnleggende byggestein (BBB) som AFUer kan bruke for å gi CCI-P trafikkformingsoperasjoner for transaksjoner med FIU. |
Msg | Beskjed | Melding – et kontrollvarsel |
NLB | Native Loopback | NLB utfører lesing og skriving til CCI-P-koblingen for å teste tilkobling og gjennomstrømning. |
RdLine_I | Les linje ugyldig | Minneleseforespørsel, med FPGA-bufferhint satt til ugyldig. Linjen er ikke bufret i FPGA, men kan forårsake FPGA-bufferforurensning.
Note: Cachen tag sporer forespørselsstatusen for alle utestående forespørsler på Intel Ultra Path Interconnect (Intel UPI). Derfor, selv om RdLine_I er merket som ugyldig ved fullføring, bruker den cachen tag midlertidig for å spore forespørselsstatusen over UPI. Denne handlingen kan føre til utkasting av en hurtigbufferlinje, noe som resulterer i hurtigbufferforurensning. Advanentage av å bruke RdLine_I er at det ikke spores av CPU-katalogen; dermed forhindrer det snoking fra CPU. |
RdLine-S | Les linje delt | Minneleseforespørsel med FPGA-bufferhint satt til delt. Det gjøres et forsøk på å holde den i FPGA-bufferen i en delt tilstand. |
WrLine_I | Skrivelinje ugyldig | Minneskriveforespørsel, med FPGA-bufferhint satt til Ugyldig. FIU skriver dataene uten intensjon om å holde dataene i FPGA-buffer. |
WrLine_M | Skriv linje endret | Minneskriveforespørsel, med FPGA-cache-hintet satt til Modified. FIUen skriver dataene og lar dem ligge i FPGA-bufferen i en modifisert tilstand. |
Akselerasjonsordliste
Tabell 3. Akselerasjonsstabel for Intel Xeon® CPU med FPGA-ordliste
Periode | Forkortelse | Beskrivelse |
Intel Acceleration Stack for Intel Xeon® CPU med FPGAer | Akselerasjonsstabel | En samling av programvare, fastvare og verktøy som gir ytelsesoptimalisert tilkobling mellom en Intel FPGA og en Intel Xeon-prosessor. |
Intel FPGA programmerbart akselerasjonskort (Intel FPGA PAC) | Intel FPGA PAC | PCIe FPGA-akseleratorkort. Inneholder en FPGA Interface Manager (FIM) som pares med en Intel Xeon-prosessor over PCIe-bussen. |
Native Loopback Accelerator Functional Unit (AFU)
Native Loopback (NLB) AFU Overview
- NLB-eneample AFUer består av et sett med Verilog og System Verilog files for å teste minnelesing og skriving, båndbredde og ventetid.
- Denne pakken inkluderer tre AFUer som du kan bygge fra samme RTL-kilde. Konfigurasjonen av RTL-kildekoden lager disse AFU-ene.
NLB Sample akseleratorfunksjon (AF)
$OPAE_PLATFORM_ROOT/hw/samples-katalogen lagrer kildekoden for følgende NLB-erample AFUer:
- nlb_modus_0
- nlb_mode_0_stp
- nlb_modus_3
Note: $DCP_LOC/hw/samples-katalogen lagrer NLB-eneample AFUs kildekode for 1.0-utgivelsespakken.
For å forstå NLB-eneampAFU-kildekodestrukturen og hvordan du bygger den, se en av følgende hurtigstartveiledninger (avhengig av hvilken Intel FPGA PAC du bruker):
- Hvis du bruker Intel PAC med Intel Arria® 10 GX FPGA, se IntelProgrammable Acceleration Card med Intel Arria 10 GX FPGA.
- Hvis du bruker Intel FPGA PAC D5005, se Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005.
Utgivelsespakken gir følgende tre sampLøv, blader:
- NLB-modus 0 AF: krever hello_fpga eller fpgadiag-verktøy for å utføre lpbk1-testen.
- NLB-modus 3 AF: krever fpgadiag-verktøyet for å utføre trupt-, lese- og skrivetestene.
- NLB-modus 0 stp AF: krever hello_fpga eller fpgadiag-verktøy for å utføre lpbak1-testen.
Note: nlb_mode_0_stp er den samme AFU som nlb_mode_0, men med Signal Tap debug-funksjonen aktivert.
Verktøyene fpgadiag og hello_fpga hjelper den aktuelle AF med å diagnostisere, teste og rapportere om FPGA-maskinvaren.
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Figur 1. Native Loopback (nlb_lpbk.sv) Top Level Wrapper
Tabell 4. NLB Files
File Navn | Beskrivelse |
nlb_lpbk.sv | Toppnivå-innpakning for NLB som instansierer forespørselen og dommeren. |
arbiter.sv | Instantierer test-AF. |
requestor.sv | Godtar forespørsler fra dommeren og formaterer forespørslene i henhold til CCI-P-spesifikasjonen. Implementerer også flytkontroll. |
nlb_csr.sv | Implementerer et 64-bits lese-/skrivekontroll- og statusregister (CSR). Registrene støtter både 32- og 64-bit lesing og skriving. |
nlb_gram_sdp.sv | Implementerer en generisk RAM med to porter med én skriveport og én leseport. |
NLB er en referanseimplementering av en AFU som er kompatibel med Intel Acceleration Stack for Intel Xeon CPU med FPGAs Core Cache Interface (CCI-P) Reference Manual. NLBs primære funksjon er å validere vertstilkobling ved å bruke forskjellige minnetilgangsmønstre. NLB måler også båndbredde og lese-/skriveforsinkelse. Båndbreddetesten har følgende alternativer:
- 100% lest
- 100% skriver
- 50 % leser og 50 % skriver
Relatert informasjon
- Intel Acceleration Stack Hurtigstartguide for Intel Programmerbart Acceleration Card med Arria 10 GX FPGA
- Akselerasjonsstabel for Intel Xeon CPU med FPGAs Core Cache Interface (CCI-P) Referansehåndbok
- Intel Acceleration Stack Hurtigstartguide for Intel FPGA Programmerbart Acceleration Card D5005
Native Loopback-kontroll og statusregisterbeskrivelser
Tabell 5. CSR-navn, adresser og beskrivelser
Byteadresse (OPAE) | Ord Adresse (CCI-P) | Adgang | Navn | Bredde | Beskrivelse |
0x0000 | 0x0000 | RO | DFH | 64 | AF-enhetsfunksjonshode. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID lav. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID høy. |
0x0018 | 0x0006 | Rsvd | CSR_DFH_RSVD0 | 64 | Obligatorisk reservert 0. |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | Obligatorisk reservert 1. |
0x0100 | 0x0040 | RW | CSR_SCRATCHPAD0 | 64 | Kladdeblokkregister 0. |
0x0108 | 0x0042 | RW | CSR_SCRATCHPAD1 | 64 | Kladdeblokkregister 2. |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASE L | 32 | Lavere 32-bits AF DSM-baseadresse. De nederste 6 bitene er 4×00 fordi adressen er justert til 64-byte cache-linjestørrelsen. |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASE H | 32 | Øvre 32-bits AF DSM-baseadresse. |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | Start fysisk adresse for kildebuffer. Alle leseforespørsler er målrettet mot denne regionen. |
0x0128 | 0x004A | RW | CSR_DST_ADDR | 64 | Start fysisk adresse for destinasjonsbuffer. Alle skriveforespørsler er rettet mot denne regionen |
0x0130 | 0x004C | RW | CSR_NUM_LINES | 32 | Antall hurtigbufferlinjer. |
0x0138 | 0x004E | RW | CSR_CTL | 32 | Kontrollerer testflyt, start, stopp, kraftfullføring. |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | Konfigurerer testparametere. |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | Inaktivitetsterskelgrense. |
0x0150 | 0x0054 | RW | CSR_INTERRUPT0 | 32 | SW tildeler Interrupt APIC ID og Vector til enheten. |
DSM Offset Kart | |||||
0x0040 | 0x0010 | RO | DSM_STATUS | 32 | Teststatus og feilregister. |
Tabell 6. CSR-bitfelt med eksamples
Denne tabellen viser CSR-bitfeltene som avhenger av verdien til CSR_NUM_LINES, . I eksample nedenfor = 14.
Navn | Bitfelt | Adgang | Beskrivelse |
CSR_SRC_ADDR | [63:] | RW | 2^(N+6)MB justert adresse peker til starten av lesebufferen. |
[-1:0] | RW | 0x0. | |
CSR_DST_ADDR | [63:] | RW | 2^(N+6)MB justert adresse peker til starten av skrivebufferen. |
[-1:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:] | RW | 0x0. |
fortsatte... |
Navn | Bitfelt | Adgang | Beskrivelse |
[-1:0] | RW | Antall hurtigbufferlinjer å lese eller skrive. Denne terskelen kan være forskjellig for hver test-AF.
Note: Sørg for at kilde- og destinasjonsbuffere er store nok til å romme cache linjer. CSR_NUM_LINES skal være mindre enn eller lik . |
|
For følgende verdier, anta =14. Deretter godtar CSR_SRC_ADDR og CSR_DST_ADDR 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | 1MB justert adresse. |
[13:0] | RW | 0x0. | |
CSR_DST_ADDR | [31:14] | RW | 1MB justert adresse. |
[13:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:14] | RW | 0x0. |
[13:0] | RW | Antall hurtigbufferlinjer å lese eller skrive. Denne terskelen kan være forskjellig for hver test-AF.
Note: Sørg for at kilde- og destinasjonsbuffere er store nok til å romme cache linjer. |
Tabell 7. Ytterligere CSR-bitfelt
Navn | Bitfelt | Adgang | Beskrivelse |
CSR_CTL | [31:3] | RW | Reservert. |
[2] | RW | Tving testgjennomføring. Skriver testfullføringsflagg og andre ytelsestellere til csr_stat. Etter å ha tvunget testfullføring, er maskinvaretilstanden identisk med en ikke-tvungen testfullføring. | |
[1] | RW | Starter testkjøring. | |
[0] | RW | Aktiv lav test tilbakestilling. Når den er lav, endres alle konfigurasjonsparametere til standardverdiene. | |
CSR_CFG | [29] | RW | cr_interrupt_testmode tester avbryter. Genererer et avbrudd på slutten av hver test. |
[28] | RW | cr_interrupt_on_error sender et avbrudd ved feil | |
oppdagelse. | |||
[27:20] | RW | cr_test_cfg konfigurerer oppførselen til hver testmodus. | |
[13:12] | RW | cr_chsel velger den virtuelle kanalen. | |
[10:9] | RW | cr_rdsel konfigurerer leseforespørselstypen. Kodingene har | |
følgende gyldige verdier: | |||
• 1'b00: RdLine_S | |||
• 2'b01: RdLine_I | |||
• 2'b11: Blandet modus | |||
[8] | RW | cr_delay_en muliggjør tilfeldig forsinkelsesinnsetting mellom forespørsler. | |
[6:5] | RW | Konfigurerer testmodus, cr_multiCL-len. Gyldige verdier er 0,1 og 3. | |
[4:2] | RW | cr_mode, konfigurerer testmodus. Følgende verdier er gyldige: | |
• 3'b000: LPBK1 | |||
• 3'b001: Les | |||
• 3'b010: Skriv | |||
• 3'b011: TRPUT | |||
fortsatte... |
Navn | Bitfelt | Adgang | Beskrivelse |
For mer informasjon om testmodus, se Testmoduser tema nedenfor. | |||
[1] | RW | c_cont velger testrollover eller testavslutning.
• Når 1'b0, avsluttes testen. Oppdaterer status CSR når Antall CSR_NUM_LINES er nådd. • Når 1'b1, går testen over til startadressen etter at den når CSR_NUM_LINES-tellingen. I rollover-modus avsluttes testen bare ved feil. |
|
[0] | RW | cr_wrthru_en bytter mellom WrLine_I og Wrline_M forespørselstyper.
• 1'b0: WrLine_M • 1'b1: WrLine_I |
|
CSR_INACT_THRESHOLD | [31:0] | RW | Inaktivitetsterskelgrense. Registrerer varigheten av stall under en testkjøring. Teller antall påfølgende tomgangssykluser. Hvis inaktiviteten teller
> CSR_INACT_THRESHOLD, ingen forespørsler sendes, ingen svar sendes mottatt, og inact_timeout-signalet er satt. Ved å skrive 1 til CSR_CTL[1] aktiveres denne telleren. |
CSR_INTERRUPT0 | [23:16] | RW | Avbruddsvektornummeret for enheten. |
[15:0] | RW | apic_id er APIC OD for enheten. | |
DSM_STATUS | [511:256] | RO | Feildumpskjema Testmodus. |
[255:224] | RO | Avslutt overhead. | |
[223:192] | RO | Start overhead. | |
[191:160] | RO | Antall skriverier. | |
[159:128] | RO | Antall avlesninger. | |
[127:64] | RO | Antall klokker. | |
[63:32] | RO | Test feilregister. | |
[31:16] | RO | Sammenlign og bytt suksessmåler. | |
[15:1] | RO | Unik ID for hver DSM-statusskriving. | |
[0] | RO | Flagg for testfullføring. |
Testmoduser
CSR_CFG[4:2] konfigurerer testmodusen. Følgende fire tester er tilgjengelige:
- LPBK1: Dette er en minnekopitest. AF kopierer CSR_NUM_LINES fra kildebufferen til målbufferen. Når testen er fullført, sammenligner programvaren kilde- og destinasjonsbufferne.
- Lese: Denne testen legger vekt på lesebanen og måler lesebåndbredde eller ventetid. AF leser CSR_NUM_LINES fra CSR_SRC_ADDR. Dette er bare en båndbredde- eller latenstest. Den bekrefter ikke dataene som er lest.
- Skrive: Denne testen legger vekt på skrivebanen og måler skrivebåndbredde eller ventetid. AF leser CSR_NUM_LINES fra CSR_SRC_ADDR. Dette er bare en båndbredde- eller latenstest. Den bekrefter ikke dataene som er skrevet.
- TRPUT: Denne testen kombinerer lesing og skriving. Den leser CSR_NUM_LINES fra CSR_SRC_ADDR plassering og skriver CSR_NUM_LINES til CSR_SRC_ADDR. Den måler også lese- og skrivebåndbredde. Denne testen kontrollerer ikke dataene. Leser og skriver har ingen avhengigheter
Følgende tabell viser CSR_CFG-kodingene for de fire testene. Denne tabellen setter og CSR_NUM_LINES, =14. Du kan endre antall hurtigbufferlinjer ved å oppdatere CSR_NUM_LINES-registeret.
Tabell 8. Testmoduser
FPGA-diagnostikk: fpgadiag
fpgadiag-verktøyet inkluderer flere tester for å diagnostisere, teste og rapportere om FPGA-maskinvaren. Bruk fpgadiag-verktøyet til å kjøre alle testmodusene. For mer informasjon om bruk av fpgadiag-verktøyet, se fpgadiag-delen i Open Programmable Acceleration Engine (OPAE) Tools Guide.
NLB-modus0 Hello_FPGA testflyt
- Programvaren initialiserer Device Status Memory (DSM) til null.
- Programvare skriver DSM BASE-adressen til AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Programvaren forbereder kilde- og destinasjonsminnebuffer. Dette preparatet er testspesifikk.
- Programvaren skriver CSR_CTL[2:0]= 0x1. Denne skrivingen bringer testen ut av tilbakestilling og inn i konfigurasjonsmodus. Konfigurasjonen kan bare fortsette når CSR_CTL[0]=1 og CSR_CTL[1]=1.
- Programvare konfigurerer testparametrene, for eksempel src, destaddress, csr_cfg, num lines, og så videre.
- Programvare CSR skriver CSR_CTL[2:0]= 0x3. AF begynner testkjøringen.
- Testfullføring:
- Maskinvare fullføres når testen fullføres eller oppdager en feil. Etter fullføring oppdaterer maskinvaren AF DSM_STATUS. Programvareundersøkelser DSM_STATUS[31:0]==1 for å oppdage testfullføring.
- Programvare kan fremtvinge testfullføring ved å skrive CSR skriver CSR_CTL[2:0]=0x7. Maskinvare AF oppdaterer DSM_STATUS.
Dokumentrevisjonshistorikk for brukerveiledningen for den funksjonelle enheten for Native Loopback Accelerator (AFU).
Dokumentversjon | Intel Acceleration Stackversjon | Endringer |
2019.08.05 | 2.0 (støttes med Intel
Quartus Prime Pro Edition 18.1.2) og 1.2 (støttes med Intel Quartus Prime Pro Edition 17.1.1) |
Lagt til støtte for Intel FPGA PAC D5005-plattformen i den nåværende utgivelsen. |
2018.12.04 | 1.2 (støttes med Intel
Quartus® Prime Pro Edition 17.1.1) |
Vedlikeholdsfrigjøring. |
2018.08.06 | 1.1 (støttes med Intel
Quartus Prime Pro Edition 17.1.1) og 1.0 (støttes med Intel Quartus Prime Pro Edition 17.0.0) |
Oppdaterte plasseringen av kildekoden for NLB-eneample AFU inn NLB Sample akseleratorfunksjon (AF) del. |
2018.04.11 | 1.0 (støttes med Intel
Quartus Prime Pro Edition 17.0.0) |
Første utgivelse. |
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Dokumenter / Ressurser
![]() |
intel Native Loopback Accelerator Functional Unit (AFU) [pdfBrukerhåndbok Native Loopback Accelerator Functional Unit AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU |