„Intel FPGA“ programuojama pagreitinimo kortelė D5005
Apie šį dokumentą
Šiame dokumente aprašomas tiesioginės prieigos prie atminties (DMA) greitintuvo funkcinio bloko (AFU) įgyvendinimas ir kaip sukurti dizainą, kad jis veiktų naudojant aparatinę įrangą arba modeliuojant.
Numatyta auditorija
Numatyta auditorija apima aparatūros arba programinės įrangos kūrėjus, kuriems reikalinga greitintuvo funkcija (AF), kad būtų galima saugoti duomenis vietinėje atmintyje, prijungtoje prie Intel FPGA įrenginio.
konvencijos
Dokumentų konvencijos
konvencija | Aprašymas |
# | Prieš komandą, kuri nurodo, kad komanda turi būti įvesta kaip root. |
$ | Nurodo, kad komanda turi būti įvesta kaip vartotojas. |
Šis šriftas | Filevardai, komandos ir raktiniai žodžiai spausdinami šiuo šriftu. Šiuo šriftu spausdinamos ilgos komandų eilutės. Nors ilgos komandų eilutės gali pereiti į kitą eilutę, grąžinimas nėra komandos dalis; nespauskite enter. |
Nurodo, kad vietos rezervavimo tekstas, rodomas tarp kampinių skliaustų, turi būti pakeistas atitinkama reikšme. Neįveskite į kampinius skliaustus. |
Akronimai
Akronimai
Akronimai | Išsiplėtimas | Aprašymas |
AF | Akceleratoriaus funkcija | Sukompiliuotas aparatūros spartintuvo vaizdas, įdiegtas FPGA logikoje, kuris pagreitina programą. |
AFU | Greitintuvo funkcinis blokas | Aparatūros spartintuvas, įdiegtas FPGA logikoje, kuris iš procesoriaus iškrauna programos skaičiavimo operaciją, kad pagerintų našumą. |
API | Programų programavimo sąsaja | Paprogramių apibrėžimų, protokolų ir įrankių rinkinys, skirtas programinės įrangos programoms kurti. |
CCI-P | Pagrindinė talpyklos sąsaja | CCI-P yra standartinė sąsaja, kurią AFU naudoja bendravimui su pagrindiniu kompiuteriu. |
DFH | Įrenginio funkcijos antraštė | Sukuria susietą funkcijų antraščių sąrašą, kad būtų galima išplėsti funkcijų pridėjimo būdą. |
tęsėsi… |
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Akronimai | Išsiplėtimas | Aprašymas |
FIM | FPGA sąsajos tvarkyklė | FPGA aparatinė įranga su FPGA sąsajos bloku (FIU) ir išorinėmis atminties, tinklo ir tt sąsajomis.
Akceleratoriaus funkcija (AF) yra sąsaja su FIM veikimo metu. |
FŽP | FPGA sąsajos blokas | FIU yra platformos sąsajos sluoksnis, kuris veikia kaip tiltas tarp platformos sąsajų, pvz., PCIe*, UPI ir AFU sąsajų, tokių kaip CCI-P. |
MPF | Atminties savybių gamykla | MPF yra pagrindinis kūrimo blokas (BBB), kurį AFU gali naudoti teikdamas CCI-P srauto formavimo operacijas su FŽP. |
Pagreičio žodynas
Acceleration Stack, skirtas Intel® Xeon® CPU su FPGA Glossary
Terminas | Santrumpa | Aprašymas |
Intel® Acceleration Stack, skirtas Intel Xeon® CPU su FPGA | Pagreičio krūva | Programinės įrangos, programinės įrangos ir įrankių rinkinys, užtikrinantis našumui optimizuotą ryšį tarp Intel FPGA ir Intel Xeon procesoriaus. |
„Intel“ FPGA programuojama spartinimo kortelė | Intel FPGA PAC | PCIe FPGA greitintuvo kortelė.
Yra FPGA sąsajos tvarkyklė (FIM), kuri per PCIe magistralę susieta su Intel Xeon procesoriumi. |
- DMA greitintuvo funkcinio bloko vartotojo vadovas: „Intel FPGA“ programuojama spartinimo kortelė D5005
DMA AFU aprašymas
Įvadas
Tiesioginės atminties prieigos (DMA) AFU, pvzample parodo, kaip valdyti atminties perdavimą tarp pagrindinio procesoriaus ir FPGA. Galite integruoti DMA AFU į savo dizainą, kad perkeltumėte duomenis iš pagrindinės atminties į FPGA vietinę atmintį. DMA AFU sudaro šie submoduliai:
- Atminties savybių gamyklos (MPF) pagrindinis kūrimo blokas (BBB)
- Pagrindinės talpyklos sąsaja (CCI-P) su „Avalon®“ atmintimi susietu (Avalon-MM) adapteriu
- DMA testavimo sistema, kurioje yra DMA BBB
Šie submoduliai išsamiau aprašyti toliau esančioje DMA AFU aparatūros komponentų temoje.
Susijusi informacija
- DMA AFU aparatūros komponentai 6 puslapyje
- Avalon sąsajos specifikacijos
Daugiau informacijos apie Avalon-MM protokolą, įskaitant skaitymo ir rašymo operacijų laiko diagramas.
DMA AFU programinės įrangos paketas
„Intel Acceleration Stack“, skirtas „Intel Xeon“ procesoriui su FPGA paketu file (*.tar.gz), apima DMA AFU example. Šis buvęsample suteikia vartotojo erdvės tvarkyklę. Pagrindinė programa naudoja šią tvarkyklę taip, kad DMA perkelia duomenis iš pagrindinio kompiuterio į FPGA atmintį. Aparatinės įrangos dvejetainiai failai, šaltiniai ir vartotojo erdvės tvarkyklė yra pasiekiami šiame kataloge: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Prieš eksperimentuodami su DMA AFU, turite įdiegti Open Programmable Acceleration Engine (OPAE) programinės įrangos paketą. Diegimo instrukcijas rasite „Intel Acceleration Stack“ greitojo pradžios vadovo, skirto „Intel FPGA Programmable Acceleration Card D5005“, skyriuje „OPAE programinės įrangos paketo diegimas“. Šiame greitosios pradžios vadove taip pat pateikiama pagrindinė informacija apie atvirąjį programuojamą pagreitinimo variklį (OPAE) ir AFU konfigūravimą. Įdiegę Open Programmable Acceleration Engine (OPAE) programinės įrangos paketą, kaipample host programa ir DMA AFU vartotojo erdvės tvarkyklė pasiekiama šiame kataloge: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Norėdami paleisti sampNaudodami pagrindinę programą, fpga_dma_test savo Intel FPGA PAC D5005 aparatinėje įrangoje, žr. veiksmus, nurodytus skyriuje DMA AFU Ex paleidimasample. Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Susijusi informacija
- „Intel Acceleration Stack“ greitas pradžios vadovas, skirtas „Intel FPGA“ programuojamai pagreitinimo kortelei D5005
- OPAE programinės įrangos paketo diegimas
DMA AFU aparatūros komponentai
DMA AFU sąsaja su FPGA sąsajos bloku (FIU) ir FPGA atmintimi. Išsamias FPGA atminties specifikacijas rasite FPGA sąsajos tvarkyklės duomenų lape, skirtame „Intel FPGA Programmable Acceleration Card D5005“. Šiuo metu turima aparatinė įranga diktuoja šią atminties konfigūraciją. Būsima aparatinė įranga gali palaikyti skirtingas atminties konfigūracijas. DMA AFU galite naudoti norėdami kopijuoti duomenis iš toliau nurodytų šaltinio ir paskirties vietų:
- Nuo pagrindinio kompiuterio iki įrenginio FPGA atmintis
- Įrenginio FPGA atmintis pagrindiniam kompiuteriui
„Platform Designer“ sistema, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys įgyvendina didžiąją dalį DMA
- AFU. Dalį DMA AFU, įdiegtos Platform Designer sistemoje, galite rasti toliau
vieta: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ DMA BBB galite rasti šioje vietoje:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA greitintuvo funkcinio bloko vartotojo vadovas: „Intel FPGA“ programuojama spartinimo kortelė D5005
DMA AFU aparatūros bloko schema
DMA AFU apima šiuos vidinius modulius, skirtus sąsajai su FPGA sąsajos bloku (FIU):
- Atminties susiejimo IO (MMIO) dekoderio logika: aptinka MMIO skaitymo ir rašymo operacijas ir atskiria jas nuo CCI-P RX kanalo 0, iš kurio jie ateina. Tai užtikrina, kad MMIO srautas niekada nepasiektų MPF BBB ir būtų aptarnaujamas nepriklausomu MMIO komandų kanalu.
- Atminties ypatybių gamykla (MPF): šis modulis užtikrina, kad nuskaityti atsakymai iš DMA grįžtų tokia tvarka, kokia jie buvo pateikti. „Avalon-MM“ protokolas reikalauja, kad skaitymo atsakymai būtų grąžinti teisinga tvarka.
- CCI-P į Avalon-MM adapterį: šis modulis verčia tarp CCI-P ir Avalon-MM operacijų taip:
- CCI-P į Avalon-MMIO adapterį: šis kelias paverčia CCI-P MMIO operacijas į Avalon-MM operacijas.
- „Avalon“ į CCI-P pagrindinio kompiuterio adapterį: šie keliai sukuria atskirus tik skaitymo ir tik rašymo kelius, kad DMA galėtų pasiekti pagrindinio kompiuterio atmintį.
- DMA testavimo sistema: šis modulis tarnauja kaip DMA BBB apvalkalas, kad DMA pagrindinius elementus atskleistų likusios AFU logikos dalys. Tai suteikia sąsają tarp DMA BBB ir CCI-P į Avalon adapterį. Ji taip pat suteikia sąsają tarp DMA BBB ir vietinių FPGA SDRAM bankų.
Susijusi informacija
FPGA sąsajos tvarkyklės duomenų lapas, skirtas „Intel FPGA“ programuojamai pagreitinimo kortelei D5005
DMA testavimo sistema
DMA testavimo sistema sujungia DMA BBB su likusia FPGA konstrukcija, įskaitant CCI-P pritaikymą ir vietinę FPGA atmintį.
DMA testavimo sistemos bloko schema
Šioje blokinėje diagramoje pavaizduoti DMA testavimo sistemos vidiniai elementai. DMA testavimo sistema parodyta kaip monolitinis blokas 1 paveiksle 7 puslapyje.
DMA testavimo sistema apima šiuos vidinius modulius:
- Tolimojo pasiekiamumo tiltas / dujotiekio tiltas: dujotiekio tiltas su reguliuojamu delsos laiku, skirtas valdyti topologiją ir pagerinti Fmax konstrukciją.
- DMA AFU įrenginio funkcijos antraštė (DFH): tai yra DMA AFU DFH. Šis DFH nurodo kitą DFH, esantį 0x100 poslinkyje (DMA BBB DFH).
- Nulinis DFH: Šis komponentas užbaigia DFH susietų sąrašą. Jei prie dizaino pridėsite daugiau DMA BBB, įsitikinkite, kad nulinis DFH bazinis adresas yra DFH susietų sąrašo pabaigoje.
- MA pagrindinis kūrimo blokas (BBB): Šis blokas perkelia duomenis iš pagrindinio kompiuterio į vietinę FPGA atmintį. Jis taip pat pasiekia pagrindinio kompiuterio atmintį, kad pasiektų deskriptorių grandines.
DMA BBB
DMA BBB posistemis perduoda duomenis iš šaltinio į paskirties adresus naudodamas Avalon-MM operacijas. DMA tvarkyklė valdo DMA BBB, pasiekdama įvairių sistemos komponentų valdymo ir būsenos registrą. DMA tvarkyklė taip pat valdo DMA BBB naudodama bendrą atmintį perdavimo deskriptoriams perduoti. DMA BBB pasiekia duomenis FPGA atmintyje, kai poslinkis yra 0x0. DMA BBB pasiekia duomenis ir deskriptorius pagrindinio kompiuterio atmintyje, kai poslinkis yra 0x1_0000_0000_0000.
DMA BBB platformos dizainerio blokinė diagrama
Ši blokinė schema neapima kai kurių vidinių vamzdynų tilto IP branduolių.
DMA greitintuvo funkcinio bloko vartotojo vadovas: „Intel FPGA“ programuojama spartinimo kortelė D5005
DMA AFU aprašymas
DMA BBB Platform Designer komponentai įgyvendina šias funkcijas:
- Tolimojo nuotolio tiltas / dujotiekio tiltas: Pridedamas dujotiekio tiltas su reguliuojamu delsos laiku, kad būtų galima valdyti topologiją ir pagerinti konstrukciją Fmax.
- MA BBB DFH: Tai DMA BBB įrenginio funkcijos antraštė. Šis DFH nurodo kitą DFH, esantį poslinkyje 0x100 (Null DFH).
- Aprašymo sąsaja: Atsakingas už deskriptorių gavimą ir jų perdavimą dispečeriui. Kai DMA perdavimas baigiamas, priekinė dalis gauna būsenos formavimą iš dispečerio ir perrašo deskriptorių pagrindinio kompiuterio atmintyje.
- Dispečeris: Šis blokas suplanuoja DMA perdavimo užklausas į skaitymo ir rašymo pagrindinį įrenginį.
- Skaityti meistras: Šis blokas yra atsakingas už duomenų nuskaitymą iš pagrindinio kompiuterio arba vietinės FPGA atminties ir jų siuntimą kaip srautinio perdavimo duomenis į Write Master.
- Rašyti meistras: Šis blokas yra atsakingas už srautinio perdavimo duomenų gavimą iš „Read Master“ ir turinio įrašymą į pagrindinio kompiuterio arba vietinę FPGA atmintį.
Registruokite žemėlapių ir adresų erdves
DMA AFU palaiko dvi atmintis views: DMA view ir šeimininkas view. DMA view palaiko 49 bitų adresų erdvę. Apatinė DMA pusė view žemėlapiai į vietinę FPGA atmintį. Viršutinė DMA pusė view žemėlapiai prieglobos atminčiai. Šeimininkas view apima visus registrus, pasiekiamus per MMIO prieigas, pvz., DFH lenteles, ir įvairių IP branduolių, naudojamų DMA AFU, valdymo / būsenos registrus. DMA BBB ir AFU MMIO registrai palaiko 32 ir 64 bitų prieigą. DMA AFU nepalaiko 512 bitų MMIO prieigos. Prieiga prie dispečerinių registrų DMA BBB viduje turi būti 32 bitų (Descriptor frontend įgyvendina 64 bitų registrus).
DMA AFU registro žemėlapis
DMA AFU registro žemėlapyje pateikiami absoliutūs visų įrenginio vietų adresai. Šie registrai yra pagrindiniame kompiuteryje view nes tik priegloba gali juos pasiekti.
DMA AFU atminties žemėlapis
Baitų adresų poslinkiai | Vardas | Apimtis baitais | Aprašymas |
0x0 | DMA AFU DFH | 0x40 | DMA AFU įrenginio funkcijos antraštė. ID_L nustatytas kaip 0x9081f88b8f655caa, o ID_H – 0x331db30c988541ea. DMA AFU DFH buvo sukonfigūruotas taip, kad būtų rodomas poslinkis 0x100, kad būtų galima rasti kitą DFH (DMA BBB DFH). Negalite keisti pagrindinio DMA AFU DFH adreso, nes jis turi būti adresu 0x0, kaip apibrėžta CCIP specifikacijoje. |
0x100 | DMA BBB | 0x100 | Nurodo DMA BBB valdymo ir būsenos registro sąsają. Daugiau informacijos rasite DMA BBB registro žemėlapyje. DMA BBB, esant 0 poslinkiui, DMA BBB apima savo DFH. Šis DFH nustatytas taip, kad surastų kitą DFH, esant poslinkiui 0x100 (NULL DFH). Jei pridėsite daugiau DMA BBB, padarykite juos 0x100 atstumu ir įsitikinkite, kad NULL DFH po paskutinio DMA 0x100. |
0x200 | NULL DFH | 0x40 | Nutraukiamas DFH susietųjų sąrašas. ID_L nustatytas kaip 0x90fe6aab12a0132f, o ID_H – 0xda1182b1b3444e23. NULL DFH buvo nustatytas taip, kad būtų paskutinis DFH aparatinėje įrangoje. Dėl šios priežasties NULL DFH yra adresu 0x200. Jei prie sistemos pridėsite papildomų DMA BBB, turite atitinkamai padidinti NULL DFH bazinį adresą, kad jis liktų aukščiausiu adresu. DMA tvarkyklė ir bandomoji programa nenaudoja šios aparatinės įrangos. |
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Registruokite žemėlapių ir adresų erdves
DMA BBB atminties žemėlapis
Šie baitų adresai yra santykiniai poslinkiai nuo DMA BBB bazinio adreso DMA AFU sistemoje (0x100).
Baitų adresų poslinkiai | Vardas | Apimtis baitais | Aprašymas |
0x0 | DMA BBB DFH | 0x40 | DMA AFU įrenginio funkcijos antraštė. ID_L nustatytas kaip 0xa9149a35bace01ea, o ID_H – 0xef82def7f6ec40fc. DMA BBB DFH buvo sukonfigūruotas taip, kad būtų nurodytas 0x100 kitam DFH poslinkiui. Šis kitas poslinkis gali būti kitas DMA BBB, kitas DFH (neįtrauktas į šį dizainą) arba NULL DFH. |
0x40 | Dispečeris | 0x40 | Dispečerio valdymo prievadas. DMA tvarkyklė naudoja šią vietą DMA valdymui arba jo būsenos užklausai. |
0x80 | Aprašymas Frontend | 0x40 | Deskriptoriaus sąsaja yra pasirinktinis komponentas, kuris nuskaito deskriptorius iš pagrindinio kompiuterio atminties ir perrašo deskriptorių, kai baigiamas DMA perkėlimas. Vairuotojas nurodo priekinei sistemai, kur pagrindinis deskriptorius yra pagrindinio kompiuterio atmintyje, o tada priekinės dalies aparatinė įranga susisiekia su tvarkykle pirmiausia naudodama pagrindinio kompiuterio atmintyje saugomus deskriptorius. |
DMA AFU adresų erdvė
Pagrindinis kompiuteris gali pasiekti registrus, išvardytus 4 lentelėje 12 puslapyje ir 5 lentelėje 13 puslapyje. DMA BBB posistemis turi prieigą prie visos 49 bitų adresų erdvės. Apatinė šios adresų erdvės pusė apima vietines FPGA atmintis. Viršutinė šios adresų erdvės dalis apima 48 bitų pagrindinio kompiuterio adreso atmintį. Toliau pateiktame paveikslėlyje parodytas pagrindinis kompiuteris ir DMA views atminties.
DMA AFU ir priegloba Views atminties
Įrenginio funkcijų antraštės susietų sąrašas
DMA AFU dizainas, pvzample yra trys įrenginio funkcijų antraštės (DFH), kurios sudaro susietą sąrašą. Šis susietas sąrašas leidžia sampprograma, skirta identifikuoti DMA AFU, taip pat tvarkyklę DMA BBB identifikuoti. DFH sąrašo pabaigoje yra NULL DFH. Nulinio DFH įtraukimas į susieto sąrašo pabaigą leidžia į savo dizainą įtraukti daugiau DMA BBB. Jums tiesiog reikia perkelti NULL DFH į adresą po kitų BBB. Kiekvienas DMA BBB tikisi, kad kitas DFH bus 0x100 baitų atstumu nuo bazinio BBB adreso. Toliau pateiktame paveikslėlyje pavaizduotas susietas DMA AFU dizaino sąrašas, pvzample.
Registruokite žemėlapių ir adresų erdves
DMA AFU įrenginio funkcijų antraštės (DFH) grandinė
Programinės įrangos programavimo modelis
DMA AFU apima programinės įrangos tvarkyklę, kurią galite naudoti savo pagrindinėje programoje. Fpga_dma.cpp ir fpga_dma.h files, esančios šioje vietoje, įdiegia programinės įrangos tvarkyklę: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ši tvarkyklė palaiko šias funkcijas:
API | Aprašymas |
fpgaCountDMACchannels | Nuskaito įrenginio funkcijų grandinę, ar nėra DMA BBB, ir skaičiuoja visus galimus kanalus. |
fpgaDMAOpen | Atidaro DMA kanalo rankenėlę. |
fpgaDMACuždaryti | Uždaro DMA kanalo rankenėlę. |
fpgaDMATransferInit | Inicijuoja objektą, kuris reiškia DMA perdavimą. |
fpgaDMATransferReset | Iš naujo nustato DMA perdavimo atributo objekto numatytąsias reikšmes. |
fpgaDMATransferDestroy | Sunaikina DMA perdavimo atributo objektą. |
fpgaDMATransferSetSrc | Nustato perdavimo šaltinio adresą. Šis adresas turi būti išlygintas 64 baitais. |
fpgaDMATransferSetDst | Nustato perkėlimo paskirties adresą. Šis adresas turi būti išlygintas 64 baitais. |
fpgaDMATransferSetLen | Nustato perdavimo ilgį baitais. Perduodami ne paketus, turite nustatyti perdavimo ilgį, kad jis būtų 64 baitų kartotinis. Perduodant paketus tai nėra būtina. |
fpgaDMATransferSetTransferType | Nustato perdavimo tipą. Teisinės vertybės yra šios:
• HOST_MM_TO_FPGA_MM = TX (priegloba į AFU) • FPGA_MM_TO_HOST_MM = RX (AFU į prieglobą) |
fpgaDMATransferSetTransferCallback | Registruoja atgalinį skambutį, kad gautų pranešimą apie asinchroninio perdavimo užbaigimą. Jei nurodote atgalinį skambutį, fpgaDMATransfer grįžta iš karto (asinchroninis perkėlimas).
Jei nenurodysite atgalinio skambinimo, fpgaDMATransfer grįš po to, kai bus atliktas perkėlimas (sinchroninis / blokuojantis perkėlimas). |
fpgaDMATransferSetLast | Nurodo paskutinį perdavimą, kad DMA galėtų pradėti apdoroti iš anksto gautus pervedimus. Numatytoji reikšmė yra 64 perdavimai, kol DMA pradeda dirbti su perdavimais. |
fpgaDMATtransfer | Atlieka DMA perkėlimą. |
Daugiau informacijos apie API, įvesties ir išvesties argumentus rasite antraštėje file yra $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Programinės įrangos programavimo modelis
Norėdami sužinoti daugiau apie programinės įrangos tvarkyklės naudojimo modelį, žr. README file esantis $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Veikia DMA AFU Example
Prieš pradėdami:
- Turėtumėte būti susipažinę su buvusiuojuamp„Intel Acceleration Stack“ greitosios pradžios vadove, skirtame „Intel FPGA“ programuojamai pagreitinimo kortelei D5005.
- Turite apibrėžti aplinkos kintamąjį. Aplinkos kintamasis priklauso nuo jūsų naudojamos „Intel Acceleration Stack“ versijos:
- Dabartinės versijos aplinkos kintamąjį nustatykite į $OPAE_PLATFORM_ROOT
- Turite įdiegti „Intel Threading Building Blocks“ (TBB) biblioteką, nes ja remiasi DMA tvarkyklė.
- Taip pat turite nustatyti du didžiulius 1 GB puslapius, kad paleistumėte sample paraiška. $ sudo sh -c „echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages“
Atlikite šiuos veiksmus, kad atsisiųstumėte DMA greitintuvo funkcijos (AF) bitų srautą, sukurtumėte programą ir tvarkyklę bei paleistumėte dizainą, pvz.ampLe:
- Pakeiskite į DMA programos ir tvarkyklės katalogą: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Sukurkite tvarkyklę ir programą: make
- Atsisiųskite DMA AFU bitų srautą: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Vykdykite pagrindinę programą, kad įrašytumėte 100 MB 1 MB dalimis iš pagrindinio kompiuterio atminties į FPGA įrenginio atmintį ir nuskaitykite ją atgal: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Susijusi informacija
„Intel Acceleration Stack“ greitas pradžios vadovas, skirtas „Intel FPGA“ programuojamai pagreitinimo kortelei D5005 „Intel Corporation“. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Sudarant DMA AFU Example
Norėdami sukurti sintezės kūrimo aplinką AF kompiliavimui, naudokite komandą afu_synth_setup taip:
- Pakeiskite į DMA AFU sample katalogas: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Sukurkite dizaino kūrimo katalogą: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Iš afu_synth_setup sugeneruoto sintezės kūrimo katalogo įveskite šias komandas iš terminalo lango, kad sugeneruotumėte tikslinės aparatinės įrangos platformos AF: cd build_synth run.sh Run.sh AF generavimo scenarijus sukuria AF vaizdą su ta pačia baze. filepavadinimas kaip AFU platformos konfigūracija file (.json) su .gbs priesaga toje vietoje: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Imituojant AFU Example
„Intel“ rekomenduoja peržiūrėti „Intel Accelerator Functional Unit“ (AFU) modeliavimo aplinkos (ASE) greitosios pradžios vadovą, kad sužinotumėte, kaip imituoti panašius FPGA PAC.amples ir sukurti savo aplinką. Prieš atlikdami toliau nurodytus veiksmus, patikrinkite, ar aplinkos kintamasis OPAE_PLATFORM_ROOT nustatytas į OPAE SDK diegimo katalogą. Norėdami nustatyti DMA AFU aparatūros simuliatorių, atlikite šiuos veiksmus:
- Pakeiskite į DMA AFU sample katalogas: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Sukurkite ASE aplinką naujame kataloge ir sukonfigūruokite ją AFU modeliavimui: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Pakeiskite į ASE kūrimo katalogą: cd build_ase_dir
- Sukurkite tvarkyklę ir programą: make
- Padaryti modeliavimą: padaryti sim
Sampaparatinės įrangos simuliatoriaus išvestis:
[SIM] ** DĖMESIO: PRIEŠ paleisdami programinę įrangą ** [SIM] Terminale, kuriame bus paleista programa, nustatykite env(ASE_WORKDIR) (copy-and-paste) => [SIM] $SHELL | Vykdyti:[SIM] ———+—————————————————— [SIM] bash/zsh | eksportuoti 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] Dėl bet kokio kito $SHELL kreipkitės į „Linux“ administratorių [SIM] [SIM] Paruošta modeliavimui… [SIM] Paspauskite CTRL-C, kad uždarytumėte simuliatorių...Atlikite šiuos veiksmus, kad sukurtumėte ir paleistumėte DMA AFU programinę įrangą modeliavimo aplinkoje:
- Atidarykite naują terminalo langą.
- Pakeiskite katalogą į: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Imituojant AFU Example
- Nukopijuokite aplinkos sąrankos eilutę (pasirinkite savo apvalkalui tinkamą eilutę) iš anksčiau atliktų aparatūros modeliavimo veiksmų į terminalo langą. Žr. šias eilutes sample išvestis iš aparatūros simuliatoriaus. [SIM] bash/zsh | eksportuoti 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
- Sukompiliuokite programinę įrangą: $ make USE_ASE=1
- Vykdykite pagrindinę programą, kad įrašytumėte 4 KB 1 KB dalimis iš pagrindinio kompiuterio atminties į FPGA įrenginio atmintį atgalinio ryšio režimu: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Susijusi informacija
„Intel Accelerator Functional Unit“ (AFU) modeliavimo aplinkos (ASE) greitos pradžios vartotojo vadovas
Optimizavimas siekiant pagerinti DMA našumą
NUMA (nevienodos prieigos prie atminties) optimizavimo įgyvendinimas fpga_dma_test.cpp leidžia procesoriui greičiau pasiekti savo vietinę atmintį nei nevietinė atmintis (vietinė atmintis kitam procesoriui). Tipinė NUMA konfigūracija parodyta toliau pateiktoje diagramoje. Vietinė prieiga reiškia prieigą iš šerdies į atmintį, vietinę toje pačioje branduolyje. Nuotolinė prieiga iliustruoja kelią, nueinamą, kai 0 mazgo branduolys pasiekia atmintį, kuri yra vietinėje 1 mazgo atmintyje.
Tipinė NUMA konfigūracija
Norėdami įdiegti NUMA optimizavimą savo bandomojoje programoje, naudokite šį kodą:
// Jei prašoma, nustatykite tinkamą giminingumą if (cpu_affinity || memory_affinity) {unsigned dom = 0, magistralė = 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_Properties"Offetropties" // Suraskite įrenginį iš topologijos hwloc_topology_t topologijos; hwloc_topology_init(&topologija); hwloc_topology_set_flags(topologija, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Optimizavimas siekiant pagerinti DMA našumą
hwloc_topology_load(topologija); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologija, dom, magistralė, dev, funkcija); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologija, 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 yra %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf("NODESET yra %s\n", str);#endif if (atminties_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologija, obj2->mazgų rinkinys,HWLOC_MEMBIND_THREAD, HWINDYBLOMBIND_THREAD, HWINDYBLOMEMBH #else retval =hwloc_set_membind_nodeset(topologija, obj2->mazgų rinkinys, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } if (cpu_affinity) { retval = hwloc_set_cpubind(topologija, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
DMA greitintuvo funkcinio bloko vartotojo vadovas Archyvas
Intel Acceleration Stack versija | Vartotojo vadovas (PDF) |
2.0 | DMA greitintuvo funkcinio bloko (AFU) vartotojo vadovas |
DMA greitintuvo funkcinio bloko vartotojo vadovo dokumento peržiūrų istorija
Dokumento versija |
„Intel“ pagreitis Stack versija |
Pakeitimai |
2020.08.03 |
2.0.1 (palaikomas su Intel
Quartus® Prime Pro Edition 19.2) |
Pataisytas AF vaizdas file pavadinimas skyriuje Sudarant DMA AFU Example. |
2020.04.17 |
2.0.1 (palaikomas su Intel
Quartus Prime Pro Edition 19.2) |
Pataisė pareiškimą Numatyta auditorija skyrių. |
2020.02.20 |
2.0.1 (palaikomas su Intel
Quartus Prime Pro Edition 19.2) |
Ištaisyta rašybos klaida. |
2019.11.04 |
2.0.1 (palaikomas su Intel Quartus Prime Pro Edition 19.2) |
• Fpgaconf pakeistas į fpgasupdate konfigūruojant FPGA su išankstiniu AFU skyriuje Paleidus DMA AFU Example.
• Pridėta paantraštė „Intel FPGA“ programuojama pagreitinimo kortelė D5005 į dokumento pavadinimą. • Pridėtas aplinkos kintamasis $OPAE_PLATFORM_ROOT. • Pakeistas skyrius Programinės įrangos programavimo modelis smulkiems pataisymams. • Pridėta nauja sekcija Sudarant DMA AFU Example. • Pakeistas skyrius Optimizavimas siekiant pagerinti DMA našumą smulkiems pataisymams. |
2019.08.05 |
2.0 (palaikomas su Intel
Quartus Prime Pro Edition 18.1.2) |
Pradinis išleidimas. |
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas ir kiti „Intel“ ženklai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas.
- Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Dokumentai / Ištekliai
![]() |
„Intel FPGA“ programuojama pagreitinimo kortelė D5005 [pdfVartotojo vadovas FPGA programuojama pagreičio kortelė, D5005, FPGA programuojama pagreičio kortelė D5005, DMA greitintuvo funkcinis blokas |