intel Native Loopback Accelerator Functional Unit (AFU)
Om dette dokument
Konventioner
Tabel 1. Dokumentkonventioner
Konvention | Beskrivelse |
# | Går forud for en kommando, der angiver, at kommandoen skal indtastes som root. |
$ | Angiver, at en kommando skal indtastes som bruger. |
Denne skrifttype | Filenavne, kommandoer og nøgleord udskrives med denne skrifttype. Lange kommandolinjer udskrives med denne skrifttype. Selvom lange kommandolinjer kan ombrydes til næste linje, er returneringen ikke en del af kommandoen; tryk ikke på enter. |
Angiver, at pladsholderteksten, der vises mellem vinkelparenteserne, skal erstattes med en passende værdi. Indtast ikke vinkelbeslagene. |
Akronymer
Tabel 2. Akronymer
Akronymer | Udvidelse | Beskrivelse |
AF | Accelerator funktion | Kompileret Hardware Accelerator-billede implementeret i FPGA-logik, der accelererer en applikation. |
AFU | Accelerator funktionel enhed | Hardwareaccelerator implementeret i FPGA-logik, som aflaster en beregningsoperation for en applikation fra CPU'en for at forbedre ydeevnen. |
API | Applikationsprogrammeringsgrænseflade | Et sæt subrutinedefinitioner, protokoller og værktøjer til opbygning af softwareapplikationer. |
ASE | AFU Simuleringsmiljø | Co-simuleringsmiljø, der giver dig mulighed for at bruge den samme værtsapplikation og AF i et simuleringsmiljø. ASE er en del af Intel® Acceleration Stack til FPGA'er. |
CCI-P | Core Cache Interface | CCI-P er standardgrænsefladen AFU'er bruger til at kommunikere med værten. |
CL | Cache linje | 64-byte cache linje |
DFH | Enhedsfunktionshoved | Opretter en sammenkædet liste over funktionsoverskrifter for at give en udvidelsesbar måde at tilføje funktioner på. |
FIM | FPGA Interface Manager | FPGA-hardwaren, der indeholder FPGA Interface Unit (FIU) og eksterne grænseflader til hukommelse, netværk osv.
Acceleratorfunktionen (AF) har grænseflader med FIM'en under kørsel. |
FIU | FPGA Interface enhed | FIU er et platformsgrænsefladelag, der fungerer som en bro mellem platformsgrænseflader som PCIe*, UPI og AFU-sidegrænseflader såsom CCI-P. |
fortsatte… |
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Akronymer | Udvidelse | Beskrivelse |
MPF | Hukommelsesegenskaber Fabrik | MPF er en Basic Building Block (BBB), som AFU'er kan bruge til at levere CCI-P trafikformende operationer for transaktioner med FIU'en. |
Msg | Besked | Besked – en kontrolmeddelelse |
NLB | Native Loopback | NLB udfører læsninger og skrivninger til CCI-P-linket for at teste forbindelse og gennemløb. |
RdLine_I | Læs linje ugyldig | Hukommelseslæseanmodning, med FPGA-cache-tip indstillet til ugyldig. Linjen er ikke cachelagret i FPGA'en, men kan forårsage FPGA-cacheforurening.
Note: Cachen tag sporer anmodningsstatus for alle udestående anmodninger på Intel Ultra Path Interconnect (Intel UPI). Derfor, selvom RdLine_I er markeret som ugyldig ved afslutning, forbruger den cachen tag midlertidigt for at spore anmodningsstatus over UPI. Denne handling kan resultere i udsættelse af en cache-linje, hvilket resulterer i cache-forurening. Advanentage ved at bruge RdLine_I er, at det ikke spores af CPU-biblioteket; dermed forhindrer det snooping fra CPU. |
RdLine-S | Læs linje delt | Hukommelseslæseanmodning med FPGA-cache-tip indstillet til delt. Der gøres et forsøg på at holde det i FPGA-cachen i en delt tilstand. |
WrLine_I | Skriv linje ugyldig | Memory Write Request, med FPGA-cache-tip indstillet til Ugyldig. FIU'en skriver dataene uden intentioner om at beholde dataene i FPGA-cache. |
WrLine_M | Skriv linje ændret | Memory Write Request, med FPGA-cache-tip indstillet til Modified. FIU'en skriver dataene og efterlader dem i FPGA-cachen i en modificeret tilstand. |
Accelerationsordliste
Tabel 3. Accelerationsstak for Intel Xeon® CPU med FPGA'er Ordliste
Semester | Forkortelse | Beskrivelse |
Intel Acceleration Stack til Intel Xeon® CPU med FPGA'er | Accelerationsstak | En samling af software, firmware og værktøjer, der giver ydeevneoptimeret forbindelse mellem en Intel FPGA og en Intel Xeon-processor. |
Intel FPGA programmerbart accelerationskort (Intel FPGA PAC) | Intel FPGA PAC | PCIe FPGA acceleratorkort. Indeholder en FPGA Interface Manager (FIM), der parres med en Intel Xeon-processor over PCIe-bussen. |
Native Loopback Accelerator Functional Unit (AFU)
Native Loopback (NLB) AFU Overview
- NLB'erneample AFU'er omfatter et sæt af Verilog og System Verilog files for at teste hukommelseslæsninger og -skrivninger, båndbredde og latens.
- Denne pakke indeholder tre AFU'er, som du kan bygge fra den samme RTL-kilde. Din konfiguration af RTL-kildekoden skaber disse AFU'er.
NLB Sample Accelerator Funktion (AF)
$OPAE_PLATFORM_ROOT/hw/samples bibliotek gemmer kildekoden til følgende NLB'erample AFU'er:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Note: $DCP_LOC/hw/samples bibliotek gemmer NLB'erneample AFUs kildekode til 1.0-udgivelsespakken.
For at forstå NLB'erneampFor AFU-kildekodestrukturen, og hvordan den opbygges, henvises til en af følgende Quick Start Guides (afhængigt af hvilken Intel FPGA PAC du bruger):
- Hvis du bruger Intel PAC med Intel Arria® 10 GX FPGA, skal du se IntelProgrammable Acceleration Card med Intel Arria 10 GX FPGA.
- Hvis du bruger Intel FPGA PAC D5005, skal du se Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmable Acceleration Card D5005.
Udgivelsespakken indeholder følgende tre sample AF'er:
- NLB-tilstand 0 AF: kræver hello_fpga eller fpgadiag-værktøj for at udføre lpbk1-testen.
- NLB-tilstand 3 AF: kræver fpgadiag-værktøj til at udføre trupt-, læse- og skrivetests.
- NLB-tilstand 0 stp AF: kræver hello_fpga eller fpgadiag-værktøj for at udføre lpbak1-testen.
Note: nlb_mode_0_stp er den samme AFU som nlb_mode_0, men med Signal Tap debug-funktionen aktiveret.
Hjælpeprogrammerne fpgadiag og hello_fpga hjælper den relevante AF med at diagnosticere, teste og rapportere om FPGA-hardwaren.
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Figur 1. Native Loopback (nlb_lpbk.sv) Top Level Wrapper
Tabel 4. NLB Files
File Navn | Beskrivelse |
nlb_lpbk.sv | Indpakning på øverste niveau til NLB, der instansierer anmoderen og dommeren. |
arbiter.sv | Instantierer test-AF. |
requestor.sv | Accepterer anmodninger fra dommeren og formaterer anmodningerne i henhold til CCI-P-specifikationen. Implementerer også flowkontrol. |
nlb_csr.sv | Implementerer et 64-bit læse/skrive kontrol- og statusregistre (CSR). Registrene understøtter både 32- og 64-bit læsning og skrivning. |
nlb_gram_sdp.sv | Implementerer en generisk dual-port RAM med en skriveport og en læseport. |
NLB er en referenceimplementering af en AFU, der er kompatibel med Intel Acceleration Stack for Intel Xeon CPU med FPGAs Core Cache Interface (CCI-P) referencemanual. NLB's primære funktion er at validere værtsforbindelse ved hjælp af forskellige hukommelsesadgangsmønstre. NLB måler også båndbredde og læse/skriveforsinkelse. Båndbreddetesten har følgende muligheder:
- 100% læst
- 100% skriver
- 50 % læser og 50 % skriver
Relateret information
- Intel Acceleration Stack Quick Start Guide til Intel Programmerbart Acceleration Card med Arria 10 GX FPGA
- Accelerationsstak til Intel Xeon CPU med FPGA'er Core Cache Interface (CCI-P) Referencemanual
- Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmable Acceleration Card D5005
Native Loopback-kontrol og statusregisterbeskrivelser
Tabel 5. CSR-navne, adresser og beskrivelser
Byte-adresse (OPAE) | Ord adresse (CCI-P) | Adgang | Navn | Bredde | Beskrivelse |
0x0000 | 0x0000 | RO | DFH | 64 | AF-enhedsfunktionshoved. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID lavt. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID højt. |
0x0018 | 0x0006 | Rsvd | CSR_DFH_RSVD0 | 64 | Obligatorisk reserveret 0. |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | Obligatorisk reserveret 1. |
0x0100 | 0x0040 | RW | CSR_SCRATCHPAD0 | 64 | Scratchpad register 0. |
0x0108 | 0x0042 | RW | CSR_SCRATCHPAD1 | 64 | Scratchpad register 2. |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASE L | 32 | Lavere 32-bit AF DSM-basisadresse. De nederste 6 bits er 4×00, fordi adressen er justeret til 64-byte cache-linjestørrelsen. |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASE H | 32 | Øvre 32-bit AF DSM-basisadresse. |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | Start fysisk adresse for kildebuffer. Alle læseanmodninger er målrettet mod denne region. |
0x0128 | 0x004A | RW | CSR_DST_ADDR | 64 | Start fysisk adresse for destinationsbuffer. Alle skriveanmodninger er målrettet mod denne region |
0x0130 | 0x004C | RW | CSR_NUM_LINES | 32 | Antal cache-linjer. |
0x0138 | 0x004E | RW | CSR_CTL | 32 | Styrer testflow, start, stop, kraftfuldførelse. |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | Konfigurerer testparametre. |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | Grænse for inaktivitet. |
0x0150 | 0x0054 | RW | CSR_INTERRUPT0 | 32 | SW tildeler Interrupt APIC ID og Vector til enheden. |
DSM offset kort | |||||
0x0040 | 0x0010 | RO | DSM_STATUS | 32 | Teststatus og fejlregister. |
Tabel 6. CSR-bitfelter med eksamples
Denne tabel viser de CSR-bitfelter, der afhænger af værdien af CSR_NUM_LINES, . I example nedenfor = 14.
Navn | Bitfelt | Adgang | Beskrivelse |
CSR_SRC_ADDR | [63:] | RW | 2^(N+6)MB justeret adresse peger på starten af læsebufferen. |
[-1:0] | RW | 0x0. | |
CSR_DST_ADDR | [63:] | RW | 2^(N+6)MB justeret adresse peger på starten af skrivebufferen. |
[-1:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:] | RW | 0x0. |
fortsatte… |
Navn | Bitfelt | Adgang | Beskrivelse |
[-1:0] | RW | Antal cachelinjer at læse eller skrive. Denne tærskel kan være forskellig for hver test-AF.
Note: Sørg for, at kilde- og destinationsbuffere er store nok til at rumme cache linjer. CSR_NUM_LINES skal være mindre end eller lig med . |
|
Antag for følgende værdier =14. Derefter accepterer CSR_SRC_ADDR og CSR_DST_ADDR 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | 1 MB tilpasset adresse. |
[13:0] | RW | 0x0. | |
CSR_DST_ADDR | [31:14] | RW | 1 MB tilpasset adresse. |
[13:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:14] | RW | 0x0. |
[13:0] | RW | Antal cachelinjer at læse eller skrive. Denne tærskel kan være forskellig for hver test-AF.
Note: Sørg for, at kilde- og destinationsbuffere er store nok til at rumme cache linjer. |
Tabel 7. Yderligere CSR-bitfelter
Navn | Bitfelt | Adgang | Beskrivelse |
CSR_CTL | [31:3] | RW | Reserveret. |
[2] | RW | Tving testafslutning. Skriver testafslutningsflag og andre ydeevnetællere til csr_stat. Efter tvungen testafslutning er hardwaretilstanden identisk med en ikke-tvungen testafslutning. | |
[1] | RW | Starter testudførelse. | |
[0] | RW | Aktiv lav test nulstilling. Når den er lav, ændres alle konfigurationsparametre til deres standardværdier. | |
CSR_CFG | [29] | RW | cr_interrupt_testmode test afbryder. Genererer et afbrydelse i slutningen af hver test. |
[28] | RW | cr_interrupt_on_error sender et interrupt, når der opstår fejl | |
opdagelse. | |||
[27:20] | RW | cr_test_cfg konfigurerer adfærden for hver testtilstand. | |
[13:12] | RW | cr_chsel vælger den virtuelle kanal. | |
[10:9] | RW | cr_rdsel konfigurerer læseanmodningstypen. Kodningerne har | |
følgende gyldige værdier: | |||
• 1'b00: RdLine_S | |||
• 2'b01: RdLine_I | |||
• 2'b11: Blandet tilstand | |||
[8] | RW | cr_delay_en muliggør tilfældig forsinkelsesindsættelse mellem anmodninger. | |
[6:5] | RW | Konfigurerer testtilstand, cr_multiCL-len. Gyldige værdier er 0,1 og 3. | |
[4:2] | RW | cr_mode, konfigurerer testtilstand. Følgende værdier er gyldige: | |
• 3'b000: LPBK1 | |||
• 3'b001: Læs | |||
• 3'b010: Skriv | |||
• 3'b011: TRPUT | |||
fortsatte… |
Navn | Bitfelt | Adgang | Beskrivelse |
For mere information om testtilstanden, se Testtilstande emne nedenfor. | |||
[1] | RW | c_cont vælger test rollover eller test afslutning.
• Når 1'b0, afsluttes testen. Opdaterer status CSR når Antal CSR_NUM_LINES er nået. • Når 1'b1, ruller testen over til startadressen, efter at den når CSR_NUM_LINES optællingen. I rollover-tilstand afsluttes testen kun ved fejl. |
|
[0] | RW | cr_wrthru_en skifter mellem WrLine_I og Wrline_M anmodningstyper.
• 1'b0: WrLine_M • 1'b1: WrLine_I |
|
CSR_INACT_THRESHOLD | [31:0] | RW | Grænse for inaktivitet. Registrerer varigheden af stall under en testkørsel. Tæller antallet af på hinanden følgende tomgangscyklusser. Hvis inaktiviteten tæller
> CSR_INACT_THRESHOLD, ingen anmodninger sendes, ingen svar er modtaget, og inact_timeout-signalet er indstillet. Ved at skrive 1 til CSR_CTL[1] aktiveres denne tæller. |
CSR_INTERRUPT0 | [23:16] | RW | Afbrydelsesvektornummeret for enheden. |
[15:0] | RW | apic_id er APIC OD for enheden. | |
DSM_STATUS | [511:256] | RO | Fejldump formular Testtilstand. |
[255:224] | RO | Afslut overhead. | |
[223:192] | RO | Start overhead. | |
[191:160] | RO | Antal skrifter. | |
[159:128] | RO | Antal aflæsninger. | |
[127:64] | RO | Antal ure. | |
[63:32] | RO | Test fejlregister. | |
[31:16] | RO | Sammenlign og byt succestæller. | |
[15:1] | RO | Unikt ID for hver DSM-statusskrivning. | |
[0] | RO | Flag for testafslutning. |
Testtilstande
CSR_CFG[4:2] konfigurerer testtilstanden. Følgende fire tests er tilgængelige:
- LPBK1: Dette er en hukommelseskopitest. AF kopierer CSR_NUM_LINES fra kildebufferen til destinationsbufferen. Når testen er afsluttet, sammenligner softwaren kilde- og destinationsbufferne.
- Læse: Denne test understreger læsestien og måler læsebåndbredde eller latens. AF læser CSR_NUM_LINES startende fra CSR_SRC_ADDR. Dette er kun en båndbredde- eller latenstest. Den bekræfter ikke de læste data.
- Skrive: Denne test understreger skrivestien og måler skrivebåndbredde eller latens. AF læser CSR_NUM_LINES startende fra CSR_SRC_ADDR. Dette er kun en båndbredde- eller latenstest. Den bekræfter ikke de skrevne data.
- TRPUT: Denne test kombinerer læsning og skrivning. Den læser CSR_NUM_LINES startende fra CSR_SRC_ADDR placering og skriver CSR_NUM_LINES til CSR_SRC_ADDR. Den måler også læse- og skrivebåndbredde. Denne test kontrollerer ikke dataene. De læser og skriver har ingen afhængigheder
Følgende tabel viser CSR_CFG-kodningerne for de fire tests. Dette tabelsæt og CSR_NUM_LINES, =14. Du kan ændre antallet af cachelinjer ved at opdatere CSR_NUM_LINES-registret.
Tabel 8. Testtilstande
FPGA-diagnostik: fpgadiag
Fpgadiag-værktøjet inkluderer flere tests til at diagnosticere, teste og rapportere om FPGA-hardwaren. Brug fpgadiag-værktøjet til at køre alle testtilstande. For mere information om brug af fpgadiag-værktøjet, se fpgadiag-afsnittet i Open Programmable Acceleration Engine (OPAE) Tools Guide.
NLB Mode0 Hello_FPGA Test Flow
- Software initialiserer Device Status Memory (DSM) til nul.
- Software skriver DSM BASE-adressen til AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Software forbereder kilde- og destinationshukommelsesbuffer. Dette præparat er testspecifikt.
- Software skriver CSR_CTL[2:0]= 0x1. Denne skrivning bringer testen ud af nulstilling og i konfigurationstilstand. Konfiguration kan kun fortsætte, når CSR_CTL[0]=1 & CSR_CTL[1]=1.
- Software konfigurerer testparametrene, såsom src, destaddress, csr_cfg, num lines, og så videre.
- Software CSR skriver CSR_CTL[2:0]= 0x3. AF begynder testudførelsen.
- Testafslutning:
- Hardware fuldføres, når testen er fuldført eller opdager en fejl. Efter færdiggørelsen opdaterer hardware AF DSM_STATUS. Softwareafstemninger DSM_STATUS[31:0]==1 for at registrere testafslutning.
- Software kan fremtvinge testafslutning ved at skrive CSR skriver CSR_CTL[2:0]=0x7. Hardware AF opdaterer DSM_STATUS.
Dokument revisionshistorik for den oprindelige Loopback Accelerator Functional Unit (AFU) brugervejledning
Dokumentversion | Intel Acceleration Stack version | Ændringer |
2019.08.05 | 2.0 (understøttet med Intel
Quartus Prime Pro Edition 18.1.2) og 1.2 (understøttet med Intel Quartus Prime Pro Edition 17.1.1) |
Tilføjet understøttelse af Intel FPGA PAC D5005-platformen i den aktuelle udgivelse. |
2018.12.04 | 1.2 (understøttet med Intel
Quartus® Prime Pro Edition 17.1.1) |
Vedligeholdelsesfrigivelse. |
2018.08.06 | 1.1 (understøttet med Intel
Quartus Prime Pro Edition 17.1.1) og 1.0 (understøttet med Intel Quartus Prime Pro Edition 17.0.0) |
Opdaterede placeringen af kildekoden til NLB'erneample AFU i NLB Sample Accelerator Funktion (AF) afsnit. |
2018.04.11 | 1.0 (understøttet med Intel
Quartus Prime Pro Edition 17.0.0) |
Første udgivelse. |
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Dokumenter/ressourcer
![]() |
intel Native Loopback Accelerator Functional Unit (AFU) [pdfBrugervejledning Native Loopback Accelerator Functional Unit AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU |