Karta e përshpejtimit e programueshme e Intel FPGA D5005
Rreth këtij Dokumenti
Ky dokument përshkruan zbatimin e Njësisë Funksionale të Përshpejtuesit (AFU) të aksesit të memories direkte (DMA) dhe mënyrën e ndërtimit të dizajnit për t'u ekzekutuar në harduer ose në simulim.
Audienca e synuar
Audienca e synuar përfshin zhvillues harduerësh ose softuerësh që kërkojnë një Funksion Përshpejtuesi (AF) për të fshirë të dhënat lokalisht në memorien e lidhur me pajisjen Intel FPGA.
Konventat
Konventat e dokumenteve
Konventa | Përshkrimi |
# | I paraprin një komande që tregon se komanda duhet të futet si rrënjë. |
$ | Tregon se një komandë duhet të futet si përdorues. |
Ky font | Fileemrat, komandat dhe fjalët kyçe shtypen në këtë font. Linjat e gjata të komandës shtypen në këtë font. Megjithëse linjat e gjata të komandës mund të mbyllen në rreshtin tjetër, kthimi nuk është pjesë e komandës; mos shtypni enter. |
Tregon se teksti i mbajtësit të vendndodhjes që shfaqet midis kllapave të këndit duhet të zëvendësohet me një vlerë të përshtatshme. Mos futni kllapat e këndit. |
Akronimet
Akronimet
Akronimet | Zgjerimi | Përshkrimi |
AF | Funksioni i përshpejtuesit | Imazhi i përpiluar i përshpejtuesit të harduerit i zbatuar në logjikën FPGA që përshpejton një aplikacion. |
AFU | Njësia funksionale e përshpejtuesit | Përshpejtuesi i harduerit i implementuar në logjikën FPGA i cili shkarkon një operacion llogaritës për një aplikacion nga CPU për të përmirësuar performancën. |
API | Ndërfaqja e programimit të aplikacionit | Një grup përkufizimesh, protokollesh dhe mjetesh nënrutinë për ndërtimin e aplikacioneve softuerike. |
CCI-P | Ndërfaqja kryesore e cache-it | CCI-P është ndërfaqja standarde që përdorin AFU-të për të komunikuar me hostin. |
DFH | Kreu i veçorive të pajisjes | Krijon një listë të lidhur me titujt e veçorive për të ofruar një mënyrë të zgjeruar për të shtuar veçori. |
vazhdoi… |
Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Akronimet | Zgjerimi | Përshkrimi |
FIM | Menaxheri i ndërfaqes FPGA | Pajisja FPGA që përmban njësinë e ndërfaqes FPGA (FIU) dhe ndërfaqe të jashtme për memorie, rrjet, etj.
Funksioni i Përshpejtuesit (AF) ndërlidhet me FIM në kohën e ekzekutimit. |
NjIF | Njësia e ndërfaqes FPGA | FIU është një shtresë e ndërfaqes së platformës që vepron si një urë ndërmjet ndërfaqeve të platformës si ndërfaqet PCIe*, UPI dhe AFU si CCI-P. |
MPF | Memory Properties Factory | MPF është një bllok themelor ndërtimi (BBB) që AFU-të mund ta përdorin për të ofruar operacione të formësimit të trafikut CCI-P për transaksionet me FIU. |
Fjalori i përshpejtimit
Stack përshpejtimi për CPU Intel® Xeon® me Fjalor FPGA
Afati | Shkurtesa | Përshkrimi |
Intel® Acceleration Stack për CPU Intel Xeon® me FPGA | Stack përshpejtimi | Një koleksion softuerësh, firmware dhe mjetesh që ofron lidhje të optimizuar për performancën midis një Intel FPGA dhe një procesori Intel Xeon. |
Karta e përshpejtimit e programueshme e Intel FPGA | Intel FPGA PAC | Karta e përshpejtuesit PCIe FPGA.
Përmban një menaxher të ndërfaqes FPGA (FIM) që çiftohet me një procesor Intel Xeon mbi autobusin PCIe. |
- Udhëzuesi i përdorimit të njësisë funksionale të përshpejtuesit DMA: Karta e programueshme e përshpejtimit Intel FPGA D5005
Përshkrimi i DMA AFU
Hyrje
Qasja e drejtpërdrejtë në memorie (DMA) AFU example tregon se si të menaxhoni transferimet e memories midis procesorit pritës dhe FPGA. Ju mund të integroni DMA AFU në dizajnin tuaj për të lëvizur të dhënat ndërmjet memories së hostit dhe kujtesës lokale FPGA. AFU DMA përbëhet nga nënmodulet e mëposhtme:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Ndërfaqja bazë e memories së memories (CCI-P) në përshtatësin Avalon® me Memory-Mapped (Avalon-MM)
- Sistemi i testimit DMA i cili përmban DMA BBB
Këto nënmodule përshkruhen më në detaje në temën DMA AFU Hardware Components më poshtë.
Informacione të Përafërta
- Komponentët e harduerit DMA AFU në faqen 6
- Specifikimet e ndërfaqes Avalon
Për më shumë informacion rreth protokollit Avalon-MM, duke përfshirë diagramet e kohës për transaksionet e leximit dhe shkrimit.
Paketa e softuerit DMA AFU
Stack Intel Acceleration për CPU Intel Xeon me paketën FPGA file (*.tar.gz), përfshin DMA AFU example. Ky ishample ofron një drejtues të hapësirës së përdoruesit. Aplikacioni pritës e përdor këtë drejtues në mënyrë që DMA të lëvizë të dhënat midis memorjes host dhe FPGA. Binarët e harduerit, burimet dhe drejtuesi i hapësirës së përdoruesit janë të disponueshëm në drejtorinë e mëposhtme: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Përpara se të eksperimentoni me DMA AFU, duhet të instaloni paketën e softuerit Open Programmable Acceleration Engine (OPAE). Për udhëzimet e instalimit, referojuni Instalimit të paketës softuerike OPAE në Udhëzuesin e Nisjes së Shpejtë të Stackit të Intel Acceleration për kartën e programueshme të përshpejtimit Intel FPGA D5005. Ky Udhëzues i Fillimit të Shpejtë përfshin gjithashtu informacionin bazë në lidhje me Motorin e Përshpejtimit të Programueshëm të Hapur (OPAE) dhe konfigurimin e një AFU. Pas instalimit të paketës softuerike Open Programmable Acceleration Engine (OPAE), siampaplikacioni pritës dhe drejtuesi i hapësirës së përdoruesit DMA AFU janë të disponueshëm në drejtorinë e mëposhtme: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Për të drejtuar sampnë aplikacionin pritës, fpga_dma_test në pajisjen tuaj Intel FPGA PAC D5005, referojuni hapave në seksionin Ekzekutimi i DMA AFU Example. Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Informacione të Përafërta
- Udhëzues për fillimin e shpejtë të Stack Intel Acceleration për kartën e programueshme të përshpejtimit Intel FPGA D5005
- Instalimi i paketës softuerike OPAE
Komponentët e harduerit DMA AFU
DMA AFU ndërlidhet me njësinë e ndërfaqes FPGA (FIU) dhe memorien FPGA. Referojuni fletës së të dhënave të menaxherit të ndërfaqes FPGA për kartën e programueshme të përshpejtimit Intel FPGA D5005 për specifikime të hollësishme të memories FPGA. Hardueri i disponueshëm aktualisht dikton këtë konfigurim të memories. Pajisjet e ardhshme mund të mbështesin konfigurime të ndryshme të memories. Ju mund të përdorni DMA AFU për të kopjuar të dhënat midis vendndodhjeve të mëposhtme të burimit dhe destinacionit:
- Memoria e hostit në pajisjen FPGA
- Memoria FPGA e pajisjes te hosti
Një sistem i projektuesit të platformës, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementon pjesën më të madhe të DMA
- AFU. Një pjesë e DMA AFU e implementuar në sistemin Platforma Designer mund të gjendet në vijim
vendndodhja:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Ju mund ta gjeni DMA BBB në vendndodhjen e mëposhtme:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Udhëzuesi i përdorimit të njësisë funksionale të përshpejtuesit DMA: Karta e programueshme e përshpejtimit Intel FPGA D5005
Diagrami i bllokut të harduerit DMA AFU
DMA AFU përfshin modulet e brendshme të mëposhtme për t'u ndërlidhur me Njësinë e Ndërfaqes FPGA (FIU):
- Logjika e dekoderit IO (MMIO) me hartë memorie: zbulon transaksionet e leximit dhe shkrimit të MMIO dhe i ndan ato nga kanali CCI-P RX 0 nga vijnë. Kjo siguron që trafiku MMIO të mos arrijë kurrë në MPF BBB dhe të shërbehet nga një kanal i pavarur komandues MMIO.
- Memory Properties Factory (MPF): Ky modul siguron që përgjigjet e leximit nga DMA të kthehen në rendin që janë lëshuar. Protokolli Avalon-MM kërkon që përgjigjet e leximit të kthehen në rendin e duhur.
- Përshtatës CCI-P në Avalon-MM: Ky modul përkthehet midis transaksioneve CCI-P dhe Avalon-MM, si më poshtë:
- Përshtatës CCI-P në Avalon-MMIO: Kjo rrugë përkthen transaksionet CCI-P MMIO në transaksione Avalon-MM.
- Adaptori i pritësit Avalon në CCI-P: Këto shtigje krijojnë shtigje të veçanta vetëm për lexim dhe vetëm për shkrim për DMA për të hyrë në kujtesën e hostit.
- Sistemi i testimit DMA: Ky modul shërben si një mbështjellës rreth DMA BBB për t'i ekspozuar zotërit e DMA ndaj pjesës tjetër të logjikës në AFU. Ai siguron ndërfaqen midis DMA BBB dhe CCI-P për përshtatësin Avalon. Ai gjithashtu siguron ndërfaqen midis DMA BBB dhe bankave lokale FPGA SDRAM.
Informacione të Përafërta
Fletë e të dhënave të menaxherit të ndërfaqes FPGA për kartën e programueshme të përshpejtimit Intel FPGA D5005
Sistemi i testimit DMA
Sistemi i testimit DMA lidh DMA BBB me pjesën tjetër të dizajnit FPGA duke përfshirë përshtatjen CCI-P dhe memorien lokale FPGA.
Diagrami i bllokut të sistemit të testimit DMA
Ky bllok diagram tregon pjesët e brendshme të sistemit të testimit DMA. Sistemi i testimit DMA është paraqitur si një bllok monolit në Figurën 1 në faqen 7.
Sistemi i testimit DMA përfshin modulet e brendshme të mëposhtme:
- Ura e largët/Ura e tubacionit: Një urë tubacioni me vonesë të rregullueshme të përfshirë për të kontrolluar topologjinë dhe për të përmirësuar dizajnin Fmax.
- Kreu i veçorive të pajisjes DMA AFU (DFH): Ky është një DFH për DMA AFU. Ky DFH tregon për DFH-në tjetër të vendosur në zhvendosjen 0x100 (DMA BBB DFH).
- DFH Null: Ky komponent përfundon listën e lidhur me DFH. Nëse shtoni më shumë DMA BBB në dizajn, sigurohuni që adresa bazë DFH e pavlefshme të jetë e vendosur në fund të listës së lidhur me DFH.
- MA Basic Building Block (BBB): Ky bllok lëviz të dhënat ndërmjet hostit dhe memories lokale FPGA. Ai gjithashtu akseson memorien e hostit për të hyrë në zinxhirët e përshkruesve.
DMA BBB
Nënsistemi DMA BBB transferon të dhëna nga adresat e burimit në destinacion duke përdorur transaksionet Avalon-MM. Drejtuesi DMA kontrollon DMA BBB duke hyrë në regjistrin e kontrollit dhe statusit të komponentëve të ndryshëm brenda sistemit. Drejtuesi DMA kontrollon gjithashtu DMA BBB duke përdorur memorie të përbashkët për të komunikuar përshkruesit e transferimit. DMA BBB akseson të dhënat në memorien FPGA me zhvendosje 0x0. DMA BBB akseson të dhënat dhe përshkruesit në memorien e hostit me kompensim 0x1_0000_0000_0000.
Diagrami i bllokut i projektuesit të platformës DMA BBB
Ky bllok diagram përjashton disa bërthama IP të brendshme të urës së tubacionit.
Udhëzuesi i përdorimit të njësisë funksionale të përshpejtuesit DMA: Karta e programueshme e përshpejtimit Intel FPGA D5005
Përshkrimi i DMA AFU
Komponentët në Dizajnuesin e Platformës DMA BBB zbatojnë funksionet e mëposhtme:
- Ura e Largët/Ura e Tubacionit: Një urë tubacioni me vonesë të rregullueshme të përfshirë për të kontrolluar topologjinë dhe për të përmirësuar dizajnin Fmax.
- MA BBB DFH: Ky është një titull i veçorive të pajisjes për DMA BBB. Ky DFH tregon për DFH-në e radhës që ndodhet në zhvendosjen 0x100 (DFH Null).
- Fronti i përshkruesit: Përgjegjës për marrjen e përshkruesve dhe transferimin e tyre te Dispeçeri. Kur një transferim DMA përfundon, frontend-i merr formimin e statusit nga Dispeçeri dhe mbishkruan përshkruesin në memorien e hostit.
- Dispeçeri: Ky bllok planifikon kërkesat e transfertave DMA te Masteri Leximi dhe Shkrimi.
- Lexoni Master: Ky bllok është përgjegjës për leximin e të dhënave nga hosti ose memoria lokale FPGA dhe dërgimi i tyre si të dhëna transmetimi te Write Master.
- Shkruaj Master: Ky bllok është përgjegjës për marrjen e të dhënave të transmetimit nga Masteri i leximit dhe shkrimin e përmbajtjes në memorien kryesore ose lokale FPGA.
Regjistro Hapësirat e Hartës dhe Adresave
DMA AFU mbështet dy memorie views: DMA view dhe nikoqiri view. DMA view mbështet një hapësirë adresash 49-bit. Gjysma e poshtme e DMA view harta në memorien lokale FPGA. Gjysma e sipërme e DMA view harta për memorien pritës. I ftuari view përfshin të gjithë regjistrat e aksesueshëm përmes akseseve MMIO si tabelat DFH dhe regjistrat e kontrollit/statusit të bërthamave të ndryshme IP të përdorura brenda DMA AFU. MMIO regjistrohet në DMA BBB dhe AFU mbështesin aksesin 32- dhe 64-bit. DMA AFU nuk mbështet akseset MMIO 512-bit. Qasjet në regjistrat e Dispeçerit brenda DMA BBB duhet të jenë 32 bit (Përshkruesi frontend zbaton regjistra 64-bitësh).
Harta e Regjistrimit të DMA AFU
Harta e regjistrit DMA AFU ofron adresat absolute të të gjitha vendndodhjeve brenda njësisë. Këto regjistra janë në host view sepse është vetëm hosti që mund t'i qaset.
Harta e kujtesës DMA AFU
Kompensimet e adresave të bajtit | Emri | Hapësira në byte | Përshkrimi |
0x0 | DMA AFU DFH | 0x40 | Titulli i veçorisë së pajisjes për DMA AFU. ID_L është vendosur në 0x9081f88b8f655caa dhe ID_H është vendosur në 0x331db30c988541ea. DMA AFU DFH është parametrizuar për të treguar zhvendosjen 0x100 për të gjetur DFH tjetër (DMA BBB DFH). Nuk duhet të modifikoni adresën bazë të DMA AFU DFH pasi ajo duhet të jetë e vendosur në adresën 0x0 siç përcaktohet nga specifikimi CCIP. |
0x100 | DMA BBB | 0x100 | Specifikon kontrollin DMA BBB dhe ndërfaqen e regjistrit të statusit. Ju mund t'i referoheni hartës së regjistrit DMA BBB për më shumë informacion. Brenda DMA BBB në kompensim 0, DMA BBB përfshin DFH-në e tij. Ky DFH është caktuar të gjejë DFH-në e radhës në zhvendosjen 0x100 (NULL DFH). Nëse shtoni më shumë DMA BBB, ndani ato 0x100 dhe sigurohuni që NULL DFH ndjek DMA-në e fundit me 0x100. |
0x200 | NULL DFH | 0x40 | Përfundon listën e lidhur me DFH. ID_L është vendosur në 0x90fe6aab12a0132f dhe ID_H është vendosur në 0xda1182b1b3444e23. NULL DFH është parametrizuar për të qenë DFH e fundit në harduer. Për këtë arsye NULL DFH ndodhet në adresën 0x200. Nëse shtoni DMA BBB shtesë në sistem, duhet të rrisni adresën bazë NULL DFH në përputhje me rrethanat në mënyrë që të mbetet në adresën më të lartë. Drejtuesi DMA dhe aplikacioni i testimit nuk e përdorin këtë pajisje. |
Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Regjistro Hapësirat e Hartës dhe Adresave
Harta e kujtesës DMA BBB
Adresat e bajtit të mëposhtëm janë zhvendosje relative nga adresa bazë DMA BBB në sistemin DMA AFU (0x100).
Kompensimet e adresave të bajtit | Emri | Hapësira në byte | Përshkrimi |
0x0 | DMA BBB DFH | 0x40 | Titulli i veçorisë së pajisjes për DMA AFU. ID_L është vendosur në 0xa9149a35bace01ea dhe ID_H është vendosur në 0xef82def7f6ec40fc. DMA BBB DFH është parametrizuar për të treguar në 0x100 për zhvendosjen e radhës DFH. Ky kompensim tjetër mund të jetë një tjetër DMA BBB, një tjetër DFH (që nuk përfshihet në këtë dizajn) ose NULL DFH. |
0x40 | Dispeçer | 0x40 | Porta e kontrollit për dispeçerin. Drejtuesi DMA përdor këtë vendndodhje për të kontrolluar DMA ose për të kërkuar statusin e saj. |
0x80 | Përshkruesi Frontend | 0x40 | Pjesa e përparme e përshkruesit është një komponent i personalizuar që lexon përshkruesit nga memoria e hostit dhe mbishkruan përshkruesin kur transferimi DMA përfundon. Drejtuesi udhëzon pjesën e përparme ku përshkruesi i parë jeton në memorien e hostit dhe më pas pajisja e frontit komunikon me drejtuesin kryesisht përmes përshkruesve të ruajtur në memorien pritës. |
Hapësira e Adresës DMA AFU
Hosti mund të aksesojë regjistrat e listuar në tabelën 4 në faqen 12 dhe në tabelën 5 në faqen 13. Nënsistemi DMA BBB ka akses në hapësirën e plotë të adresave 49-bit. Gjysma e poshtme e kësaj hapësire adresash përfshin memoriet lokale FPGA. Gjysma e sipërme e kësaj hapësire adresash përfshin memorien e adresës së hostit 48-bit. Figura e mëposhtme tregon hostin dhe DMA views të kujtesës.
DMA AFU dhe hosti Views e Kujtesës
Lista e lidhur me kokën e veçorive të pajisjes
Dizajni i DMA AFU ishample përmban tre tituj të veçorive të pajisjes (DFH) që formojnë një listë të lidhur. Kjo listë e lidhur lejon sampaplikacioni për të identifikuar DMA AFU si dhe drejtuesi për të identifikuar DMA BBB. Lista DFH përfshin një DFH NULL në fund. Përfshirja e DFH null në fund të listës së lidhur ju lejon të shtoni më shumë DMA BBB në dizajnin tuaj. Thjesht duhet të zhvendosni NULL DFH në një adresë pas BBB-ve të tjera. Çdo DMA BBB pret që DFH tjetër të jetë 0x100 bajt nga adresa bazë e BBB. Figura e mëposhtme përshkruan listën e lidhur për modelin DMA AFU example.
Regjistro Hapësirat e Hartës dhe Adresave
Zinxhiri i kokës së veçorive të pajisjes DMA AFU (DFH).
Modeli i programimit të softuerit
DMA AFU përfshin një drejtues softueri që mund ta përdorni në aplikacionin tuaj pritës. Fpga_dma.cpp dhe fpga_dma.h files që ndodhet në vendndodhjen e mëposhtme, zbatoni drejtuesin e softuerit:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ky drejtues mbështet funksionet e mëposhtme:
API | Përshkrimi |
fpgaCountDMAChannels | Skanon zinxhirin e veçorive të pajisjes për DMA BBB dhe numëron të gjitha kanalet e disponueshme. |
fpgaDMAOpen | Hap një dorezë në kanalin DMA. |
fpgaDMAClose | Mbyll një dorezë në kanalin DMA. |
fpgaDMATtransferInit | Inicializon një objekt që përfaqëson transferimin DMA. |
fpgaDMATtransferReset | Rivendos objektin e atributit të transferimit DMA në vlerat e paracaktuara. |
fpgaDMATtransferDestroy | Shkatërron objektin e atributit të transferimit DMA. |
fpgaDMATtransferSetSrc | Vendos adresën burimore të transferimit. Kjo adresë duhet të jetë e përafruar 64 bajt. |
fpgaDMATtransferSetDst | Vendos adresën e destinacionit të transferimit. Kjo adresë duhet të jetë e përafruar 64 bajt. |
fpgaDMATtransferSetLen | Vendos gjatësinë e transferimit në bajt. Për transferimet jo të paketave, duhet të vendosni gjatësinë e transferimit në një shumëfish prej 64 bajt. Për transferimet e paketave, kjo nuk është një kërkesë. |
fpgaDMATtransferSetTransferType | Përcakton llojin e transferimit. Vlerat ligjore janë:
• HOST_MM_TO_FPGA_MM = TX (Host në AFU) • FPGA_MM_TO_HOST_MM = RX (AFU në host) |
fpgaDMATtransferSetTransferCallback | Regjistron kthimin e thirrjes për njoftim për përfundimin e transferimit asinkron. Nëse specifikoni një kthim thirrjeje, fpgaDMATransfer kthehet menjëherë (transferim asinkron).
Nëse nuk specifikoni një kthim kthimi, fpgaDMATransfer kthehet pasi transferimi të përfundojë (transferim sinkron/bllokues). |
fpgaDMATtransferSetLast | Tregon transferimin e fundit në mënyrë që DMA të mund të fillojë të përpunojë transferimet e paravendosura. Vlera e paracaktuar është 64 transferime në tubacion përpara se DMA të fillojë të punojë në transferimet. |
Transferimi i fpgaDMAT | Kryen një transferim DMA. |
Për më shumë informacion rreth API-së, argumenteve hyrëse dhe dalëse, referojuni kokës file ndodhet $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Modeli i programimit të softuerit
Për të ditur më shumë rreth modelit të përdorimit të drejtuesve të softuerit, referojuni README file ndodhet në $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Drejtimi i DMA AFU Example
Përpara se të filloni:
- Ju duhet të njiheni me ishampLexoni në Udhëzuesin e Nisjes së Shpejtë të Stackit të Intel Acceleration për kartën e programueshme të përshpejtimit Intel FPGA D5005.
- Ju duhet të përcaktoni një variabël mjedisi. Variabli i mjedisit varet nga versioni Intel Acceleration Stack që po përdorni:
- Për versionin aktual, vendosni variablin e mjedisit në $OPAE_PLATFORM_ROOT
- Duhet të instaloni bibliotekën Intel Threading Building Blocks (TBB) pasi drejtuesi DMA mbështetet në të.
- Ju gjithashtu duhet të konfiguroni dy faqe të mëdha 1 GB për të ekzekutuar sampaplikimi. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
Kryeni hapat e mëposhtëm për të shkarkuar bitstream-in e Funksionit të Përshpejtuesit DMA (AF), për të ndërtuar aplikacionin dhe drejtuesin dhe për të ekzekutuar modelin exampe:
- Ndrysho në dosjen e aplikacionit DMA dhe drejtuesit: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Ndërtoni drejtuesin dhe aplikacionin: bëni
- Shkarkoni bitstream-in DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Ekzekutoni aplikacionin pritës për të shkruar 100 MB në pjesë 1 MB nga memoria e hostit në memorien e pajisjes FPGA dhe lexoni përsëri: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Informacione të Përafërta
Intel Acceleration Stack Udhëzues për fillimin e shpejtë për Intel FPGA Programmable Acceleration Card D5005 Intel Corporation. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Përpilimi i DMA AFU Example
Për të gjeneruar një mjedis të ndërtimit të sintezës për të përpiluar një AF, përdorni komandën afu_synth_setup si më poshtë:
- Ndrysho në DMA AFU sampdrejtoria: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Gjeneroni direktorinë e ndërtimit të dizajnit: afu_synth_setup –burimi hw/rtl/filelist.txt build_synth
- Nga direktoria e ndërtimit të sintezës së krijuar nga afu_synth_setup, futni komandat e mëposhtme nga një dritare terminali për të gjeneruar një AF për platformën e harduerit të synuar: cd build_synth run.sh Skripti i gjenerimit të run.sh AF krijon imazhin AF me të njëjtën bazë fileemri si konfigurimi i platformës së AFU-së file (.json) me një prapashtesë .gbs në vendndodhjen:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Simulimi i AFU Example
Intel rekomandon që t'i referoheni Udhëzuesit të Fillimit të Shpejtë të Mjedisit të Simulimit të Njësisë Funksionale të Përshpejtuesit Intel (AFU) për Intel FPGA PAC tuaj për t'u njohur me simulimin e një ish të ngjashëmamples dhe për të konfiguruar mjedisin tuaj. Përpara se të vazhdoni me hapat e mëposhtëm, verifikoni që ndryshorja e mjedisit OPAE_PLATFORM_ROOT është vendosur në drejtorinë e instalimit të OPAE SDK. Përfundoni hapat e mëposhtëm për të konfiguruar simulatorin e harduerit për DMA AFU:
- Ndrysho në DMA AFU sampdrejtoria: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Krijoni një mjedis ASE në një direktori të re dhe konfiguroni atë për të simuluar një AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Ndrysho në drejtorinë e ndërtimit të ASE: cd build_ase_dir
- Ndërtoni drejtuesin dhe aplikacionin: bëni
- Bëni simulim: bëni sim
Sample dalje nga simulatori i harduerit:
[SIM] ** KUJDES : PARA se të ekzekutoni aplikacionin e softuerit ** [SIM] Vendos env(ASE_WORKDIR) në terminalin ku do të ekzekutohet aplikacioni (kopjo-dhe-ngjis) => [SIM] $SHELL | Run:[SIM] ———+————————————————— [SIM] bash/zsh | eksportoni 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] Për çdo $SHELL tjetër, konsultohuni me administratorin tuaj Linux [SIM] [SIM] Gati për simulim… [SIM] Shtypni CTRL-C për të mbyllur simulatorin…Përfundoni hapat e mëposhtëm për të përpiluar dhe ekzekutuar softuerin DMA AFU në mjedisin e simulimit:
- Hapni një dritare të re terminali.
- Ndrysho drejtorinë në: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Simulimi i AFU Example
- Kopjoni vargun e konfigurimit të mjedisit (zgjidhni vargun e përshtatshëm për guaskën tuaj) nga hapat e mësipërm në simulimin e harduerit në dritaren e terminalit. Shihni rreshtat e mëposhtëm në sample dalje nga simulatori i harduerit. [SIM] bash/zsh | eksportoni 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
- Përpiloni softuerin: $ bëni USE_ASE=1
- Ekzekutoni aplikacionin pritës për të shkruar 4 KB në pjesë 1 KB nga memoria pritës përsëri në memorien e pajisjes FPGA në modalitetin loopback: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Informacione të Përafërta
Udhëzues përdorimi i fillimit të shpejtë të mjedisit të simulimit të njësisë funksionale të përshpejtuesit Intel (AFU)
Optimizimi për performancën e përmirësuar të DMA
Zbatimi i optimizimit NUMA (qasje jo-uniforme e memories) në fpga_dma_test.cpp lejon procesorin të aksesojë memorien e tij lokale më shpejt se sa të aksesojë memorien jo lokale (memoria lokale në një procesor tjetër). Një konfigurim tipik NUMA tregohet në diagramin më poshtë. Qasja lokale përfaqëson hyrjen nga një bërthamë në memorie lokale në të njëjtën bërthamë. Qasja në distancë ilustron rrugën e ndjekur kur një bërthamë në Nyjen 0 akseson memorien që ndodhet në memorien lokale të Nyjes 1.
Konfigurimi tipik NUMA
Përdorni kodin e mëposhtëm për të zbatuar optimizimin NUMA në aplikacionin tuaj të testimit:
// Vendos afinitetin e duhur nëse kërkohet nëse (cpu_affinity || memorie_affinity) {domon i panënshkruar = 0, autobus = 0, dev = 0, funksion = 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); // Gjeni pajisjen nga topologjia hwloc_topology_t; hwloc_topology_init(&topologji); hwloc_topology_set_flags (topologji, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime. *Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Optimizimi për performancën e përmirësuar të DMA
hwloc_topology_load(topologji); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologji, dom, autobus, dev, funksion); hwloc_obj_t obj2 = hwloc_get_non_io_paraardhës_obj(topologji, 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 është %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf ("NodeSet është %s \ n", str); #endif nëse (memorja_affinity) {#if hwloc_api_version> 0x00020000 retval = hwloc_set_membind (topologji, obj2-> nodeset, hwloc_mebind_thread, hwloc_membind_migrate | hwloC_MEMBIneTetete) #else retval =hwloc_set_membind_nodeset(topologjia, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO (retval, out_destroy_tok, "hwloc_set_membind"); } if (afiniteti_cpu) { retval = hwloc_set_cpubind(topologjia, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO (retval, out_destroy_tok, "hwloc_set_cpubind"); } }
Udhëzuesi i përdorimit të njësisë funksionale të përshpejtuesit DMA Arkivat
Versioni Intel Acceleration Stack | Udhëzuesi i përdoruesit (PDF) |
2.0 | Udhëzuesi i përdorimit të Njësisë Funksionale të Përshpejtuesit DMA (AFU). |
Udhëzuesi i përdorimit të Historisë së Rishikimit të Dokumentit për Njësinë Funksionale të Përshpejtuesit DMA
Versioni i dokumentit |
Intel Acceleration Versioni i Stackit |
Ndryshimet |
2020.08.03 |
2.0.1 (mbështetur me Intel
Quartus® Prime Pro Edition Edition 19.2) |
Korrigjuar imazhin AF file emri në seksion Përpilimi i DMA AFU Example. |
2020.04.17 |
2.0.1 (mbështetur me Intel
Quartus Prime Pro Edition Edition 19.2) |
Korrigjuar një deklaratë në Audienca e synuar seksioni. |
2020.02.20 |
2.0.1 (mbështetur me Intel
Quartus Prime Pro Edition Edition 19.2) |
E rregulluar gabimin e shtypit. |
2019.11.04 |
2.0.1 (mbështetur me Intel Quartus Prime Pro Edition Edition 19.2) |
• Zëvendësoi fpgaconf me fpgasupdate kur konfiguron FPGA me AFU-në e parandërtuar në seksion Drejtimi i DMA AFU Example.
• U shtua nëntitull Karta e përshpejtimit e programueshme e Intel FPGA D5005 tek titulli i dokumentit. • U shtua ndryshorja e mjedisit $OPAE_PLATFORM_ROOT. • Seksioni i modifikuar Modeli i programimit të softuerit për modifikime të vogla. • U shtua seksion i ri Përpilimi i DMA AFU Example. • Seksioni i modifikuar Optimizimi për performancën e përmirësuar të DMA për modifikime të vogla. |
2019.08.05 |
2.0 (mbështetur me Intel
Quartus Prime Pro Edition 18.1.2) |
Lëshimi fillestar. |
Korporata Intel. Të gjitha të drejtat e rezervuara. Intel, logoja e Intel dhe markat e tjera Intel janë marka tregtare të Intel Corporation ose filialeve të saj. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime.
- Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.
Dokumentet / Burimet
![]() |
Karta e përshpejtimit e programueshme e Intel FPGA D5005 [pdfUdhëzuesi i përdoruesit Karta e përshpejtimit e programueshme FPGA, D5005, Karta e përshpejtimit e programueshme FPGA D5005, Njësia funksionale e përshpejtuesit DMA |