Intel-LOGO

Unità funzionale Intel Native Loopback Accelerator (AFU)

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

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

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

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

  1. Il software inizializza Device Status Memory (DSM) a zero.
  2. Il software scrive l'indirizzo BASE del DSM nell'AFU. Scrittura CSR(DSM_BASE_H), CSRWrite(DSM_BASE_L)
  3. Il software prepara il buffer di memoria di origine e destinazione. Questa preparazione è specifica per il test.
  4. 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.
  5. Il software configura i parametri del test, come src, destaddress, csr_cfg, num lines e così via.
  6. Il software CSR scrive CSR_CTL[2:0]= 0x3. L'AF inizia l'esecuzione del test.
  7. 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

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *