intel-LOGO

Unitat funcional de l'accelerador de bucle invertit natiu intel (AFU)

Intel-Native-Loopback-Accelerator-Unitat-funcional-(AFU)-PRO

Sobre aquest document

Convencions
Taula 1. Convencions del document

Convenció Descripció
# Precedeix una ordre que indica que l'ordre s'ha d'introduir com a root.
$ Indica que s'ha d'introduir una ordre com a usuari.
Aquest tipus de lletra Fileels noms, les ordres i les paraules clau s'imprimeixen en aquest tipus de lletra. Les línies d'ordres llargues s'imprimeixen amb aquest tipus de lletra. Tot i que les línies d'ordre llargues poden encaixar a la línia següent, el retorn no forma part de l'ordre; no premeu enter.
Indica que el text del marcador de posició que apareix entre els claudàtors angulars s'ha de substituir per un valor adequat. No introduïu els claudàtors angulars.

Acrònims
Taula 2. Acrònims

Acrònims Expansió Descripció
AF Funció acceleradora Imatge compilada de l'accelerador de maquinari implementada en lògica FPGA que accelera una aplicació.
AFU Unitat Funcional Accelerador Accelerador de maquinari implementat en lògica FPGA que descarrega una operació computacional per a una aplicació de la CPU per millorar el rendiment.
API Interfície de programació d'aplicacions Un conjunt de definicions de subrutines, protocols i eines per crear aplicacions de programari.
ASE Entorn de simulació AFU Entorn de co-simulació que us permet utilitzar la mateixa aplicació amfitriona i AF en un entorn de simulació. ASE forma part de l'Intel® Acceleration Stack per a FPGA.
CCI-P Interfície de memòria cau bàsica CCI-P és la interfície estàndard que utilitzen les AFU per comunicar-se amb l'amfitrió.
CL Línia de memòria cau Línia de memòria cau de 64 bytes
DFH Capçalera de la funció del dispositiu Crea una llista enllaçada de capçaleres de funcions per proporcionar una manera extensible d'afegir funcions.
FIM Gestor d'interfícies FPGA El maquinari FPGA que conté la unitat d'interfície FPGA (FIU) i interfícies externes per a memòria, xarxes, etc.

La funció d'accelerador (AF) es connecta amb la FIM en temps d'execució.

FIU Unitat d'interfície FPGA FIU és una capa d'interfície de plataforma que actua com a pont entre interfícies de plataforma com PCIe*, UPI i interfícies laterals AFU com CCI-P.
continuat…

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Acrònims Expansió Descripció
MPF Fàbrica de propietats de memòria El MPF és un bloc bàsic (BBB) ​​que les AFU poden utilitzar per proporcionar operacions de conformació del trànsit CCI-P per a transaccions amb la FIU.
Msg Missatge Missatge: una notificació de control
NLB Loopback natiu El NLB realitza lectures i escriptures a l'enllaç CCI-P per provar la connectivitat i el rendiment.
RdLine_I Línia de lectura no vàlida Sol·licitud de lectura de memòria, amb la pista de memòria cau FPGA establerta com a no vàlida. La línia no s'emmagatzema a la memòria cau a l'FPGA, però pot provocar una contaminació de la memòria cau de l'FPGA.

Nota: La memòria cau tag fa un seguiment de l'estat de la sol·licitud de totes les sol·licituds pendents a Intel Ultra Path Interconnect (Intel UPI).

Per tant, tot i que RdLine_I està marcat com a no vàlid en finalitzar, consumeix la memòria cau tag temporalment per fer un seguiment de l'estat de la sol·licitud mitjançant UPI. Aquesta acció pot provocar el desallotjament d'una línia de memòria cau, provocant la contaminació de la memòria cau. L'avançtagL'ús de RdLine_I és que no es fa un seguiment pel directori de la CPU; per tant, impedeix la fisteria de la CPU.

RdLine-S Llegir la línia compartida Sol·licitud de lectura de memòria amb la pista de memòria cau FPGA establerta com a compartida. S'intenta mantenir-lo a la memòria cau FPGA en un estat compartit.
WrLine_I La línia d'escriptura no és vàlida Sol·licitud d'escriptura de memòria, amb la pista de memòria cau FPGA establerta com a No vàlida. La FIU escriu les dades sense intenció de mantenir-les a la memòria cau FPGA.
WrLine_M Línia d'escriptura modificada Sol·licitud d'escriptura de memòria, amb la pista de memòria cau FPGA establerta a Modificada. La FIU escriu les dades i les deixa a la memòria cau FPGA en un estat modificat.

Glossari d'acceleració
Taula 3. Pila d'acceleració per a CPU Intel Xeon® amb FPGA Glossari

Terme Abreviatura Descripció
Intel Acceleration Stack per a CPU Intel Xeon® amb FPGA Pila d'acceleració Una col·lecció de programari, microprogramari i eines que ofereix una connectivitat optimitzada per al rendiment entre una FPGA Intel i un processador Intel Xeon.
Targeta d'acceleració programable Intel FPGA (Intel FPGA PAC) Intel FPGA PAC Targeta acceleradora PCIe FPGA. Conté un gestor d'interfícies FPGA (FIM) que es combina amb un processador Intel Xeon a través del bus PCIe.

La Unitat Funcional Native Loopback Accelerator (AFU)

S'ha acabat l'AFU Loopback natiu (NLB).view

  • La NLB samples AFU comprenen un conjunt de Verilog i System Verilog files per provar les lectures i escriptures de la memòria, l'amplada de banda i la latència.
  • Aquest paquet inclou tres AFU que podeu crear des de la mateixa font RTL. La vostra configuració del codi font RTL crea aquestes AFU.

La NLB SampFunció d'acceleració (AF)
$OPAE_PLATFORM_ROOT/hw/sampel directori les emmagatzema el codi font dels següents NLBamples AFU:

  • nlb_mode_0
  • nlb_mode_0_stp
  • nlb_mode_3

Nota: El valor $DCP_LOC/hw/sampel directori emmagatzema els NLB sampcodi font de les AFU per al paquet de llançament 1.0.

Per entendre els NLB sampl'estructura del codi font de l'AFU i com crear-lo, consulteu una de les guies d'inici ràpid següents (segons quin Intel FPGA PAC utilitzeu):

  • Si utilitzeu Intel PAC amb Intel Arria® 10 GX FPGA, consulteu la targeta d'acceleració programable Intel amb Intel Arria 10 GX FPGA.
  • Si utilitzeu Intel FPGA PAC D5005, consulteu la Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel FPGA D5005.

El paquet de llançament proporciona els tres s següentsamples AF:

  • Mode NLB 0 AF: requereix la utilitat hello_fpga o fpgadiag per realitzar la prova lpbk1.
  • Mode NLB 3 AF: requereix la utilitat fpgadiag per realitzar les proves trupt, llegir i escriure.
  • Mode NLB 0 stp AF: requereix la utilitat hello_fpga o fpgadiag per realitzar la prova lpbak1.
    Nota: El nlb_mode_0_stp és el mateix AFU que nlb_mode_0, però amb la funció de depuració de Signal Tap activada.
    Les utilitats fpgadiag i hello_fpga ajuden l'AF adequat a diagnosticar, provar i informar sobre el maquinari FPGA.

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Figura 1. Loopback natiu (nlb_lpbk.sv) Embolcall de nivell superior

Intel-Native-Loopback-Accelerator-Unitat-funcional-(AFU)-1

Taula 4. NLB Files

File Nom Descripció
nlb_lpbk.sv Embolcall de primer nivell per a NLB que instancia el sol·licitant i l'àrbitre.
àrbitre.sv Instancia la prova AF.
sol·licitant.sv Accepta les peticions de l'àrbitre i les formata segons l'especificació CCI-P. També implementa el control de flux.
nlb_csr.sv Implementa un registre de control i estat (CSR) de lectura/escriptura de 64 bits. Els registres admeten lectures i escriptures de 32 i 64 bits.
nlb_gram_sdp.sv Implementa una memòria RAM genèrica de doble port amb un port d'escriptura i un port de lectura.

NLB és una implementació de referència d'una AFU compatible amb la pila d'acceleració d'Intel per a CPU Intel Xeon amb manual de referència de la interfície de memòria cau bàsica de FPGA (CCI-P). La funció principal de NLB és validar la connectivitat de l'amfitrió mitjançant diferents patrons d'accés a la memòria. NLB també mesura l'amplada de banda i la latència de lectura/escriptura. La prova d'ample de banda té les opcions següents:

  • 100% llegit
  • Escriu al 100%.
  • El 50% llegeix i el 50% escriu

Informació relacionada

  • Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel amb Arria 10 GX FPGA
  • Acceleration Stack per a CPU Intel Xeon amb FPGA Core Cache Interface (CCI-P) Manual de referència
  • Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel FPGA D5005

Descripcions del registre d'estat i control de bucle natiu
Taula 5. Noms, adreces i descripcions de CSR

 Adreça de bytes (OPAE) Paraula Adreça (CCI-P)  Accés  Nom  Amplada  Descripció
0 x 0000 0 x 0000 RO DFH 64 Capçalera de la funció del dispositiu AF.
0 x 0008 0 x 0002 RO AFU_ID_L 64 ID AF baix.
0 x 0010 0 x 0004 RO AFU_ID_H 64 ID AF alta.
0 x 0018 0 x 0006 Rsvd CSR_DFH_RSVD0 64 Obligatori reservat 0.
0 x 0020 0 x 0008 RO CSR_DFH_RSVD1 64 Obligatori reservat 1.
0 x 0100 0 x 0040 RW CSR_SCRATCHPAD0 64 Registre Scratchpad 0.
0 x 0108 0 x 0042 RW CSR_SCRATCHPAD1 64 Registre Scratchpad 2.
0 x 0110 0 x 0044 RW CSR_AFU_DSM_BASE L 32 32 bits inferiors de l'adreça base AF DSM. Els 6 bits inferiors són 4×00 perquè l'adreça està alineada amb la mida de la línia de memòria cau de 64 bytes.
0 x 0114 0 x 0045 RW CSR_AFU_DSM_BASE H 32 32 bits superiors de l'adreça base AF DSM.
0 x 0120 0 x 0048 RW CSR_SRC_ADDR 64 Inicieu l'adreça física de la memòria intermèdia d'origen. Totes les sol·licituds de lectura s'orienten a aquesta regió.
0 x 0128 0x004A RW CSR_DST_ADDR 64 Inicieu l'adreça física de la memòria intermèdia de destinació. Totes les sol·licituds d'escriptura s'orienten a aquesta regió
0 x 0130 0x004C RW CSR_NUM_LINES 32 Nombre de línies de memòria cau.
0 x 0138 0x004E RW CSR_CTL 32 Controla el flux de prova, l'inici, l'aturada i la força de finalització.
0 x 0140 0 x 0050 RW CSR_CFG 32 Configura els paràmetres de prova.
0 x 0148 0 x 0052 RW CSR_INACT_THRESH 32 Límit llindar d'inactivitat.
0 x 0150 0 x 0054 RW CSR_INTERRUPT0 32 SW assigna l'ID APIC d'interrupció i el vector al dispositiu.
Mapa desplaçat DSM
0 x 0040 0 x 0010 RO DSM_STATUS 32 Estat de la prova i registre d'errors.

Taula 6. Camps de bits CSR amb Examples
Aquesta taula enumera els camps de bits CSR que depenen del valor de CSR_NUM_LINES, . En l'exampel més avall = 14.

Nom Camp de bits Accés Descripció
CSR_SRC_ADDR [63:] RW L'adreça alineada de 2^(N+6)MB apunta a l'inici de la memòria intermèdia de lectura.
[-1:0] RW 0x0.
CSR_DST_ADDR [63:] RW L'adreça alineada de 2^(N+6)MB apunta a l'inici de la memòria intermèdia d'escriptura.
[-1:0] RW 0x0.
CSR_NUM_LINES [31:] RW 0x0.
continuat…
Nom Camp de bits Accés Descripció
  [-1:0] RW Nombre de línies de memòria cau per llegir o escriure. Aquest llindar pot ser diferent per a cada AF de prova.

Nota: Assegureu-vos que els buffers d'origen i de destinació siguin prou grans per allotjar-hi línies de memòria cau.

CSR_NUM_LINES hauria de ser inferior o igual a .

Per als valors següents, assumeix =14. Aleshores, CSR_SRC_ADDR i CSR_DST_ADDR accepten 2^20 (0x100000).
CSR_SRC_ADDR [31:14] RW Adreça alineada d'1 MB.
[13:0] RW 0x0.
CSR_DST_ADDR [31:14] RW Adreça alineada d'1 MB.
[13:0] RW 0x0.
CSR_NUM_LINES [31:14] RW 0x0.
[13:0] RW Nombre de línies de memòria cau per llegir o escriure. Aquest llindar pot ser diferent per a cada AF de prova.

Nota: Assegureu-vos que els buffers d'origen i de destinació siguin prou grans per allotjar-hi línies de memòria cau.

Taula 7. Camps de bits CSR addicionals

Nom Camp de bits Accés Descripció
CSR_CTL [31:3] RW Reservat.
[2] RW Força la finalització de la prova. Escriu la marca de finalització de la prova i altres comptadors de rendiment a csr_stat. Després de forçar la finalització de la prova, l'estat del maquinari és idèntic a la finalització de la prova no forçada.
[1] RW Inicia l'execució de la prova.
[0] RW Reinici de la prova baixa activa. Quan és baix, tots els paràmetres de configuració canvien als seus valors predeterminats.
CSR_CFG [29] RW cr_interrupt_testmode prova les interrupcions. Genera una interrupció al final de cada prova.
  [28] RW cr_interrupt_on_error envia una interrupció quan es produeix un error
      detecció.
  [27:20] RW cr_test_cfg configura el comportament de cada mode de prova.
  [13:12] RW cr_chsel selecciona el canal virtual.
  [10:9] RW cr_rdsel configura el tipus de sol·licitud de lectura. Les codificacions tenen el
      valors vàlids següents:
      • 1'b00: RdLine_S
      • 2'b01: RdLine_I
      • 2'b11: Mode mixt
  [8] RW cr_delay_en permet la inserció aleatòria de retard entre sol·licituds.
  [6:5] RW Configura el mode de prova, cr_multiCL-len. Els valors vàlids són 0,1 i 3.
  [4:2] RW cr_mode, configura el mode de prova. Són vàlids els valors següents:
      • 3'b000: LPBK1
      • 3'b001: Llegir
      • 3'b010: Escriu
      • 3'b011: TRPUT
continuat…
Nom Camp de bits Accés Descripció
      Per obtenir més informació sobre el mode de prova, consulteu Modes de prova tema a continuació.
[1] RW c_cont selecciona el canvi de prova o la finalització de la prova.

• Quan 1'b0, la prova finalitza. Actualitza l'estat CSR quan

S'ha arribat al recompte de CSR_NUM_LINES.

• Quan és 1'b1, la prova passa a l'adreça inicial després d'arribar al recompte de CSR_NUM_LINES. En el mode de canvi, la prova només finalitza en cas d'error.

[0] RW cr_wrthru_en canvia entre els tipus de sol·licitud WrLine_I i Wrline_M.

• 1'b0: WrLine_M

• 1'b1: WrLine_I

CSR_INACT_THRESHOLD [31:0] RW Límit llindar d'inactivitat. Detecta la durada de les parades durant una prova d'execució. Compta el nombre de cicles inactius consecutius. Si la inactivitat compta

> CSR_INACT_THRESHOLD, no s'envia cap sol·licitud, no hi ha respostes

rebut i s'estableix el senyal inact_timeout. Si escriu 1 a CSR_CTL[1], s'activa aquest comptador.

CSR_INTERRUPT0 [23:16] RW El número de vector d'interrupció del dispositiu.
[15:0] RW apic_id és el DO APIC del dispositiu.
DSM_STATUS [511:256] RO Error d'abocament del formulari Mode de prova.
[255:224] RO Final de sobrecàrrega.
[223:192] RO Comença per sobre.
[191:160] RO Nombre d'escriptures.
[159:128] RO Nombre de lectures.
[127:64] RO Nombre de rellotges.
[63:32] RO Registre d'errors de prova.
[31:16] RO Compareu i intercanvieu el comptador d'èxits.
[15:1] RO ID únic per a cada escriptura d'estat de DSM.
[0] RO Bandera de finalització de la prova.

Modes de prova
CSR_CFG[4:2] configura el mode de prova. Les quatre proves següents estan disponibles:

  • LPBK1: Aquesta és una prova de còpia de memòria. L'AF copia CSR_NUM_LINES de la memòria intermèdia d'origen a la memòria intermèdia de destinació. Un cop finalitzada la prova, el programari compara els buffers d'origen i de destinació.
  • Llegeix: Aquesta prova subratlla el camí de lectura i mesura l'amplada de banda o la latència de lectura. L'AF llegeix CSR_NUM_LINES a partir del CSR_SRC_ADDR. Això només és una prova d'amplada de banda o latència. No verifica les dades llegides.
  • Escriu: Aquesta prova subratlla el camí d'escriptura i mesura l'amplada de banda o la latència d'escriptura. L'AF llegeix CSR_NUM_LINES a partir del CSR_SRC_ADDR. Això només és una prova d'amplada de banda o latència. No verifica les dades escrites.
  • TRUPUT: Aquesta prova combina les lectures i les escriptures. Llegeix CSR_NUM_LINES a partir de la ubicació CSR_SRC_ADDR i escriu CSR_NUM_LINES a CSR_SRC_ADDR. També mesura l'amplada de banda de lectura i escriptura. Aquesta prova no verifica les dades. Les lectures i escriptures no tenen dependències

La taula següent mostra les codificacions CSR_CFG per a les quatre proves. Aquest conjunt de taules i CSR_NUM_LINES, =14. Podeu canviar el nombre de línies de memòria cau actualitzant el registre CSR_NUM_LINES.

Taula 8. Modes de prova

Diagnòstic FPGA: fpgadiag
La utilitat fpgadiag inclou diverses proves per diagnosticar, provar i informar sobre el maquinari FPGA. Utilitzeu la utilitat fpgadiag per executar tots els modes de prova. Per obtenir més informació sobre com utilitzar la utilitat fpgadiag, consulteu la secció fpgadiag de la Guia d'eines del motor d'acceleració programable obert (OPAE).

NLB Mode0 Hello_FPGA Flux de prova

  1. El programari inicialitza la memòria d'estat del dispositiu (DSM) a zero.
  2. El programari escriu l'adreça DSM BASE a l'AFU. Escriptura CSR (DSM_BASE_H), Escriptura CSRW (DSM_BASE_L)
  3. El programari prepara la memòria intermèdia d'origen i de destinació. Aquesta preparació és específica de la prova.
  4. El programari escriu CSR_CTL[2:0]= 0x1. Aquesta escriptura treu la prova del restabliment i al mode de configuració. La configuració només pot continuar quan CSR_CTL[0]=1 i CSR_CTL[1]=1.
  5. El programari configura els paràmetres de prova, com ara src, destaddress, csr_cfg, num lines, etc.
  6. CSR de programari escriu CSR_CTL[2:0]= 0x3. L'AF comença l'execució de la prova.
  7. Finalització de la prova:
    • El maquinari es completa quan es completa la prova o detecta un error. Un cop finalitzat, l'AF de maquinari actualitza DSM_STATUS. El programari sondeja DSM_STATUS[31:0]==1 per detectar la finalització de la prova.
    • El programari pot forçar la finalització de la prova escrivint escriptures CSR CSR_CTL[2:0]=0x7. Actualitzacions de maquinari AF DSM_STATUS.

Historial de revisions de documents per a la Guia d'usuari de la unitat funcional de l'accelerador de retorn natiu (AFU).

Versió del document Acceleració Intel Versió de pila Canvis
 2019.08.05 2.0 (comptat amb Intel

Quartus Prime Pro Edition

18.1.2) i 1.2 (admès amb

Intel Quartus Prime Pro Edition 17.1.1)

S'ha afegit suport per a la plataforma Intel FPGA PAC D5005 a la versió actual.
 2018.12.04 1.2 (comptat amb Intel

Quartus® Prime Pro Edition 17.1.1)

Alliberament de manteniment.
  2018.08.06 1.1 (comptat amb Intel

Quartus Prime Pro Edition

17.1.1) i 1.0 (admès amb

Intel Quartus Prime Pro Edition 17.0.0)

S'ha actualitzat la ubicació del codi font dels NLBample AFU in La NLB SampFunció d'acceleració (AF) secció.
 2018.04.11 1.0 (comptat amb Intel

Quartus Prime Pro Edition 17.0.0)

Alliberament inicial.

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Documents/Recursos

Unitat funcional de l'accelerador de bucle invertit natiu intel (AFU) [pdfGuia de l'usuari
Unitat funcional de l'accelerador de bucle natiu AFU, Loopback natiu, unitat funcional de l'accelerador AFU, unitat funcional AFU

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *