intel-LOGO

Intel Native Loopback Accelerator Functional Unit (AFU)

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

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

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

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

  1. Programvaran initierar Device Status Memory (DSM) till noll.
  2. Programvaran skriver DSM BASE-adressen till AFU. CSR Write(DSM_BASE_H), CSRWrite(DSM_BASE_L)
  3. Programvaran förbereder käll- och destinationsminnesbuffert. Denna beredning är testspecifik.
  4. 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.
  5. Programvaran konfigurerar testparametrarna, såsom src, destaddress, csr_cfg, num lines, och så vidare.
  6. Programvara CSR skriver CSR_CTL[2:0]= 0x3. AF börjar testkörningen.
  7. 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

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *