Intel Native Loopback Accelerator Functional Unit (AFU)
Om detta dokument
Konventioner
Tabell 1. Dokumentkonventioner
Konvent | Beskrivning |
# | Föregår ett kommando som anger att kommandot ska anges som root. |
$ | Indikerar att ett kommando ska anges som en användare. |
Detta typsnitt | Filenamn, kommandon och nyckelord skrivs ut med detta teckensnitt. Långa kommandorader skrivs ut i detta teckensnitt. Även om långa kommandorader kan gå till nästa rad, är returen inte en del av kommandot; tryck inte på enter. |
Indikerar att platshållartexten som visas mellan vinkelparenteserna måste ersättas med ett lämpligt värde. Gå inte in i vinkelfästena. |
Akronymer
Tabell 2. Akronymer
Akronymer | Expansion | Beskrivning |
AF | Acceleratorfunktion | Kompilerad hårdvaruacceleratorbild implementerad i FPGA-logik som accelererar en applikation. |
AFU | Accelerator funktionsenhet | Hårdvaruaccelerator implementerad i FPGA-logik som avlastar en beräkningsoperation för en applikation från CPU:n för att förbättra prestandan. |
API | Applikationsprogrammeringsgränssnitt | En uppsättning subrutindefinitioner, protokoll och verktyg för att bygga mjukvaruapplikationer. |
ASE | AFU Simuleringsmiljö | Samsimuleringsmiljö som låter dig använda samma värdapplikation och AF i en simuleringsmiljö. ASE är en del av Intel® Acceleration Stack för FPGA. |
CCI-P | Core Cache Interface | CCI-P är standardgränssnittet som AFU använder för att kommunicera med värden. |
CL | Cachelinje | 64-byte cache-linje |
DFH | Enhetsfunktionshuvud | Skapar en länkad lista med funktionsrubriker för att tillhandahålla ett utökningsbart sätt att lägga till funktioner. |
FIM | FPGA Interface Manager | FPGA-hårdvaran som innehåller FPGA Interface Unit (FIU) och externa gränssnitt för minne, nätverk, etc.
Acceleratorfunktionen (AF) samverkar med FIM vid körning. |
FIU | FPGA-gränssnittsenhet | FIU är ett plattformsgränssnittsskikt som fungerar som en brygga mellan plattformsgränssnitt som PCIe*, UPI och gränssnitt på AFU-sidan som CCI-P. |
fortsatt… |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Akronymer | Expansion | Beskrivning |
MPF | Minnesegenskaper Fabrik | MPF är en Basic Building Block (BBB) som AFU:er kan använda för att tillhandahålla CCI-P trafikformningsoperationer för transaktioner med FIU. |
Medd | Meddelande | Meddelande – ett kontrollmeddelande |
NLB | Native Loopback | NLB utför läsningar och skrivningar till CCI-P-länken för att testa anslutning och genomströmning. |
RdLine_I | Läsrad ogiltig | Minnesläsningsbegäran, med FPGA-cache-tips inställd på ogiltig. Linjen är inte cachelagrad i FPGA:n, men kan orsaka FPGA-cacheförorening.
Notera: Cachen tag spårar förfrågningsstatus för alla utestående förfrågningar på Intel Ultra Path Interconnect (Intel UPI). Därför, även om RdLine_I markeras ogiltig vid slutförandet, förbrukar den cachen tag tillfälligt för att spåra begärans status över UPI. Den här åtgärden kan resultera i att en cache-linje vräks, vilket resulterar i cacheförorening. Advanentage av att använda RdLine_I är att det inte spåras av CPU-katalogen; sålunda förhindrar den snooping från CPU. |
RdLine-S | Läs linje delad | Minnesläsningsbegäran med FPGA-cache-tips inställd på delad. Ett försök görs att hålla den i FPGA-cachen i ett delat tillstånd. |
WrLine_I | Skriv rad ogiltig | Minnesskrivbegäran, med FPGA-cache-tips inställd på Ogiltig. FIU skriver data utan avsikt att behålla data i FPGA-cache. |
WrLine_M | Skriv rad ändrad | Memory Write Request, med FPGA-cache-tipset inställt på Modified. FIU skriver data och lämnar den i FPGA-cachen i ett modifierat tillstånd. |
Accelerationsordlista
Tabell 3. Accelerationsstack för Intel Xeon® CPU med FPGA Ordlista
Kalla | Förkortning | Beskrivning |
Intel Acceleration Stack för Intel Xeon® CPU med FPGA | Accelerationsstapel | En samling programvara, firmware och verktyg som ger prestandaoptimerad anslutning mellan en Intel FPGA och en Intel Xeon-processor. |
Intel FPGA programmerbart accelerationskort (Intel FPGA PAC) | Intel FPGA PAC | PCIe FPGA acceleratorkort. Innehåller en FPGA Interface Manager (FIM) som paras ihop med en Intel Xeon-processor över PCIe-bussen. |
Native Loopback Accelerator Functional Unit (AFU)
Native Loopback (NLB) AFU överview
- NLB:sample AFU består av en uppsättning Verilog och System Verilog files för att testa minnesläsning och skrivning, bandbredd och latens.
- Det här paketet innehåller tre AFU:er som du kan bygga från samma RTL-källa. Din konfiguration av RTL-källkoden skapar dessa AFU:er.
NLB Sample Acceleratorfunktion (AF)
$OPAE_PLATFORM_ROOT/hw/samples-katalogen lagrar källkod för följande NLB:erample AFUs:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Notera: $DCP_LOC/hw/samples-katalogen lagrar NLB:ernaample AFUs källkod för 1.0-versionspaketet.
För att förstå NLB:sampAFU-källkodsstrukturen och hur man bygger den, se en av följande snabbstartsguider (beroende på vilken Intel FPGA PAC du använder):
- Om du använder Intel PAC med Intel Arria® 10 GX FPGA, se IntelProgrammable Acceleration Card med Intel Arria 10 GX FPGA.
- Om du använder Intel FPGA PAC D5005, se Intel Acceleration Stack Quick Start Guide för Intel FPGA Programmable Acceleration Card D5005.
Releasepaketet innehåller följande tre sample AFs:
- NLB-läge 0 AF: kräver hello_fpga eller fpgadiag-verktyg för att utföra lpbk1-testet.
- NLB-läge 3 AF: kräver verktyget fpgadiag för att utföra trupt-, läs- och skrivtesterna.
- NLB-läge 0 stp AF: kräver hello_fpga eller fpgadiag för att utföra lpbak1-testet.
Notera: nlb_mode_0_stp är samma AFU som nlb_mode_0 men med Signal Tap debug-funktionen aktiverad.
Verktygen fpgadiag och hello_fpga hjälper lämplig AF att diagnostisera, testa och rapportera om FPGA-hårdvaran.
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Figur 1. Native Loopback (nlb_lpbk.sv) Top Level Wrapper
Tabell 4. NLB Files
File Namn | Beskrivning |
nlb_lpbk.sv | Toppnivåomslag för NLB som instansierar begäranden och medlaren. |
arbiter.sv | Instantierar test-AF. |
requestor.sv | Accepterar förfrågningar från skiljedomaren och formaterar förfrågningarna enligt CCI-P-specifikationen. Implementerar även flödeskontroll. |
nlb_csr.sv | Implementerar ett 64-bitars läs/skrivkontroll- och statusregister (CSR). Registren stöder både 32- och 64-bitars läsning och skrivning. |
nlb_gram_sdp.sv | Implementerar ett generiskt RAM med dubbla portar med en skrivport och en läsport. |
NLB är en referensimplementering av en AFU som är kompatibel med Intel Acceleration Stack för Intel Xeon CPU med FPGAs Core Cache Interface (CCI-P) Reference Manual. NLB:s primära funktion är att validera värdanslutningar med hjälp av olika minnesåtkomstmönster. NLB mäter även bandbredd och läs/skrivfördröjning. Bandbreddstestet har följande alternativ:
- 100% läst
- 100% skriver
- 50 % läser och 50 % skriver
Relaterad information
- Intel Acceleration Stack Snabbstartguide för Intel Programmerbart Acceleration Card med Arria 10 GX FPGA
- Acceleration Stack för Intel Xeon CPU med FPGAs Core Cache Interface (CCI-P) Referensmanual
- Intel Acceleration Stack Snabbstartguide för Intel FPGA Programmerbart Acceleration Card D5005
Beskrivningar av Native Loopback Control och Status Register
Tabell 5. CSR-namn, adresser och beskrivningar
Byte-adress (OPAE) | Ord Adress (CCI-P) | Tillträde | Namn | Bredd | Beskrivning |
0x0000 | 0x0000 | RO | DFH | 64 | AF-enhetsfunktionshuvud. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | AF ID låg. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | AF ID hög. |
0x0018 | 0x0006 | Rsvd | CSR_DFH_RSVD0 | 64 | Obligatorisk reserverad 0. |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | Obligatorisk reserverad 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 | Lägre 32-bitars AF DSM-basadress. De lägre 6 bitarna är 4×00 eftersom adressen är anpassad till 64-byte cache-linjestorleken. |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASE H | 32 | Övre 32-bitars AF DSM-basadress. |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | Starta fysisk adress för källbuffert. Alla läsbegäranden är inriktade på denna region. |
0x0128 | 0x004A | RW | CSR_DST_ADDR | 64 | Starta fysisk adress för destinationsbuffert. Alla skrivförfrågningar är inriktade på denna region |
0x0130 | 0x004C | RW | CSR_NUM_LINES | 32 | Antal cache-rader. |
0x0138 | 0x004E | RW | CSR_CTL | 32 | Styr testflöde, start, stopp, kraftfullförande. |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | Konfigurerar testparametrar. |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | Inaktivitetströskelgräns. |
0x0150 | 0x0054 | RW | CSR_INTERRUPT0 | 32 | SW allokerar Interrupt APIC ID och Vector till enheten. |
DSM Offsetkarta | |||||
0x0040 | 0x0010 | RO | DSM_STATUS | 32 | Teststatus och felregister. |
Tabell 6. CSR-bitfält med examples
Den här tabellen listar CSR-bitfälten som beror på värdet på CSR_NUM_LINES, . I example nedan = 14.
Namn | Bitfält | Tillträde | Beskrivning |
CSR_SRC_ADDR | [63:] | RW | 2^(N+6)MB justerad adress pekar på början av läsbufferten. |
[-1:0] | RW | 0x0. | |
CSR_DST_ADDR | [63:] | RW | 2^(N+6)MB justerad adress pekar på början av skrivbufferten. |
[-1:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:] | RW | 0x0. |
fortsatt… |
Namn | Bitfält | Tillträde | Beskrivning |
[-1:0] | RW | Antal cacherader att läsa eller skriva. Denna tröskel kan vara olika för varje test-AF.
Notera: Se till att käll- och destinationsbuffertar är tillräckligt stora för att rymma cache rader. CSR_NUM_LINES ska vara mindre än eller lika med . |
|
För följande värden, anta =14. Sedan accepterar CSR_SRC_ADDR och CSR_DST_ADDR 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | 1MB justerad adress. |
[13:0] | RW | 0x0. | |
CSR_DST_ADDR | [31:14] | RW | 1MB justerad adress. |
[13:0] | RW | 0x0. | |
CSR_NUM_LINES | [31:14] | RW | 0x0. |
[13:0] | RW | Antal cacherader att läsa eller skriva. Denna tröskel kan vara olika för varje test-AF.
Notera: Se till att käll- och destinationsbuffertar är tillräckligt stora för att rymma cache rader. |
Tabell 7. Ytterligare CSR-bitfält
Namn | Bitfält | Tillträde | Beskrivning |
CSR_CTL | [31:3] | RW | Reserverad. |
[2] | RW | Tvinga testet slutförande. Skriver testavslutningsflagga och andra prestandaräknare till csr_stat. Efter framtvingat testslutförande är hårdvarutillståndet identiskt med ett icke-tvingat testslutförande. | |
[1] | RW | Startar testkörning. | |
[0] | RW | Aktiv lågteståterställning. När den är låg ändras alla konfigurationsparametrar till sina standardvärden. | |
CSR_CFG | [29] | RW | cr_interrupt_testmode testar avbrott. Genererar ett avbrott i slutet av varje test. |
[28] | RW | cr_interrupt_on_error skickar ett avbrott vid fel | |
upptäckt. | |||
[27:20] | RW | cr_test_cfg konfigurerar beteendet för varje testläge. | |
[13:12] | RW | cr_chsel väljer den virtuella kanalen. | |
[10:9] | RW | cr_rdsel konfigurerar typen av läsbegäran. Kodningarna har | |
följande giltiga värden: | |||
• 1'b00: RdLine_S | |||
• 2'b01: RdLine_I | |||
• 2'b11: Blandat läge | |||
[8] | RW | cr_delay_en möjliggör slumpmässig fördröjningsinsättning mellan förfrågningar. | |
[6:5] | RW | Konfigurerar testläge, cr_multiCL-len. Giltiga värden är 0,1 och 3. | |
[4:2] | RW | cr_mode, konfigurerar testläge. Följande värden är giltiga: | |
• 3'b000: LPBK1 | |||
• 3'b001: Läs | |||
• 3'b010: Skriv | |||
• 3'b011: TRPUT | |||
fortsatt… |
Namn | Bitfält | Tillträde | Beskrivning |
För mer information om testläget, se Testlägen ämne nedan. | |||
[1] | RW | c_cont väljer testrollover eller testavslutning.
• När 1'b0 avslutas testet. Uppdaterar status CSR när Antalet CSR_NUM_LINES har uppnåtts. • När 1'b1 rullar testet över till startadressen efter att det når CSR_NUM_LINES-räkningen. I rollover-läge avslutas testet endast vid fel. |
|
[0] | RW | cr_wrthru_en växlar mellan WrLine_I och Wrline_M begärandetyper.
• 1'b0: WrLine_M • 1'b1: WrLine_I |
|
CSR_INACT_THRESHOLD | [31:0] | RW | Inaktivitetströskelgräns. Detekterar varaktigheten av stall under en testkörning. Räknar antalet på varandra följande tomgångscykler. Om inaktiviteten räknas
> CSR_INACT_THRESHOLD, inga förfrågningar skickas, inga svar skickas mottagen, och inact_timeout-signalen ställs in. Att skriva 1 till CSR_CTL[1] aktiverar denna räknare. |
CSR_INTERRUPT0 | [23:16] | RW | Avbrottsvektornumret för enheten. |
[15:0] | RW | apic_id är APIC OD för enheten. | |
DSM_STATUS | [511:256] | RO | Feldumpningsformulär Testläge. |
[255:224] | RO | Slut över huvudet. | |
[223:192] | RO | Börja ovanför. | |
[191:160] | RO | Antal skriverier. | |
[159:128] | RO | Antal avläsningar. | |
[127:64] | RO | Antal klockor. | |
[63:32] | RO | Testa felregister. | |
[31:16] | RO | Jämför och byt framgångsräknare. | |
[15:1] | RO | Unikt ID för varje DSM-statusskrivning. | |
[0] | RO | Flagga för slutförande av test. |
Testlägen
CSR_CFG[4:2] konfigurerar testläget. Följande fyra tester är tillgängliga:
- LPBK1: Detta är ett minneskopieringstest. AF:n kopierar CSR_NUM_LINES från källbufferten till målbufferten. När testet är klart jämför programvaran käll- och destinationsbuffertar.
- Läsa: Detta test betonar läsvägen och mäter läsbandbredd eller latens. AF läser CSR_NUM_LINES från CSR_SRC_ADDR. Detta är bara ett bandbredds- eller latenstest. Den verifierar inte den lästa informationen.
- Skriva: Detta test betonar skrivvägen och mäter skrivbandbredd eller latens. AF läser CSR_NUM_LINES från CSR_SRC_ADDR. Detta är bara ett bandbredds- eller latenstest. Den verifierar inte de skrivna uppgifterna.
- TRPUT: Detta test kombinerar läsning och skrivning. Den läser CSR_NUM_LINES från CSR_SRC_ADDR-platsen och skriver CSR_NUM_LINES till CSR_SRC_ADDR. Den mäter även läs- och skrivbandbredd. Detta test kontrollerar inte data. Läser och skriver har inga beroenden
Följande tabell visar CSR_CFG-kodningarna för de fyra testerna. Denna tabelluppsättningar och CSR_NUM_LINES, =14. Du kan ändra antalet cache-rader genom att uppdatera CSR_NUM_LINES-registret.
Tabell 8. Testlägen
FPGA-diagnostik: fpgadiag
Verktyget fpgadiag innehåller flera tester för att diagnostisera, testa och rapportera om FPGA-hårdvaran. Använd verktyget fpgadiag för att köra alla testlägen. För mer information om hur du använder verktyget fpgadiag, se avsnittet fpgadiag i Open Programmable Acceleration Engine (OPAE) Tools Guide.
NLB Mode0 Hello_FPGA testflöde
- Programvaran initierar Device Status Memory (DSM) till noll.
- Programvaran skriver DSM BASE-adressen till AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Programvaran förbereder käll- och destinationsminnesbuffert. Denna beredning är testspecifik.
- Programvaran skriver CSR_CTL[2:0]= 0x1. Denna skrivning tar testet ur återställning och in i konfigurationsläge. Konfigurationen kan bara fortsätta när CSR_CTL[0]=1 & CSR_CTL[1]=1.
- Programvaran konfigurerar testparametrarna, såsom src, destaddress, csr_cfg, num lines, och så vidare.
- Programvara CSR skriver CSR_CTL[2:0]= 0x3. AF börjar testkörningen.
- Testavslut:
- Hårdvara slutförs när testet slutförs eller upptäcker ett fel. Efter slutförandet uppdaterar hårdvaran AF DSM_STATUS. Programvaruundersökningar DSM_STATUS[31:0]==1 för att upptäcka att testet har slutförts.
- Programvara kan tvinga fram testslutförande genom att skriva CSR skriver CSR_CTL[2:0]=0x7. Hårdvara AF uppdaterar DSM_STATUS.
Dokumentversionshistorik för AFU-användarhandboken (Native Loopback Accelerator Functional Unit).
Dokumentversion | Intel Acceleration Stackversion | Ändringar |
2019.08.05 | 2.0 (stöds med Intel
Quartus Prime Pro Edition 18.1.2) och 1.2 (stöds med Intel Quartus Prime Pro Edition 17.1.1) |
Lade till stöd för Intel FPGA PAC D5005-plattformen i den aktuella versionen. |
2018.12.04 | 1.2 (stöds med Intel
Quartus® Prime Pro Edition 17.1.1) |
Frigörande av underhåll. |
2018.08.06 | 1.1 (stöds med Intel
Quartus Prime Pro Edition 17.1.1) och 1.0 (stöds med Intel Quartus Prime Pro Edition 17.0.0) |
Uppdaterade platsen för källkoden för NLB:ernaample AFU in NLB Sample Acceleratorfunktion (AF) avsnitt. |
2018.04.11 | 1.0 (stöds med Intel
Quartus Prime Pro Edition 17.0.0) |
Initial release. |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Dokument/resurser
![]() |
Intel Native Loopback Accelerator Functional Unit (AFU) [pdf] Användarhandbok Native Loopback Accelerator Functional Unit AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU |