Intel FPGA Azelerazio Txartel Programagarria D5005
Dokumentu honi buruz
Dokumentu honek memoria zuzeneko sarbidea (DMA) Azeleragailuen Unitate Funtzionala (AFU) inplementazioa eta diseinua nola eraiki hardwarean edo simulazioan exekutatzeko deskribatzen du.
Aurreikusitako publikoa
Aurreikusitako publikoa Intel FPGA gailura konektatutako memorian datuak lokalean gordetzeko Azeleragailu Funtzioa (AF) behar duten hardware edo software garatzaileek osatzen dute.
Hitzarmenak
Dokumentu hitzarmenak
Hitzarmena | Deskribapena |
# | Komandoa root gisa sartu behar dela adierazten duen komando baten aurretik dago. |
$ | Komando bat erabiltzaile gisa sartu behar dela adierazten du. |
Letra-tipo hau | Fileizenak, komandoak eta gako-hitzak letra-tipo honetan inprimatzen dira. Letra-tipo honetan komando-lerro luzeak inprimatzen dira. Komando-lerro luzeak hurrengo lerrora bil daitezkeen arren, itzulera ez da komandoaren parte; ez sakatu Sartu. |
Parentesi angeluen artean agertzen den leku-markaren testua balio egoki batekin ordeztu behar dela adierazten du. Ez sartu parentesi angeluetan. |
Siglak
Siglak
Siglak | Hedapena | Deskribapena |
AF | Azeleragailu funtzioa | Aplikazio bat bizkortzen duen FPGA logikan inplementatutako Hardware Accelerator irudia. |
AFU | Azeleragailuen Unitate Funtzionala | Hardware Azeleragailua FPGA logikan inplementatuta dagoena, CPUtik aplikazio baten eragiketa konputazionala deskargatzen du errendimendua hobetzeko. |
APIa | Aplikazioak Programatzeko Interfazea | Software-aplikazioak eraikitzeko azpirrutinen definizio, protokolo eta tresnen multzoa. |
CCI-P | Core Cache Interfazea | CCI-P AFUk ostalariarekin komunikatzeko erabiltzen duten interfaze estandarra da. |
DFH | Gailuaren Ezaugarrien goiburua | Ezaugarrien goiburuen zerrenda estekatu bat sortzen du, funtzioak gehitzeko modu zabalgarria eskaintzeko. |
jarraitu… |
Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
Siglak | Hedapena | Deskribapena |
FIM | FPGA Interfazearen kudeatzailea | FPGA Hardwarea FPGA Interfaze Unitatea (FIU) eta memoriarako, sarerako eta abarretarako kanpoko interfazeak dituena.
Azeleragailu Funtzioa (AF) FIM-ekin interfazea exekutatzeko garaian. |
FIU | FPGA Interfaze Unitatea | FIU plataforma-interfaze geruza bat da, PCIe*, UPI eta AFU-alboko interfazeen arteko zubi gisa jokatzen duena, hala nola CCI-P. |
MPF | Memoria Propietateen Fabrika | MPF Oinarrizko Building Block (BBB) da, AFUek CCI-P trafikoa moldatzeko eragiketak eskaintzeko FIUrekin egindako transakzioetarako erabil dezaketena. |
Azelerazio Glosarioa
Azelerazio pila Intel® Xeon® CPUrako FPGA-ekin Glosarioa
Epea | Laburdura | Deskribapena |
Intel® Acceleration Stack Intel Xeon® CPUrako FPGAekin | Azelerazio pila | Intel FPGA baten eta Intel Xeon prozesadore baten arteko errendimendu optimizatutako konektagarritasuna eskaintzen duen software, firmware eta tresnen bilduma. |
Intel FPGA Azelerazio Txartela Programagarria | Intel FPGA PAC | PCIe FPGA azeleragailu txartela.
PCIe busaren bidez Intel Xeon prozesadore batekin parekatzen den FPGA Interface Manager (FIM) dauka. |
- DMA azeleragailuaren unitate funtzionalaren erabiltzailearen gida: Intel FPGA azelerazio-txartel programagarria D5005
DMA AFU Deskribapena
Sarrera
Memoria Zuzeneko Sarbidea (DMA) AFU adibidezample-ek ostalari-prozesadorearen eta FPGAren arteko memoria transferentziak nola kudeatu erakusten du. DMA AFU zure diseinuan integra dezakezu ostalari-memoriaren eta FPGA memoria lokalaren artean datuak mugitzeko. DMA AFU-k azpimodulu hauek ditu:
- Memory Properties Factory (MPF) Oinarrizko Building Block (BBB)
- Core Cache Interface (CCI-P) Avalon® Memory-Mapped (Avalon-MM) egokigailura
- DMA Test System DMA BBB daukana
Azpimodulu hauek xehetasun gehiagorekin deskribatzen dira beheko DMA AFU Hardware Osagaiak gaian.
Lotutako informazioa
- DMA AFU hardwarearen osagaiak 6. orrialdean
- Avalon Interfazearen zehaztapenak
Avalon-MM protokoloari buruzko informazio gehiago lortzeko, irakurtzeko eta idazteko transakzioetarako denbora-diagramak barne.
DMA AFU software paketea
Intel Aceleration Stack Intel Xeon CPUrako FPGA paketearekin file (*.tar.gz), DMA AFU adibidezample. Adibample-ek erabiltzaileentzako espazio kontrolatzailea eskaintzen du. Ostalariaren aplikazioak kontrolatzaile hau erabiltzen du DMAk datuak ostalariaren eta FPGA memoriaren artean mugitzeko. Hardwarearen bitarrak, iturriak eta erabiltzailearen espazioaren kontrolatzailea honako direktorio honetan daude eskuragarri: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . DMA AFUrekin esperimentatu aurretik, Open Programable Acceleration Engine (OPAE) software paketea instalatu behar duzu. Ikus OPAE software paketea instalatzea Intel Acceleration Stack Quick Start Guide for Intel FPGA Programable Acceleration Card D5005 instalatzeko argibideak lortzeko. Abiatzeko Gida Azkar honek, Open Programable Acceleration Engine (OPAE) eta AFU bat konfiguratzeari buruzko oinarrizko informazioa ere biltzen du. Open Programable Acceleration Engine (OPAE) software paketea instalatu ondoren, gisaampostalariaren aplikazioa eta DMA AFU erabiltzaile-espazio kontrolatzailea hurrengo direktorio honetan daude eskuragarri: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. sampostalariaren aplikazioa, fpga_dma_test zure Intel FPGA PAC D5005 hardwarean, ikusi DMA AFU Ex exekutatzen ataleko urratsak.ample. Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
Lotutako informazioa
- Intel Acceleration Stack Quick Start Guide for Intel FPGA Programable Acceleration Card D5005erako
- OPAE software paketea instalatzea
DMA AFU Hardware Osagaiak
DMA AFU FPGA Interface Unit (FIU) eta FPGA memoriarekin interfazea egiten du. Ikusi Intel FPGA D5005 Azelerazio Txartel Programagarrirako FPGA Interface Manager datu-orrira FPGA memoriaren zehaztapen zehatzak lortzeko. Une honetan eskuragarri dagoen hardwareak agintzen du memoriaren konfigurazio hori. Etorkizuneko hardwareak memoria-konfigurazio desberdinak onar ditzake. DMA AFU erabil dezakezu iturri eta helmuga kokapen hauen artean datuak kopiatzeko:
- Gailuaren ostalariaren FPGA memoria
- Gailuaren FPGA memoria ostalariari
Platform Designer sistema bat, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys-ek DMA gehiena inplementatzen du
- AFU. Platform Designer sisteman inplementatutako DMA AFUren zati bat honako honetan aurki daiteke
kokapena:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ DMA BBB aurki dezakezu honako toki honetan:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA azeleragailuaren unitate funtzionalaren erabiltzailearen gida: Intel FPGA azelerazio-txartel programagarria D5005
DMA AFU Hardware-Bloke Diagrama
DMA AFU-k barne modulu hauek ditu FPGA Interfaze Unitatearekin (FIU) interfazea egiteko:
- Memory-Mapped IO (MMIO) Deskodetzailearen Logika: MMIO irakurtzeko eta idazteko transakzioak detektatzen ditu eta iristen diren CCI-P RX kanaletik bereizten ditu. Horrek bermatzen du MMIO trafikoa inoiz ez dela MPF BBBra iristen eta MMIO komando-kanal independente batek hornitzen duela.
- Memory Properties Factory (MPF): Modulu honek DMA-tik irakurritako erantzunak igorri ziren ordenan itzultzen direla ziurtatzen du. Avalon-MM protokoloak irakurritako erantzunak ordena egokian itzultzeko eskatzen du.
- CCI-P Avalon-MM egokitzailea: Modulu hau CCI-P eta Avalon-MM transakzioen artean itzultzen da, honela:
- CCI-P Avalon-MMIO egokitzailea: bide honek CCI-P MMIO transakzioak Avalon-MM transakzio bihurtzen ditu.
- Avalon-era CCI-P ostalariaren egokitzailea: bide hauek irakurtzeko eta idazteko soilik diren bide bereiziak sortzen dituzte DMAk ostalari-memoria atzitzeko.
- DMA Test Sistema: Modulu honek DMA BBBren inguruan bilgarri gisa balio du DMA maisuak AFUko gainerako logikak erakusteko. DMA BBB eta CCI-P to Avalon egokigailuaren arteko interfazea eskaintzen du. DMA BBB eta tokiko FPGA SDRAM bankuen arteko interfazea ere eskaintzen du.
Lotutako informazioa
FPGA Interfaze-kudeatzailea Intel FPGA D5005 azelerazio-txartel programagarrirako datu-orrirako
DMA Test Sistema
DMA proba sistemak DMA BBB gainerako FPGA diseinuarekin konektatzen du CCI-P egokitzapena eta tokiko FPGA memoria barne.
DMA Test System Block Diagrama
Bloke-diagrama honek DMA proba-sistemaren barneak erakusten ditu. DMA proba-sistema bloke monolitiko gisa ageri da 1. orrialdeko 7. irudian.
DMA proba sistemak barne modulu hauek ditu:
- Far Reach Bridge/Pipeline Bridge: Topologia kontrolatzeko eta Fmax diseinua hobetzeko latentzia erregulagarria duen kanalizazio-zubia.
- DMA AFU Gailuaren Ezaugarrien Goiburukoa (DFH): DMA AFUrako DFH bat da. DFH honek 0x100 desplazamenduan kokatutako hurrengo DFHra seinalatzen du (DMA BBB DFH).
- DFH nulua: osagai honek DFH estekatutako zerrenda amaitzen du. Diseinuari DMA BBB gehiago gehitzen badiozu, ziurtatu DFH oinarrizko helbidea nulua DFH estekatutako zerrendaren amaieran dagoela.
- MA Basic Building Block (BBB): Bloke honek datuak ostalariaren eta tokiko FPGA memoriaren artean mugitzen ditu. Ostalariaren memorian ere sartzen da deskribatzaile-kateetara sartzeko.
DMA BBB
DMA BBB azpisistemak datuak iturburutik helmugako helbideetara transferitzen ditu Avalon-MM transakzioak erabiliz. DMA kontrolatzaileak DMA BBB kontrolatzen du sistema barruko osagai ezberdinen kontrol eta egoera erregistrora sartuz. DMA kontrolatzaileak DMA BBB ere kontrolatzen du memoria partekatua erabiliz transferentzia deskribatzaileak komunikatzeko. DMA BBB-k FPGA memoriako datuak atzitzen ditu 0x0 desplazamenduan. DMA BBB-k ostalari-memorian dauden datu eta deskribatzaileak atzitzen ditu 0x1_0000_0000_0000 desplazamenduan.
DMA BBB Plataforma Diseinatzailearen bloke-diagrama
Bloke-diagrama honek barneko Pipeline Bridge IP nukleo batzuk baztertzen ditu.
DMA azeleragailuaren unitate funtzionalaren erabiltzailearen gida: Intel FPGA azelerazio-txartel programagarria D5005
DMA AFU Deskribapena
DMA BBB Platform Designer-eko osagaiek funtzio hauek ezartzen dituzte:
- Urruneko zubia/Pipeline Bridge: Topologia kontrolatzeko eta Fmax diseinua hobetzeko latentzia erregulagarria duen kanalizazio-zubi bat barne.
- MA BBB DFH: Hau DMA BBB-ren gailuaren eginbideen goiburua da. DFH honek 0x100 desplazamenduan kokatutako hurrengo DFHra seinalatzen du (DFH nula).
- Frontend deskribatzailea: Deskribatzaileak eskuratzeaz eta Dispatcherra transferitzeaz arduratzen da. DMA transferentzia amaitzen denean frontend-ak egoera eraketa jasotzen du Dispatcher-etik eta deskribatzailea gainidazten du ostalariaren memorian.
- Bidaltzailea: Bloke honek DMA transferentziak irakurtzeko eta idazteko maisurako eskaerak programatzen ditu.
- Irakurri maisua: Bloke hau ostalari edo tokiko FPGA memoriako datuak irakurtzeaz eta Write Masterra streaming datu gisa bidaltzeaz arduratzen da.
- Idatzi maisua: Bloke hau Read Master-etik streaming datuak jasotzeaz eta edukiak ostalari edo tokiko FPGA memorian idazteaz arduratzen da.
Erregistratu mapa eta helbide-espazioak
DMA AFU-k bi memoria onartzen ditu views: DMA view eta ostalaria view. DMA view 49 biteko helbide-espazioa onartzen du. DMAren beheko erdia view tokiko FPGA memoriara mapatzen du. DMAren goiko erdia view memoria ostatatzeko mapak. Ostalaria view MMIO sarbideen bidez eskura daitezkeen erregistro guztiak biltzen ditu, hala nola DFH taulak, eta DMA AFU barruan erabiltzen diren IP nukleo ezberdinen kontrol/egoera erregistroak. MMIOk DMA BBB eta AFU-n erregistratzen dira 32 eta 64 biteko sarbidea onartzen dute. DMA AFU-k ez du 512 biteko MMIO sarbidea onartzen. DMA BBB barruko Dispatcher erregistroetarako sarbideek 32 biteko izan behar dute (Descriptor frontend-ek 64 biteko erregistroak inplementatzen ditu).
DMA AFU Erregistratu Mapa
DMA AFU erregistro-mapak unitateko kokapen guztien helbide absolutuak eskaintzen ditu. Erregistro hauek ostalarian daude view ostalaria baino ez baita haietara sar daitekeena.
DMA AFU memoria-mapa
Byte-helbideen desplazamenduak | Izena | Bytetan tartea | Deskribapena |
0x0 | DMA AFU DFH | 0x40 | DMA AFUrako gailuaren eginbideen goiburua. ID_L 0x9081f88b8f655caa-n ezarri da eta ID_H 0x331db30c988541ea-n. DMA AFU DFH parametrotu da 0x100 desplazamendua seinalatzeko hurrengo DFH aurkitzeko (DMA BBB DFH). Ez duzu DMA AFU DFH-ren oinarrizko helbidea aldatu behar CCIP zehaztapenak zehaztutako 0x0 helbidean egon behar baitu. |
0x100 | DMA BBB | 0x100 | DMA BBB kontrola eta egoera erregistroko interfazea zehazten ditu. Informazio gehiagorako DMA BBB erregistroko mapara jo dezakezu. DMA BBBren 0 desplazamenduan DMA BBB-k bere DFH barne hartzen du. DFH hau hurrengo DFH 0x100 desplazamenduan aurkitzeko ezarri da (DFH NULL). DMA BBB gehiago gehitzen badituzu, banatu 0x100 eta ziurtatu NULL DFH azken DMA jarraitzen duela 0x100. |
0x200 | NULL DFH | 0x40 | DFH estekatutako zerrenda amaitzen du. ID_L 0x90fe6aab12a0132f gisa ezarri da eta ID_H 0xda1182b1b3444e23 gisa. NULL DFH hardwareko azken DFH izan dadin parametrizatu da. Horregatik NULL DFH 0x200 helbidean dago. Sistemari DMA BBB gehigarriak gehitzen badituzu, NULL DFH oinarrizko helbidea horren arabera handitu behar duzu, helbiderik altuenean egon dadin. DMA kontrolatzaileak eta proba aplikazioak ez dute hardware hau erabiltzen. |
Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
Erregistratu mapa eta helbide-espazioak
DMA BBB Memoria Mapa
Hurrengo byte-helbide hauek DMA AFU sistemako DMA BBB oinarrizko helbidearen desplazamendu erlatiboak dira (0x100).
Byte-helbideen desplazamenduak | Izena | Bytetan tartea | Deskribapena |
0x0 | DMA BBB DFH | 0x40 | DMA AFUrako gailuaren eginbideen goiburua. ID_L 0xa9149a35bace01ea gisa ezarri da eta ID_H 0xef82def7f6ec40fc. DMA BBB DFH hurrengo DFH desplazamendurako 0x100era seinalatzeko parametrizatu da. Hurrengo desplazamendu hau beste DMA BBB bat, beste DFH bat (diseinu honetan sartzen ez dena) edo NULL DFH izan daiteke. |
0x40 | Bidaltzailea | 0x40 | Bidaltzailearen kontrol-ataka. DMA kontrolatzaileak kokapen hau erabiltzen du DMA kontrolatzeko edo haren egoera kontsultatzeko. |
0x80 | Frontend deskribatzailea | 0x40 | Deskriptorea frontend osagai pertsonalizatua da, ostalariaren memoriatik deskribatzaileak irakurtzen dituena eta DMA transferentzia amaitzen denean deskribatzailea gainidazten duena. Gidariak lehen deskribatzailea ostalari-memorian bizi den frontend-ari agintzen dio eta gero frontend-eko hardwarea kontrolatzailearekin komunikatzen den nagusiki ostalari-memorian gordetako deskribatzaileen bidez. |
DMA AFU Helbide espazioa
Ostalariak 4. orrialdeko 12. taulan eta 5. orrialdeko 13. taulan zerrendatutako erregistroetara sar dezake. DMA BBB azpisistemak 49 biteko helbide-espazio osorako sarbidea du. Helbide-espazio honen beheko erdiak tokiko FPGA memoriak biltzen ditu. Helbide-espazio honen goiko erdiak 48 biteko ostalariaren helbide-memoria barne hartzen du. Hurrengo irudian ostalaria eta DMA erakusten dira viewmemoriaren s.
DMA AFU eta ostalaria ViewMemoriaren s
Gailuaren Ezaugarrien Goiburua Lotutako Zerrenda
DMA AFU diseinua adibidezampfitxategiak hiru gailuen ezaugarrien goiburu (DFH) ditu, estekatutako zerrenda bat osatzen dutenak. Lotutako zerrenda honek sample aplikazioa DMA AFU identifikatzeko eta baita DMA BBB identifikatzeko gidaria ere. DFH zerrendak DFH NULL bat dauka amaieran. Estekatutako zerrendaren amaieran DFH nulua sartzeak DMA BBB gehiago gehi ditzakezu zure diseinuari. Besterik gabe, NULL DFH beste BBBen ondoren helbide batera eraman behar duzu. DMA BBB bakoitzak hurrengo DFH BBBren oinarrizko helbidetik 0x100 byte-ra kokatzea espero du. Hurrengo irudian DMA AFU diseinurako estekatutako zerrenda irudikatzen da, adibidezample.
Erregistratu mapa eta helbide-espazioak
DMA AFU Gailuaren Ezaugarrien Goiburukoa (DFH) Kateatzea
Software Programazio Eredua
DMA AFU-k zure ostalari aplikazioan erabil dezakezun software-kontrolatzailea dakar. fpga_dma.cpp eta fpga_dma.h filekokapen honetan kokatzen direnek software kontrolatzailea inplementatzen dute: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Gidari honek funtzio hauek onartzen ditu:
APIa | Deskribapena |
fpgaCountDMACchannels | Gailuaren ezaugarri-katea DMA BBBak bilatzen ditu eta erabilgarri dauden kanal guztiak zenbatzen ditu. |
fpgaDMAOpen | Helduleku bat irekitzen du DMA kanalerako. |
fpgaDMACitsi | DMA kanalerako helduleku bat ixten du. |
fpgaDMATransferInit | DMA transferentzia adierazten duen objektu bat hasieratzen du. |
fpgaDMATransferReset | DMA transferentzia-atributuaren objektua balio lehenetsietara berrezartzen du. |
fpgaDMATransferDestroy | DMA transferentzia-atributuaren objektua suntsitzen du. |
fpgaDMATransferSetSrc | Transferentziaren iturburu-helbidea ezartzen du. Helbide honek 64 byte lerrokatuta egon behar du. |
fpgaDMATransferSetDst | Transferentziaren helmuga helbidea ezartzen du. Helbide honek 64 byte lerrokatuta egon behar du. |
fpgaDMATransferSetLen | Transferentzia-luzerak bytetan ezartzen ditu. Pakete-transferentziak ez direnetarako, transferentziaren luzera 64 byteko multiplo batean ezarri behar duzu. Pakete transferentziak egiteko, hau ez da baldintza bat. |
fpgaDMATransferSetTransferType | Transferentzia mota ezartzen du. Balore juridikoak hauek dira:
• HOST_MM_TO_FPGA_MM = TX (Ostalari AFU) • FPGA_MM_TO_HOST_MM = RX (AFU ostalariari) |
fpgaDMATransferSetTransferCallback | Transferentzia asinkronoa amaitzean jakinarazpenerako deia-itzulera erregistratzen du. Deia itzultzea zehazten baduzu, fpgaDMATransfer berehala itzuliko da (transferentzia asinkronoa).
Ez baduzu itzulerarik zehazten, fpgaDMATransfer transferentzia amaitu ondoren itzuliko da (transferentzia sinkronikoa/blokeatzailea). |
fpgaDMATransferSetLast | Azken transferentzia adierazten du, DMA aurrez eskuratutako transferentziak prozesatzen has dadin. Balio lehenetsia 64 transferentzia da DMA transferentziak lantzen hasi aurretik. |
fpgaDMATransfer | DMA transferentzia bat egiten du. |
API, sarrera eta irteera argumentuei buruzko informazio gehiago lortzeko, jo goiburua file $OPAE_PLATFORM_ROOT/hw/s dago kokatutaamples/dma_afu/sw/fpga_dma.hIntel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. Beste izen eta marka batzuk beste batzuen jabetza direla erreklamatu daitezke.
Software Programazio Eredua
Software-gidariaren erabilera-ereduari buruz gehiago jakiteko, irakurri IRAKURRI file $OPAE_PLATFORM_ROOT/hw/s helbidean dagoamples/dma_afu/README.md
Exekutatzen DMA AFU Adibample
Hasi aurretik:
- Exa ezagutu beharko zenukeampIntel Acceleration Stack Quick Start Guide for Intel FPGA Programable Acceleration Card D5005erako.
- Inguruko aldagai bat definitu behar duzu. Inguruko aldagaia erabiltzen ari zaren Intel Acceleration Stack bertsioaren menpe dago:
- Uneko bertsiorako, ezarri ingurune-aldagaia $OPAE_PLATFORM_ROOT gisa
- Intel Threading Building Blocks (TBB) liburutegia instalatu behar duzu DMA kontrolatzailea horretan oinarritzen baita.
- 1 GB-ko bi orrialde erraldoi ere konfiguratu behar dituzu s exekutatzekoample aplikazioa. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Egin urrats hauek DMA Accelerator Function (AF) bit-stream deskargatzeko, aplikazioa eta kontrolatzailea eraikitzeko eta diseinua exekutatzeko.ample:
- Aldatu DMA aplikaziora eta kontrolatzaileen direktoriora: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Eraiki gidaria eta aplikazioa: make
- Deskargatu DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Exekutatu ostalariaren aplikazioa 100 MB idazteko 1 MB zatitan ostalariaren memoriatik FPGA gailuaren memoriara eta irakurri berriro: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Lotutako informazioa
Intel Acceleration Stack Quick Start Guide for Intel FPGA Programable Acceleration Card D5005 Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
DMA AFU Adibample
AF bat konpilatzeko sintesia eraikitzeko ingurune bat sortzeko, erabili afu_synth_setup komandoa honela:
- Aldatu DMA AFUraampfitxategien direktorioa: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Sortu diseinua eraikitzeko direktorioa: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- afu_synth_setup-ek sortutako sintesi-eraikitze direktoriotik, sartu komando hauek terminal-leiho batetik helburuko hardware-plataformarako AF bat sortzeko: cd build_synth run.sh run.sh AF belaunaldiko script-ak AF irudia sortzen du oinarri berarekin. fileizena AFUren plataformaren konfigurazio gisa file (.json) .gbs atzizkiarekin kokapena: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
AFU Ex. simulatuzample
Intel-ek gomendatzen du Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Gidara jotzea zure Intel FPGA PAC-rako, antzeko ex simulatzen ezagutzeko.amples eta zure ingurunea konfiguratzeko. Hurrengo pausoak jarraitu aurretik, egiaztatu OPAE_PLATFORM_ROOT ingurune-aldagaia OPAE SDK instalazio-direktorioan ezarrita dagoela. Bete urrats hauek DMA AFUrako hardware-simulagailua konfiguratzeko:
- Aldatu DMA AFUraampfitxategien direktorioa: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Sortu ASE ingurune bat direktorio berri batean eta konfiguratu AFU bat simulatzeko: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Aldatu ASE eraikitze direktoriora: cd build_ase_dir
- Eraiki gidaria eta aplikazioa: make
- Egin simulazioa: egin sim
Samphardware-simulagailutik irtetea:
[SIM] ** KONTUZ : software aplikazioa exekutatu aurretik ** [SIM] Ezarri env(ASE_WORKDIR) aplikazioa exekutatuko den terminalean (kopiatu eta itsatsi) => [SIM] $SHELL | Exekutatu:[SIM] ———+————————————————— [SIM] bash/zsh | esportatu ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Beste edozein $SHELL-erako, kontsultatu zure Linux administratzailea [SIM] [SIM] Simulaziorako prest... [SIM] Sakatu CTRL-C simulagailua ixteko...Bete urrats hauek DMA AFU softwarea simulazio ingurunean konpilatzeko eta exekutatzeko:
- Ireki terminal-leiho berri bat.
- Aldatu direktorioa hona: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
AFU Ex. simulatuzample
- Kopiatu ingurunearen konfigurazio katea (aukeratu zure shell-erako egokia den katea) hardwarearen simulazioan goiko urratsetatik terminaleko leihoan. Ikus hurrengo lerroak samphardware simulagailuaren irteera. [SIM] bash/zsh | esportatu ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- Konpilatu softwarea: $ make USE_ASE=1
- Exekutatu ostalariaren aplikazioa 4 KB idazteko 1 KB zatitan ostalariaren memoriatik FPGA gailuaren memoriara berriro loopback moduan: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Lotutako informazioa
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Erabiltzailearen gida
DMA Errendimendu Hobetzeko Optimizazioa
fpga_dma_test.cpp-n NUMA (memoriaren sarbide ez-uniformea) optimizazioa inplementatzeari esker, prozesadoreak bere memoria lokalean sartzea ahalbidetzen du, memoria ez-lokala (memoria lokala beste prozesadore baterako) atzitzea baino azkarrago. NUMA konfigurazio tipikoa beheko diagraman erakusten da. Sarbide lokalak nukleo batetik memoria lokalerako sarbidea adierazten du nukleo berera. Urruneko sarbideak 0. nodoko nukleoak 1. nodoko memoria lokalean dagoen memorian sartzen direnean hartzen duen bidea erakusten du.
NUMA konfigurazio tipikoa
Erabili kode hau zure proba aplikazioan NUMA optimizazioa ezartzeko:
// Konfiguratu afinitate egokia eskatuz gero (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice (props, (uint8_t *) & dev);ON_ERR_GOTO (res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction (props, (uint8_t *) & func);ON_ERR_GOTO, “fpgaPropertiesGetDevice” ; // Aurkitu gailua hwloc_topology_t topologiatik; hwloc_topology_init(&topology); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du edozein unetan jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
DMA Errendimendu Hobetzeko Optimizazioa
hwloc_topology_load(topologia); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topologia, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (topology, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf (str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2->cpuset); printf(“CPUSET %s\n da”, str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2->nodeset); printf(“NODESET %s\n da”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBINDBY_NOMIGRBATE |HWLOC_MEMBINDBY_NOMIGRBATE); #else retval =hwloc_set_membind_nodeset(topology, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) { retval = hwloc_set_cpubind (topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); }}
DMA Accelerator Unitate Funtzionala Erabiltzailearen Gida Artxiboak
Intel Acceleration Stack bertsioa | Erabiltzailearen gida (PDF) |
2.0 | DMA Azeleragailuaren Unitate Funtzionala (AFU) Erabiltzailearen Gida |
DMA Accelerator Unitate Funtzionalaren Erabiltzailearen Gida Dokumentuen Berrikuspen Historia
Dokumentuaren bertsioa |
Intel azelerazioa Pila bertsioa |
Aldaketak |
2020.08.03 |
2.0.1 (Intel-ekin bateragarria
Quartus® Prime Pro Edition Edizioa 19.2) |
AF irudia zuzendu da file izena atalean DMA AFU Adibample. |
2020.04.17 |
2.0.1 (Intel-ekin bateragarria
Quartus Prime Pro Edition Edizioa 19.2) |
Adierazpen bat zuzendu du Aurreikusitako publikoa atala. |
2020.02.20 |
2.0.1 (Intel-ekin bateragarria
Quartus Prime Pro Edition Edizioa 19.2) |
Akatsa konpondu da. |
2019.11.04 |
2.0.1 (Intel-ekin bateragarria Quartus Prime Pro Edition Edizioa 19.2) |
• fpgaconf fpgasupdate-rekin ordezkatu da FPGA ataleko aurrebuild AFU-rekin konfiguratzean. DMA AFU Exekutatzenample.
• Azpitituluak gehituta Intel FPGA Azelerazio Txartel Programagarria D5005 dokumentuaren izenburuari. • $OPAE_PLATFORM_ROOT ingurune-aldagaia gehitu da. • Atala aldatua Software Programazio Eredua aldaketa txikietarako. • Atal berria gehitu da DMA AFU Adibample. • Atala aldatua DMA Errendimendu Hobetzeko Optimizazioa aldaketa txikietarako. |
2019.08.05 |
2.0 (Intel-ekin bateragarria
Quartus Prime Pro Edition 18.1.2) |
Hasierako kaleratzea. |
Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik.
- Beste izen eta marka batzuk beste batzuen jabetza direla erreklamatu daitezke.
Dokumentuak / Baliabideak
![]() |
Intel FPGA Azelerazio Txartel Programagarria D5005 [pdfErabiltzailearen gida FPGA Azelerazio Txartel Programagarria, D5005, FPGA Azelerazio Txartel Programagarria D5005, DMA Azeleragailuaren Unitate Funtzionala |