Intel logotipas

„Intel FPGA“ programuojama pagreitinimo kortelė D5005

Intel.-FPGA-Programmable-Acceleration-Card-D5005-produktas

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

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-1

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.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

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ų.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

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

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-3

Į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ė

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-4

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:

  1. Pakeiskite į DMA programos ir tvarkyklės katalogą: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Sukurkite tvarkyklę ir programą: make
  3. Atsisiųskite DMA AFU bitų srautą: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. 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:

  1. Pakeiskite į DMA AFU sample katalogas: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Sukurkite dizaino kūrimo katalogą: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. 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:

  1. Pakeiskite į DMA AFU sample katalogas: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Sukurkite ASE aplinką naujame kataloge ir sukonfigūruokite ją AFU modeliavimui: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Pakeiskite į ASE kūrimo katalogą: cd build_ase_dir
  4. Sukurkite tvarkyklę ir programą: make
  5. 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:

  1. Atidarykite naują terminalo langą.
  2. 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

  1. 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
  2. Sukompiliuokite programinę įrangą: $ make USE_ASE=1
  3. 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

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-5

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

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *