Intel Native Loopback Accelerator Functional Unit (AFU) Guida d'utilizatore

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

intel-LOGO

Intel Native Loopback Accelerator Unità Funzionale (AFU)

Intel-Native-Loopback-Accelerator-Unità-funzionale-(AFU)-PRO

À propositu di stu Documentu

Cunvenzioni
Table 1. Cunvenzioni di documentu

Cunvenzione Descrizzione
# Precede un cumandamentu chì indica chì u cumandamentu deve esse inseritu cum'è root.
$ Indica chì un cumandamentu deve esse inseritu cum'è utilizatore.
Stu font Filenomi, cumandamenti è parole chjave sò stampati in questu font. E linee di cumanda longu sò stampate in questu font. Ancu s'è e linee di cumandamenti longu ponu chjappà à a linea dopu, u ritornu ùn hè micca parte di u cumandamentu; ùn appughjà micca enter.
Indica chì u testu di piazzamentu chì appare trà i parentesi angulari deve esse rimpiazzatu cù un valore adattatu. Ùn entre in i parentesi angulari.

Acronimi
Table 2. Acronimi

Acronimi Espansione Descrizzione
AF Funzione acceleratore L'imagine di l'acceleratore di hardware compilatu implementata in a logica FPGA chì accelera una applicazione.
AFU Unità Funzionale Accelerator Acceleratore hardware implementatu in logica FPGA chì scarica una operazione computazionale per una applicazione da u CPU per migliurà u rendiment.
API Interfaccia di prugrammazione di l'applicazione Un inseme di definizioni di subrutine, protokolli è arnesi per custruisce applicazioni software.
ASE Ambiente di simulazione AFU Ambiente di co-simulazione chì vi permette di utilizà a stessa applicazione host è AF in un ambiente di simulazione. ASE face parte di l'Intel® Acceleration Stack per FPGA.
CCI-P Interfaccia Core Cache CCI-P hè l'interfaccia standard chì l'AFU utilizanu per cumunicà cù l'ospite.
CL Cache Line Linea di cache di 64 byte
DFH Header di funziunalità di u dispusitivu Crea una lista ligata di intestazioni di funzioni per furnisce un modu estensibile di aghjunghje funzioni.
FIM Manager d'interfaccia FPGA L'hardware FPGA chì cuntene l'unità d'interfaccia FPGA (FIU) è l'interfacce esterne per a memoria, a rete, etc.

A Funzione Accelerator (AF) interfaccia cù a FIM à u tempu di esecuzione.

FIU Unità d'interfaccia FPGA FIU hè una strata di interfaccia di piattaforma chì agisce cum'è un ponte trà interfacce di piattaforma cum'è PCIe *, UPI è interfacce laterali AFU cum'è CCI-P.
cuntinuò…

Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.

Acronimi Espansione Descrizzione
MPF Pruprietà di memoria Factory U MPF hè un Basic Building Block (BBB) ​​chì l'AFU ponu aduprà per furnisce l'operazioni di furmazione di trafficu CCI-P per transazzione cù a FIU.
Msg Missaghju Missaghju - una notificazione di cuntrollu
NLB Loopback nativu U NLB esegue leghje è scrive à u ligame CCI-P per pruvà a cunnessione è u throughput.
RdLine_I Read Line Invalid Richiesta di lettura di memoria, cù l'indicazione di cache FPGA impostata à invalida. A linea ùn hè micca cache in a FPGA, ma pò causà a contaminazione di cache FPGA.

Nota: U cache tag traccia u statutu di a dumanda per tutte e richieste pendenti nantu à Intel Ultra Path Interconnect (Intel UPI).

Dunque, ancu s'è RdLine_I hè marcatu invalidu à a fine, cunsuma a cache tag temporaneamente per seguità u statutu di a dumanda nantu à UPI. Questa azzione pò esse risultatu in l'evacuazione di una linea di cache, chì risultatu in a contaminazione di cache. L'avantitage di utilizà RdLine_I hè chì ùn hè micca tracciatu da u cartulare CPU; cusì impedisce snooping da CPU.

RdLine-S Read Line Shared Richiesta di lettura di memoria cù suggerimentu di cache FPGA impostatu à spartutu. Hè fattu un tentativu di mantene in u cache FPGA in un statu spartutu.
WrLine_I Scrive a linea invalida Richiesta di scrittura di memoria, cù l'indicazione di cache FPGA impostata à Invalida. A FIU scrive i dati senza intenzione di mantene e dati in cache FPGA.
WrLine_M Scrive a linea mudificata Richiesta di scrittura di memoria, cù l'indicazione di cache FPGA impostata à Modificatu. U FIU scrive i dati è lascia in a cache FPGA in un statu mudificatu.

Glossariu di Acceleration
Table 3. Acceleration Stack for Intel Xeon® CPU with FPGA Glossary

Terminu Abbreviazione Descrizzione
Intel Acceleration Stack per CPU Intel Xeon® cù FPGA Stack di accelerazione Una cullizzioni di software, firmware è arnesi chì furnisce una connettività ottimizzata per u rendiment trà un Intel FPGA è un processore Intel Xeon.
Scheda di accelerazione programmabile Intel FPGA (Intel FPGA PAC) Intel FPGA PAC Scheda acceleratore PCIe FPGA. Contene un FPGA Interface Manager (FIM) chì si accoppia cù un processore Intel Xeon sopra u bus PCIe.

L'unità funzionale di l'acceleratore di loopback nativu (AFU)

Native Loopback (NLB) AFU Overview

  • U NLB sample AFU comprende un set di Verilog e System Verilog files per pruvà letture è scrittura di memoria, larghezza di banda è latenza.
  • Stu pacchettu include trè AFU chì pudete custruisce da a listessa fonte RTL. A vostra cunfigurazione di u codice fonte RTL crea questi AFU.

U NLB SampFunzione Accelerator (AF)
U $OPAE_PLATFORM_ROOT/hw/samples directory almacena u codice fonte per i seguenti NLB sampl'AFU:

  • nlb_mode_0
  • nlb_mode_0_stp
  • nlb_mode_3

Nota: U $DCP_LOC/hw/sampl'annuariu les almacena i NLB sampu codice fonte AFU per u pacchettu di versione 1.0.

Per capisce u NLB sampa struttura di u codice fonte AFU è cumu si custruisce, riferite à una di e seguenti Guide Quick Start (secondu quale Intel FPGA PAC site aduprate):

  • Sè aduprate Intel PAC cù Intel Arria® 10 GX FPGA, riferite à a IntelProgrammable Acceleration Card cù Intel Arria 10 GX FPGA.
  • Sè aduprate Intel FPGA PAC D5005, riferite à a Intel Acceleration Stack Quick Start Guide per Intel FPGA Programmable Acceleration Card D5005.

U pacchettu di liberazione furnisce i seguenti trè sample AF:

  • Modu NLB 0 AF: richiede l'utilità hello_fpga o fpgadiag per fà a prova lpbk1.
  • Modu NLB 3 AF: richiede l'utilità fpgadiag per eseguire i test trupt, leggere e scrivere.
  • Modu NLB 0 stp AF: richiede l'utilità hello_fpga o fpgadiag per fà a prova lpbak1.
    Nota: U nlb_mode_0_stp hè a stessa AFU cum'è nlb_mode_0 ma cù a funzione di debug di Signal Tap attivata.
    L'utilità fpgadiag è hello_fpga aiutanu l'AF appropritatu per diagnosticà, teste è rapportu nantu à u hardware FPGA.

Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.

Figura 1. Loopback nativu (nlb_lpbk.sv) Wrapper Top Level

Intel-Native-Loopback-Accelerator-Unità-funzionale-(AFU)-1

Table 4. NLB Files

File Nome Descrizzione
nlb_lpbk.sv Wrapper di primu livellu per NLB chì istanzia u richiedente è l'arbitru.
arbitru.sv Instanzia u test AF.
richiedente.sv Accetta e dumande da l'arbitru è formate e dumande secondu a specificazione CCI-P. Implementa ancu u cuntrollu di flussu.
nlb_csr.sv Implementa un registru di cuntrollu è statutu (CSR) di lettura / scrittura di 64 bit. I registri supportanu a lettura è a scrittura à 32 è 64 bit.
nlb_gram_sdp.sv Implementa una RAM generica dual-portu cù un portu di scrittura è un portu di lettura.

NLB hè una implementazione di riferimentu di una AFU cumpatibile cù Intel Acceleration Stack per CPU Intel Xeon cù FPGA Core Cache Interface (CCI-P) Manuale di Riferimentu. A funzione primaria di NLB hè di cunvalidà a connettività di l'ospite utilizendu diversi mudelli di accessu à a memoria. NLB misura ancu a larghezza di banda è a latenza di lettura / scrittura. A prova di larghezza di banda hà e seguenti opzioni:

  • 100% leghje
  • 100% scrive
  • 50% leghje è 50% scrive

Information Related

  • Intel Acceleration Stack Quick Start Guide per Intel Programmable Acceleration Card cù Arria 10 GX FPGA
  • Stack di accelerazione per CPU Intel Xeon cù FPGA Core Cache Interface (CCI-P) Manuale di riferimento
  • Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005

Native Loopback Control è Status Register Descriptions
Table 5. CSR Nomi, Indirizzi è Descrizzione

 Indirizzu byte (OPAE) Parola Indirizzu (CCI-P)  Accessu  Nome  Larghezza  Descrizzione
0x0000 0x0000 RO DFH 64 Header di funzione di u dispusitivu AF.
0x0008 0x0002 RO AFU_ID_L 64 ID AF bassa.
0x0010 0x0004 RO AFU_ID_H 64 ID AF alta.
0x0018 0x0006 Rsvd CSR_DFH_RSVD0 64 Riservatu obligatoriu 0.
0x0020 0x0008 RO CSR_DFH_RSVD1 64 Riservatu obligatoriu 1.
0x0100 0x0040 RW CSR_SCRATCHPAD0 64 Registru Scratchpad 0.
0x0108 0x0042 RW CSR_SCRATCHPAD1 64 Registru Scratchpad 2.
0x0110 0x0044 RW CSR_AFU_DSM_BASE L 32 Inferiore 32-bit di l'indirizzu di basa AF DSM. I 6 bits più bassi sò 4 × 00 perchè l'indirizzu hè allinatu à a dimensione di a linea di cache di 64 byte.
0x0114 0x0045 RW CSR_AFU_DSM_BASE H 32 32-bit superiore di l'indirizzu di basa AF DSM.
0x0120 0x0048 RW CSR_SRC_ADDR 64 Inizia l'indirizzu fisicu per u buffer di fonte. Tutte e dumande di lettura sò destinate à sta regione.
0x0128 0x004A RW CSR_DST_ADDR 64 Cumincià l'indirizzu fisicu per u buffer di destinazione. Tutte e dumande di scrittura sò destinate à sta regione
0x0130 0x004C RW CSR_NUM_LINES 32 Numero di linee di cache.
0x0138 0x004E RW CSR_CTL 32 Cuntrolla u flussu di prova, avvià, arresta, forza cumpletu.
0x0140 0x0050 RW CSR_CFG 32 Configura i paràmetri di prova.
0x0148 0x0052 RW CSR_INACT_THRESH 32 Limite di inattività.
0x0150 0x0054 RW CSR_INTERRUPT0 32 SW attribuisce Interrupt APIC ID è Vector à u dispusitivu.
DSM Offset Map
0x0040 0x0010 RO DSM_STATUS 32 Status di prova è registru di errore.

Table 6. CSR Bit Fields cù Examples
Questa tabella lista i campi di bit CSR chì dipendenu da u valore di u CSR_NUM_LINES, . In l'example sottu = 14.

Nome Bit Field Accessu Descrizzione
CSR_SRC_ADDR [63:] RW 2 ^ (N + 6) MB allineatu l'indirizzu punta à u principiu di u buffer di lettura.
[-1:0] RW 0x0.
CSR_DST_ADDR [63:] RW L'indirizzu allineatu 2^(N+6)MB indica l'iniziu di u buffer di scrittura.
[-1:0] RW 0x0.
CSR_NUM_LINES [31:] RW 0x0.
cuntinuò…
Nome Bit Field Accessu Descrizzione
  [-1:0] RW Numero di linee di cache per leghje o scrive. Stu sogliu pò esse diversu per ogni test AF.

Nota: Assicuratevi chì i buffers di fonte è di destinazione sò abbastanza grande per accoglie linee di cache.

CSR_NUM_LINES deve esse menu o uguale à .

Per i valori seguenti, assume = 14. Allora, CSR_SRC_ADDR è CSR_DST_ADDR accettanu 2^20 (0x100000).
CSR_SRC_ADDR [31:14] RW 1 MB di indirizzu allinatu.
[13:0] RW 0x0.
CSR_DST_ADDR [31:14] RW 1 MB di indirizzu allinatu.
[13:0] RW 0x0.
CSR_NUM_LINES [31:14] RW 0x0.
[13:0] RW Numero di linee di cache per leghje o scrive. Stu sogliu pò esse diversu per ogni test AF.

Nota: Assicuratevi chì i buffers di fonte è di destinazione sò abbastanza grande per accoglie linee di cache.

Table 7. Campi di Bit CSR supplementari

Nome Bit Field Accessu Descrizzione
CSR_CTL [31:3] RW Riservatu.
[2] RW Forza a fine di a prova. Scrive a bandiera di cumpiimentu di a prova è altri contatori di rendiment à csr_stat. Dopu à furzà u cumpletu di a prova, u statu di hardware hè identicu à un cumpletu di prova micca forzatu.
[1] RW Inizia l'esecuzione di prova.
[0] RW Reset di prova bassa attiva. Quandu hè bassu, tutti i paràmetri di cunfigurazione cambianu à i so valori predeterminati.
CSR_CFG [29] RW cr_interrupt_testmode prova interruzioni. Genera una interruzzione à a fine di ogni prova.
  [28] RW cr_interrupt_on_error manda una interruzzione in casu di errore
      deteczione.
  [27:20] RW cr_test_cfg cunfigura u cumpurtamentu di ogni modu di teste.
  [13:12] RW cr_chsel sceglie u canali virtuale.
  [10:9] RW cr_rdsel cunfigura u tipu di dumanda di lettura. I codificazioni anu u
      i seguenti valori validi:
      • 1'b00 : RdLine_S
      • 2'b01 : RdLine_I
      • 2'b11 : Modu mistu
  [8] RW cr_delay_en permette l'inserzione di ritardu aleatoriu trà e dumande.
  [6:5] RW Configura u modu di prova, cr_multiCL-len. I valori validi sò 0,1 è 3.
  [4:2] RW cr_mode, cunfigura u modu di prova. I valori seguenti sò validi:
      • 3'b000: LPBK1
      • 3'b001 : Leghjite
      • 3'b010 : Scrivite
      • 3'b011 : TRPUT
cuntinuò…
Nome Bit Field Accessu Descrizzione
      Per più infurmazione nantu à u modu di prova, riferite à u Modi di prova tema sottu.
[1] RW c_cont selezziunà u rollover di teste o a terminazione di a prova.

• Quandu 1'b0, a prova finisce. Aghjurnate u statutu CSR quandu

CSR_NUM_LINES cuntu hè ghjuntu.

• Quandu 1'b1, a prova passa à l'indirizzu iniziale dopu avè righjuntu u cuntu CSR_NUM_LINES. In u modu di rollover, a prova finisce solu per errore.

[0] RW cr_wrthru_en cambia trà i tipi di dumanda WrLine_I è Wrline_M.

• 1'b0 : WrLine_M

• 1'b1 : WrLine_I

CSR_INACT_THRESHOLD [31:0] RW Limite di inattività. Detecta a durata di stalle durante una prova di corsa. Cunta u numeru di cicli inattivu consecutivi. Se l'inattività conta

> CSR_INACT_THRESHOLD, nisuna dumanda hè mandata, nisuna risposta hè

ricevutu, è u signale inact_timeout hè stallatu. Scrivite 1 à CSR_CTL[1] attiva stu contatore.

CSR_INTERRUPT0 [23:16] RW U numeru Vector Interrupt per u dispusitivu.
[15:0] RW apic_id hè u APIC OD per u dispusitivu.
DSM_STATUS [511:256] RO Errore dump form Test Mode.
[255:224] RO End Overhead.
[223:192] RO Cumincià Overhead.
[191:160] RO Numero di Scritti.
[159:128] RO Numero di Letture.
[127:64] RO Numero di Clocks.
[63:32] RO Registru di errore di prova.
[31:16] RO Comparare è scambià contatore di successu.
[15:1] RO ID unicu per ogni scrittura di statutu DSM.
[0] RO Bandiera di fine di a prova.

Modi di prova
CSR_CFG[4:2] cunfigura u modu di prova. I seguenti quattru teste sò dispunibili:

  • LPBK1: Questu hè un test di copia di memoria. L'AF copia CSR_NUM_LINES da u buffer d'origine à u buffer di destinazione. À a fine di a prova, u software compara i buffer di fonte è di destinazione.
  • Leghjite: Questa prova stressa a strada di lettura è misura a larghezza di banda di lettura o a latenza. L'AF leghje CSR_NUM_LINES partendu da CSR_SRC_ADDR. Questu hè solu una prova di larghezza di banda o di latenza. Ùn verificate micca i dati letti.
  • Scrivite : Questa prova sottolinea u percorsu di scrittura è misura a larghezza di banda di scrittura o a latenza. L'AF leghje CSR_NUM_LINES partendu da CSR_SRC_ADDR. Questu hè solu una prova di larghezza di banda o di latenza. Ùn verificate micca i dati scritti.
  • TRUPT: Questa prova combina a lettura è a scrittura. Legge CSR_NUM_LINES partendu da u locu CSR_SRC_ADDR è scrive CSR_NUM_LINES à CSR_SRC_ADDR. Misura ancu a larghezza di banda di lettura è scrittura. Questa prova ùn cuntrolla micca i dati. A lettura è a scrittura ùn anu micca dipendenze

A tabella seguente mostra i codificazioni CSR_CFG per i quattru testi. Questa tavula inseme è CSR_NUM_LINES, = 14. Pudete cambià u numeru di linee di cache aghjurnendu u registru CSR_NUM_LINES.

Table 8. Test Modes

Diagnostic FPGA: fpgadiag
L'utilità fpgadiag include parechje teste per diagnosticà, pruvà è rapportu nantu à u hardware FPGA. Aduprate l'utilità fpgadiag per eseguisce tutti i modi di prova. Per più infurmazione nantu à l'usu di l'utilità fpgadiag, fate riferimentu à a sezione fpgadiag in a Guida di Strumenta Open Programmable Acceleration Engine (OPAE).

NLB Mode0 Hello_FPGA Test Flow

  1. U software inizializza a Memoria di Statu di Dispositivu (DSM) à zero.
  2. U software scrive l'indirizzu DSM BASE à l'AFU. Scrittura CSR (DSM_BASE_H), Scrittura CSRW (DSM_BASE_L)
  3. U software prepara u buffer di memoria d'origine è di destinazione. Questa preparazione hè specifica per a prova.
  4. U software scrive CSR_CTL [2: 0] = 0x1. Questa scrittura porta a prova fora di reset è in modu di cunfigurazione. A cunfigurazione pò prucede solu quandu CSR_CTL[0]=1 & CSR_CTL[1]=1.
  5. U software cunfigura i paràmetri di teste, cum'è src, destaddress, csr_cfg, num lines, etc.
  6. Software CSR scrive CSR_CTL [2: 0] = 0x3. L'AF inizia l'esecuzione di prova.
  7. Cumpiimentu di a prova:
    • L'hardware si compie quandu a prova finisce o detecta un errore. À a fine, u hardware AF aghjurnà DSM_STATUS. U software sonda DSM_STATUS[31:0]==1 per detectà a fine di a prova.
    • U software pò furzà u cumpletu di a prova scrivendu CSR scrive CSR_CTL [2: 0] = 0x7. Hardware AF aghjurnamenti DSM_STATUS.

Storia di Revisione di Documentu per a Guida d'Usuariu di l'Unità Funzionale di l'Acceleratore di Loopback Nativu (AFU).

Versione di documentu Accelerazione Intel Stack Version Cambiamenti
 2019.08.05 2.0 (supportatu cù Intel

Quartus Prime Pro Edition

18.1.2) è 1.2 (supportatu cù

Intel Quartus Prime Pro Edition 17.1.1)

Aghjunghje supportu per a piattaforma Intel FPGA PAC D5005 in a versione attuale.
 2018.12.04 1.2 (supportatu cù Intel

Quartus® Prime Pro Edition 17.1.1)

Liberazione di mantenimentu.
  2018.08.06 1.1 (supportatu cù Intel

Quartus Prime Pro Edition

17.1.1) è 1.0 (supportatu cù

Intel Quartus Prime Pro Edition 17.0.0)

Aghjurnatu u locu di u codice fonte per i NLB sample AFU in U NLB SampFunzione Accelerator (AF) sezione.
 2018.04.11 1.0 (supportatu cù Intel

Quartus Prime Pro Edition 17.0.0)

Liberazione iniziale.

Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.

Documenti / Risorse

PDF thumbnailNative Loopback Accelerator Functional Unit (AFU)
User Guide · Native Loopback Accelerator Functional Unit AFU, Native Loopback, Accelerator Functional Unit AFU, Functional Unit AFU

Fate una quistione

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Fate una quistione

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.