Unità funzionale Intel Native Loopback Accelerator (AFU)
Informazioni su questo documento
Convenzioni
Tabella 1. Convenzioni del documento
Convenzione | Descrizione |
# | Precede un comando che indica che il comando deve essere immesso come root. |
$ | Indica che un comando deve essere immesso come utente. |
Questo tipo di carattere | Filenomi, comandi e parole chiave vengono stampati in questo tipo di carattere. Le lunghe righe di comando vengono stampate con questo tipo di carattere. Sebbene lunghe righe di comando possano passare alla riga successiva, il ritorno non fa parte del comando; non premere invio. |
Indica che il testo segnaposto che appare tra le parentesi angolari deve essere sostituito con un valore appropriato. Non inserire le parentesi angolari. |
Acronimi
Tabella 2. Acronimi
Acronimi | Espansione | Descrizione |
AF | Funzione acceleratore | Immagine compilata dell'acceleratore hardware implementata nella logica FPGA che accelera un'applicazione. |
AFU | Unità Funzionale Acceleratore | Acceleratore hardware implementato in logica FPGA che scarica un'operazione di calcolo per un'applicazione dalla CPU per migliorare le prestazioni. |
API | Interfaccia di programmazione dell'applicazione | Un insieme di definizioni di subroutine, protocolli e strumenti per la creazione di applicazioni software. |
ASE | Ambiente di simulazione AFU | Ambiente di co-simulazione che consente di utilizzare la stessa applicazione host e AF in un ambiente di simulazione. ASE fa parte dell'Intel® Acceleration Stack per FPGA. |
CCI-P | Interfaccia della cache principale | CCI-P è l'interfaccia standard utilizzata dagli AFU per comunicare con l'host. |
CL | Linea di cache | riga di cache a 64 byte |
DFH | Intestazione della funzione del dispositivo | Crea un elenco collegato di intestazioni di funzionalità per fornire un modo estensibile per aggiungere funzionalità. |
FIM | Gestore interfaccia FPGA | L'hardware FPGA contenente l'FPGA Interface Unit (FIU) e le interfacce esterne per memoria, rete, ecc.
La funzione Accelerator (AF) si interfaccia con la FIM in fase di esecuzione. |
Unità di informazione finanziaria | Unità di interfaccia FPGA | FIU è un livello di interfaccia della piattaforma che funge da ponte tra le interfacce della piattaforma come PCIe*, UPI e interfacce lato AFU come CCI-P. |
continua… |
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Acronimi | Espansione | Descrizione |
MPF | Fabbrica di proprietà di memoria | L'MPF è un Basic Building Block (BBB) che le AFU possono utilizzare per fornire operazioni di traffic shaping CCI-P per le transazioni con la FIU. |
Messaggio | Messaggio | Messaggio: una notifica di controllo |
NLB | Loopback nativo | L'NLB esegue letture e scritture sul collegamento CCI-P per testare la connettività e il throughput. |
RdLine_I | Riga di lettura non valida | Richiesta di lettura memoria, con suggerimento cache FPGA impostato su non valido. La linea non è memorizzata nella cache nell'FPGA, ma può causare l'inquinamento della cache dell'FPGA.
Nota: La cache tag tiene traccia dello stato della richiesta per tutte le richieste in sospeso su Intel Ultra Path Interconnect (Intel UPI). Pertanto, anche se RdLine_I viene contrassegnato come non valido al completamento, utilizza la cache tag temporaneamente per tenere traccia dello stato della richiesta tramite UPI. Questa azione può comportare l'eliminazione di una riga della cache, con conseguente inquinamento della cache. L'avanzatotagIl vantaggio dell'utilizzo di RdLine_I è che non viene tracciato dalla directory della CPU; quindi impedisce lo snooping dalla CPU. |
RdLine-S | Leggi riga condivisa | Richiesta di lettura della memoria con suggerimento cache FPGA impostato su condiviso. Viene effettuato un tentativo per mantenerlo nella cache FPGA in uno stato condiviso. |
WrLine_I | Riga di scrittura non valida | Richiesta di scrittura in memoria, con suggerimento cache FPGA impostato su Non valido. La FIU scrive i dati senza alcuna intenzione di conservarli nella cache FPGA. |
WrLine_M | Scrivi riga modificata | Richiesta di scrittura in memoria, con l'hint della cache FPGA impostato su Modificato. La FIU scrive i dati e li lascia nella cache FPGA in uno stato modificato. |
Glossario di accelerazione
Tabella 3. Stack di accelerazione per CPU Intel Xeon® con FPGA Glossario
Termine | Abbreviazione | Descrizione |
Stack di accelerazione Intel per CPU Intel Xeon® con FPGA | Pila di accelerazione | Una raccolta di software, firmware e strumenti che fornisce connettività ottimizzata per le prestazioni tra un FPGA Intel e un processore Intel Xeon. |
Scheda di accelerazione programmabile Intel FPGA (Intel FPGA PAC) | PAC FPGA Intel | Scheda acceleratrice PCIe FPGA. Contiene un FPGA Interface Manager (FIM) che si accoppia con un processore Intel Xeon tramite il bus PCIe. |
L'unità funzionale dell'acceleratore di loopback nativo (AFU)
AFU di loopback nativo (NLB) terminatoview
- L'NLB sampLe AFU comprendono un insieme di Verilog e System Verilog fileAiuta a testare le letture e le scritture della memoria, la larghezza di banda e la latenza.
- Questo pacchetto include tre AFU che puoi creare dalla stessa fonte RTL. La tua configurazione del codice sorgente RTL crea queste AFU.
L'NLB Sample Funzione acceleratore (AF)
Il file $OPAE_PLATFORM_ROOT/hw/samples memorizza il codice sorgente per i seguenti NLBample AFU:
- nlb_mode_0
- nlb_mode_0_stp
- nlb_mode_3
Nota: Il file $DCP_LOC/hw/samples memorizza gli NLBample AFU codice sorgente per il pacchetto di rilascio 1.0.
Per comprendere gli NLB sample AFU source code structure and how to build it, fare riferimento a una delle seguenti guide rapide (a seconda del PAC Intel FPGA in uso):
- Se si utilizza Intel PAC con Intel Arria® 10 GX FPGA, fare riferimento a IntelProgrammable Acceleration Card with Intel Arria 10 GX FPGA.
- Se si utilizza l'Intel FPGA PAC D5005, fare riferimento alla Intel Acceleration Stack Quick Start Guide per la scheda di accelerazione programmabile Intel FPGA D5005.
Il pacchetto di rilascio fornisce i seguenti tre sample AF:
- Modalità NLB 0 AF: richiede l'utility hello_fpga o fpgadiag per eseguire il test lpbk1.
- NLB modalità 3 AF: richiede l'utility fpgadiag per eseguire i test trupt, read e write.
- Modalità NLB 0 stp AF: richiede l'utility hello_fpga o fpgadiag per eseguire il test lpbak1.
Nota: nlb_mode_0_stp è la stessa AFU di nlb_mode_0 ma con la funzione di debug Signal Tap abilitata.
Le utility fpgadiag e hello_fpga aiutano l'AF appropriato a diagnosticare, testare e riferire sull'hardware FPGA.
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Figura 1. Loopback nativo (nlb_lpbk.sv) Wrapper di primo livello
Tabella 4. NLB Files
File Nome | Descrizione |
nlb_lpbk.sv | Wrapper di primo livello per NLB che istanzia il richiedente e l'arbitro. |
arbitro.sv | Crea un'istanza del test AF. |
richiedente.sv | Accetta le richieste dall'arbitro e formatta le richieste secondo la specifica CCI-P. Implementa anche il controllo del flusso. |
nlb_csr.sv | Implementa registri di controllo e stato (CSR) di lettura/scrittura a 64 bit. I registri supportano letture e scritture a 32 e 64 bit. |
nlb_gram_sdp.sv | Implementa una RAM dual-port generica con una porta di scrittura e una porta di lettura. |
NLB è un'implementazione di riferimento di un'AFU compatibile con Intel Acceleration Stack per Intel Xeon CPU with FPGAs Core Cache Interface (CCI-P) Manuale di riferimento. La funzione principale di NLB è convalidare la connettività host utilizzando diversi modelli di accesso alla memoria. NLB misura anche la larghezza di banda e la latenza di lettura/scrittura. Il test della larghezza di banda ha le seguenti opzioni:
- letto al 100%.
- Scrivi al 100%.
- Il 50% legge e il 50% scrive
Informazioni correlate
- Intel Acceleration Stack Guida introduttiva per la scheda di accelerazione programmabile Intel con Arria 10 GX FPGA
- Stack di accelerazione per CPU Intel Xeon con FPGA Core Cache Interface (CCI-P) Manuale di riferimento
- Guida rapida di Intel Acceleration Stack per la scheda di accelerazione programmabile Intel FPGA D5005
Descrizioni del controllo di loopback nativo e del registro di stato
Tabella 5. Nomi CSR, indirizzi e descrizioni
Indirizzo byte (OPAE) | Parola Indirizzo (CCI-P) | Accesso | Nome | Larghezza | Descrizione |
0x0000 | 0x0000 | RO | DFH | 64 | Intestazione funzione dispositivo AF. |
0x0008 | 0x0002 | RO | AFU_ID_L | 64 | ID AF basso. |
0x0010 | 0x0004 | RO | AFU_ID_H | 64 | ID AF alto. |
0x0018 | 0x0006 | Risv | CSR_DFH_RSVD0 | 64 | Obbligatorio Riservato 0. |
0x0020 | 0x0008 | RO | CSR_DFH_RSVD1 | 64 | Obbligatorio Riservato 1. |
0x0100 | 0x0040 | RW | CSR_SCRATCHPAD0 | 64 | Registro degli appunti 0. |
0x0108 | 0x0042 | RW | CSR_SCRATCHPAD1 | 64 | Registro degli appunti 2. |
0x0110 | 0x0044 | RW | CSR_AFU_DSM_BASE L | 32 | 32 bit inferiori dell'indirizzo di base AF DSM. I 6 bit inferiori sono 4×00 perché l'indirizzo è allineato alla dimensione della riga della cache di 64 byte. |
0x0114 | 0x0045 | RW | CSR_AFU_DSM_BASEH | 32 | 32 bit superiori dell'indirizzo di base AF DSM. |
0x0120 | 0x0048 | RW | CSR_SRC_ADDR | 64 | Indirizzo fisico iniziale per il buffer di origine. Tutte le richieste di lettura hanno come destinazione questa regione. |
0x0128 | 0x004Un | RW | CSR_DST_ADDR | 64 | Indirizzo fisico iniziale per il buffer di destinazione. Tutte le richieste di scrittura hanno come destinazione questa regione |
0x0130 | 0x004C | RW | CSR_NUM_LINES | 32 | Numero di righe della cache. |
0x0138 | 0x004E | RW | CSR_CTL | 32 | Controlla il flusso di test, l'avvio, l'arresto e il completamento forzato. |
0x0140 | 0x0050 | RW | CSR_CFG | 32 | Configura i parametri di prova. |
0x0148 | 0x0052 | RW | CSR_INACT_THRESH | 32 | Limite della soglia di inattività. |
0x0150 | 0x0054 | RW | CSR_INTERRUPT0 | 32 | Il software alloca l'ID APIC e il vettore di interrupt al dispositivo. |
Mappa offset DSM | |||||
0x0040 | 0x0010 | RO | DSM_STATO | 32 | Stato del test e registro degli errori. |
Tabella 6. Campi di bit CSR con esamples
Questa tabella elenca i campi bit CSR che dipendono dal valore di CSR_NUM_LINES, . Nell'esample sotto = 14.
Nome | Campo di bit | Accesso | Descrizione |
CSR_SRC_ADDR | [63:] | RW | L'indirizzo allineato da 2^(N+6)MB punta all'inizio del buffer di lettura. |
[-1:0] | RW | Italiano: | |
CSR_DST_ADDR | [63:] | RW | L'indirizzo allineato da 2^(N+6)MB punta all'inizio del buffer di scrittura. |
[-1:0] | RW | Italiano: | |
CSR_NUM_LINES | [31:] | RW | Italiano: |
continua… |
Nome | Campo di bit | Accesso | Descrizione |
[-1:0] | RW | Numero di righe della cache da leggere o scrivere. Questa soglia può essere diversa per ogni test AF.
Nota: Assicurarsi che i buffer di origine e di destinazione siano sufficientemente grandi da contenere il file linee di cache. CSR_NUM_LINES deve essere minore o uguale a . |
|
Per i seguenti valori, supponi =14. Quindi, CSR_SRC_ADDR e CSR_DST_ADDR accettano 2^20 (0x100000). | |||
CSR_SRC_ADDR | [31:14] | RW | Indirizzo allineato da 1 MB. |
[13:0] | RW | Italiano: | |
CSR_DST_ADDR | [31:14] | RW | Indirizzo allineato da 1 MB. |
[13:0] | RW | Italiano: | |
CSR_NUM_LINES | [31:14] | RW | Italiano: |
[13:0] | RW | Numero di righe della cache da leggere o scrivere. Questa soglia può essere diversa per ogni test AF.
Nota: Assicurarsi che i buffer di origine e di destinazione siano sufficientemente grandi da contenere il file linee di cache. |
Tabella 7. Campi bit CSR aggiuntivi
Nome | Campo di bit | Accesso | Descrizione |
CSR_CTL | [31:3] | RW | Prenotato. |
[2] | RW | Completamento del test di forza. Scrive il flag di completamento del test e altri contatori delle prestazioni in csr_stat. Dopo aver forzato il completamento del test, lo stato dell'hardware è identico a un completamento del test non forzato. | |
[1] | RW | Avvia l'esecuzione del test. | |
[0] | RW | Ripristino del test basso attivo. Quando è basso, tutti i parametri di configurazione tornano ai loro valori predefiniti. | |
CSR_CFG | [29] | RW | cr_interrupt_testmode testa gli interrupt. Genera un interrupt alla fine di ogni test. |
[28] | RW | cr_interrupt_on_error invia un interrupt in caso di errore | |
rilevamento. | |||
[27:20] | RW | cr_test_cfg configura il comportamento di ciascuna modalità di test. | |
[13:12] | RW | cr_chsel seleziona il canale virtuale. | |
[10:9] | RW | cr_rdsel configura il tipo di richiesta di lettura. Le codifiche hanno il | |
seguenti valori validi: | |||
• 1'b00: RdLine_S | |||
• 2'b01: RdLine_I | |||
• 2'b11: Modalità mista | |||
[8] | RW | cr_delay_en abilita l'inserimento di un ritardo casuale tra le richieste. | |
[6:5] | RW | Configura la modalità test, cr_multiCL-len. I valori validi sono 0,1 e 3. | |
[4:2] | RW | cr_mode, configura la modalità test. Sono validi i seguenti valori: | |
• 3'b000: PLBK1 | |||
• 3'b001: Leggi | |||
• 3'b010: Scrivi | |||
• 3'b011: TRPUT | |||
continua… |
Nome | Campo di bit | Accesso | Descrizione |
Per ulteriori informazioni sulla modalità test, fare riferimento a Modalità di prova argomento sotto. | |||
[1] | RW | c_cont seleziona il rollover del test o la terminazione del test.
• Quando 1'b0, il test termina. Aggiorna lo stato CSR quando È stato raggiunto il conteggio CSR_NUM_LINES. • Quando 1'b1, il test passa all'indirizzo iniziale dopo aver raggiunto il conteggio CSR_NUM_LINES. In modalità rollover, il test termina solo in caso di errore. |
|
[0] | RW | cr_wrthru_en commuta tra i tipi di richiesta WrLine_I e Wrline_M.
• 1'b0: WrLine_M • 1'b1: WrLine_I |
|
CSR_INACT_THREShold | [31:0] | RW | Limite della soglia di inattività. Rileva la durata degli stalli durante una corsa di prova. Conta il numero di cicli di inattività consecutivi. Se l'inattività conta
> CSR_INACT_THRESHOLD, nessuna richiesta viene inviata, nessuna risposta ricevuto e viene impostato il segnale inact_timeout. La scrittura di 1 in CSR_CTL[1] attiva questo contatore. |
CSR_INTERRUPT0 | [23:16] | RW | Il numero del vettore di interrupt per il dispositivo. |
[15:0] | RW | apic_id è l'OD APIC per il dispositivo. | |
DSM_STATO | [511:256] | RO | Modulo di dump dell'errore Modalità test. |
[255:224] | RO | Fine in alto. | |
[223:192] | RO | Inizia dall'alto. | |
[191:160] | RO | Numero di scritture. | |
[159:128] | RO | Numero di letture. | |
[127:64] | RO | Numero di orologi. | |
[63:32] | RO | Registro degli errori di prova. | |
[31:16] | RO | Confronta e scambia contatore di successo. | |
[15:1] | RO | ID univoco per ogni scrittura dello stato DSM. | |
[0] | RO | Indicatore di completamento del test. |
Modalità di prova
CSR_CFG[4:2] configura la modalità test. Sono disponibili i seguenti quattro test:
- LPBK1: Questo è un test di copia della memoria. L'AF copia CSR_NUM_LINES dal buffer di origine al buffer di destinazione. Al completamento del test, il software confronta i buffer di origine e di destinazione.
- Leggere: Questo test sottolinea il percorso di lettura e misura la larghezza di banda o la latenza di lettura. L'AF legge CSR_NUM_LINES partendo da CSR_SRC_ADDR. Questo è solo un test di larghezza di banda o di latenza. Non verifica i dati letti.
- Scrivere: Questo test sottolinea il percorso di scrittura e misura la larghezza di banda o la latenza di scrittura. L'AF legge CSR_NUM_LINES partendo da CSR_SRC_ADDR. Questo è solo un test di larghezza di banda o di latenza. Non verifica i dati scritti.
- TROPPO: Questo test combina le letture e le scritture. Legge CSR_NUM_LINES a partire dalla posizione CSR_SRC_ADDR e scrive CSR_NUM_LINES in CSR_SRC_ADDR. Misura anche la larghezza di banda in lettura e scrittura. Questo test non controlla i dati. Le letture e le scritture non hanno dipendenze
La tabella seguente mostra le codifiche CSR_CFG per i quattro test. Questa tabella imposta e CSR_NUM_LINES, =14. È possibile modificare il numero di righe della cache aggiornando il registro CSR_NUM_LINES.
Tabella 8. Modalità di test
Diagnostica FPGA: fpgadiag
L'utility fpgadiag include diversi test per diagnosticare, testare e creare report sull'hardware FPGA. Utilizzare l'utility fpgadiag per eseguire tutte le modalità di test. Per ulteriori informazioni sull'utilizzo dell'utility fpgadiag, fare riferimento alla sezione fpgadiag nella Guida agli strumenti Open Programmable Acceleration Engine (OPAE).
NLB Mode0 Hello_FPGA Flusso di test
- Il software inizializza Device Status Memory (DSM) a zero.
- Il software scrive l'indirizzo BASE del DSM nell'AFU. Scrittura CSR(DSM_BASE_H), CSRWrite(DSM_BASE_L)
- Il software prepara il buffer di memoria di origine e destinazione. Questa preparazione è specifica per il test.
- Il software scrive CSR_CTL[2:0]= 0x1. Questa scrittura porta il test fuori dal ripristino e nella modalità di configurazione. La configurazione può procedere solo quando CSR_CTL[0]=1 & CSR_CTL[1]=1.
- Il software configura i parametri del test, come src, destaddress, csr_cfg, num lines e così via.
- Il software CSR scrive CSR_CTL[2:0]= 0x3. L'AF inizia l'esecuzione del test.
- Completamento del test:
- L'hardware viene completato quando il test viene completato o rileva un errore. Al termine, l'hardware AF aggiorna DSM_STATUS. Il software esegue il polling di DSM_STATUS[31:0]==1 per rilevare il completamento del test.
- Il software può forzare il completamento del test scrivendo CSR scrive CSR_CTL[2:0]=0x7. Hardware AF aggiorna DSM_STATUS.
Cronologia delle revisioni del documento per la guida dell'utente dell'unità funzionale dell'acceleratore di loopback nativo (AFU).
Versione del documento | Accelerazione Intel Versione in pila | Cambiamenti |
2019.08.05 | 2.0 (supportato con Intel
Quartus Prime Edizione Pro 18.1.2) e 1.2 (supportato con Intel Quartus Prime Pro Edizione 17.1.1) |
Aggiunto il supporto per la piattaforma Intel FPGA PAC D5005 nella versione corrente. |
2018.12.04 | 1.2 (supportato con Intel
Quartus® Prime Pro Edizione 17.1.1) |
Rilascio di manutenzione. |
2018.08.06 | 1.1 (supportato con Intel
Quartus Prime Edizione Pro 17.1.1) e 1.0 (supportato con Intel Quartus Prime Pro Edizione 17.0.0) |
Aggiornata la posizione del codice sorgente per gli NLBample AFU in L'NLB Sample Funzione acceleratore (AF) sezione. |
2018.04.11 | 1.0 (supportato con Intel
Quartus Prime Pro Edizione 17.0.0) |
Versione iniziale. |
Intel Corporation. Tutti i diritti riservati. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Intel garantisce le prestazioni dei suoi prodotti FPGA e semiconduttori in base alle specifiche attuali in conformità con la garanzia standard di Intel, ma si riserva il diritto di apportare modifiche a qualsiasi prodotto e servizio in qualsiasi momento senza preavviso. Intel non si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi informazione, prodotto o servizio qui descritto, salvo quanto espressamente concordato per iscritto da Intel. Si consiglia ai clienti Intel di ottenere la versione più recente delle specifiche del dispositivo prima di fare affidamento su qualsiasi informazione pubblicata e prima di effettuare ordini per prodotti o servizi. *Altri nomi e marchi possono essere rivendicati come proprietà di altri.
Documenti / Risorse
![]() |
Unità funzionale Intel Native Loopback Accelerator (AFU) [pdf] Guida utente Unità funzionale dell'acceleratore di loopback nativo AFU, Loopback nativo, Unità funzionale dell'acceleratore AFU, Unità funzionale AFU |