intel-LOGO

intel Native Loopback Accelerator Functional Unit (AFU)

intel-Native-Loopback-Accelerator-Functional Unit-(AFU)-PRO

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

intel-Native-Loopback-Accelerator-Functional Unit-(AFU)-1

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

  1. Programvaren initialiserer Device Status Memory (DSM) til null.
  2. Programvare skriver DSM BASE-adressen til AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
  3. Programvaren forbereder kilde- og destinasjonsminnebuffer. Dette preparatet er testspesifikk.
  4. 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.
  5. Programvare konfigurerer testparametrene, for eksempel src, destaddress, csr_cfg, num lines, og så videre.
  6. Programvare CSR skriver CSR_CTL[2:0]= 0x3. AF begynner testkjøringen.
  7. 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

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *