Ohjelmoitava Intel FPGA -kiihdytinkortti D5005
Tietoja tästä asiakirjasta
Tässä asiakirjassa kuvataan suoran muistin käytön (DMA) Accelerator Functional Unit (AFU) -toteutus ja kuinka rakenne rakennetaan toimimaan laitteistolla tai simulaatiolla.
Tarkoitettu yleisö
Kohdeyleisö koostuu laitteisto- tai ohjelmistokehittäjistä, jotka tarvitsevat Accelerator Function (AF) -toiminnon puskuroidakseen tietoja paikallisesti Intel FPGA -laitteeseen yhdistettyyn muistiin.
yleissopimukset
Asiakirjasopimukset
yleissopimus | Kuvaus |
# | Edeltää komentoa, joka osoittaa, että komento on syötettävä pääkäyttäjänä. |
$ | Osoittaa, että komento on syötettävä käyttäjänä. |
Tämä fontti | Filenimet, komennot ja avainsanat tulostetaan tällä fontilla. Pitkät komentorivit tulostetaan tällä fontilla. Vaikka pitkät komentorivit voivat rivittyä seuraavalle riville, paluu ei ole osa komentoa; älä paina enteriä. |
Osoittaa, että kulmasulkujen välissä näkyvä paikkamerkkiteksti on korvattava sopivalla arvolla. Älä mene kulmasuluihin. |
Lyhenteet
Lyhenteet
Lyhenteet | Laajentaminen | Kuvaus |
AF | Kiihdytintoiminto | Käännetty Hardware Accelerator -kuva, joka on toteutettu FPGA-logiikassa, joka kiihdyttää sovellusta. |
AFU | Kiihdytin toiminnallinen yksikkö | FPGA-logiikassa toteutettu laitteistokiihdytin, joka purkaa sovelluksen laskennallisen toiminnon suorittimesta suorituskyvyn parantamiseksi. |
API | Sovellusohjelmointiliittymä | Joukko aliohjelmien määritelmiä, protokollia ja työkaluja ohjelmistosovellusten rakentamiseen. |
CCI-P | Ydinvälimuistin käyttöliittymä | CCI-P on standardiliitäntä, jota AFU:t käyttävät kommunikoidakseen isännän kanssa. |
DFH | Laitteen ominaisuusotsikko | Luo linkitetyn luettelon ominaisuusotsikoista tarjotakseen laajennettavan tavan lisätä ominaisuuksia. |
jatkui… |
Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, paitsi jos Intel on nimenomaisesti kirjallisesti hyväksynyt. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Lyhenteet | Laajentaminen | Kuvaus |
FIM | FPGA Interface Manager | FPGA-laitteisto, joka sisältää FPGA-liitäntäyksikön (FIU) ja ulkoiset liitännät muistiin, verkkokäyttöön jne.
Kiihdytystoiminto (AF) on yhteydessä FIM:iin ajon aikana. |
FIU | FPGA-liitäntäyksikkö | FIU on alustan rajapintakerros, joka toimii siltana alustaliitäntöjen, kuten PCIe*, UPI ja AFU-puolen liitäntöjen, kuten CCI-P, välillä. |
MPF | Muistin ominaisuuksien tehdas | MPF on BBB (Basic Building Block), jota AFU:t voivat käyttää CCI-P-liikenteen muokkaustoimintojen tarjoamiseen rahanpesun selvittelykeskuksen kanssa tapahtuville tapahtumille. |
Kiihtyvyyssanasto
Acceleration Stack Intel® Xeon® -suorittimelle ja FPGA-sanasto
Termi | Lyhenne | Kuvaus |
Intel® Acceleration Stack Intel Xeon® -suorittimelle, jossa on FPGA | Kiihtyvyyspino | Kokoelma ohjelmistoja, laiteohjelmistoja ja työkaluja, jotka tarjoavat suorituskyvylle optimoidun yhteyden Intel FPGA:n ja Intel Xeon -prosessorin välillä. |
Ohjelmoitava Intel FPGA -kiihdytyskortti | Intel FPGA PAC | PCIe FPGA -kiihdytinkortti.
Sisältää FPGA Interface Managerin (FIM), joka muodostaa pariliitoksen Intel Xeon -prosessorin kanssa PCIe-väylän kautta. |
- DMA Accelerator Functional Unit -käyttöopas: Ohjelmoitava Intel FPGA -kiihdytyskortti D5005
DMA AFU Kuvaus
Johdanto
Direct Memory Access (DMA) AFU example näyttää kuinka hallita muistin siirtoja isäntäprosessorin ja FPGA:n välillä. Voit integroida DMA AFU:n suunnitelmaasi siirtääksesi tietoja isäntämuistin ja FPGA-paikallisen muistin välillä. DMA AFU sisältää seuraavat alimoduulit:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) Avalon® Memory Mapped (Avalon-MM) -sovittimeen
- DMA-testijärjestelmä, joka sisältää DMA BBB:n
Nämä alimoduulit kuvataan yksityiskohtaisemmin alla DMA AFU -laitteistokomponentit-aiheessa.
Aiheeseen liittyvät tiedot
- DMA AFU -laitteistokomponentit sivulla 6
- Avalon-liittymän tekniset tiedot
Lisätietoja Avalon-MM-protokollasta, mukaan lukien luku- ja kirjoitustapahtumien ajoituskaaviot.
DMA AFU -ohjelmistopaketti
Intel Acceleration Stack Intel Xeon -suorittimelle FPGA-paketilla file (*.tar.gz), sisältää DMA AFU example. Tämä example tarjoaa käyttäjätilaohjaimen. Isäntäsovellus käyttää tätä ohjainta siten, että DMA siirtää tietoja isäntä- ja FPGA-muistin välillä. Laitteiston binaarit, lähteet ja käyttäjätilan ohjain ovat saatavilla seuraavassa hakemistossa: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Ennen kuin kokeilet DMA AFU:ta, sinun on asennettava Open Programmable Acceleration Engine (OPAE) -ohjelmistopaketti. Katso asennusohjeet kohdasta OPAE-ohjelmistopaketin asentaminen Intel Acceleration Stack -pika-aloitusoppaasta Intel FPGA Programmable Acceleration Card D5005. Tämä pika-aloitusopas sisältää myös perustiedot Open Programmable Acceleration Enginestä (OPAE) ja AFU:n määrittämisestä. Kun olet asentanut Open Programmable Acceleration Engine (OPAE) -ohjelmistopaketin, asampisäntäsovellus ja DMA AFU -käyttäjätilan ohjain ovat saatavilla seuraavassa hakemistossa: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Juoksemaan sampisäntäsovellus, fpga_dma_test Intel FPGA PAC D5005 -laitteistossasi, katso vaiheet kohdasta DMA AFU Ex:n suorittaminenample. Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Aiheeseen liittyvät tiedot
- Intel Acceleration Stack -pikaopas Intel FPGA -ohjelmoitavalle kiihdytyskortille D5005
- OPAE-ohjelmistopaketin asentaminen
DMA AFU -laitteistokomponentit
DMA AFU on liitettynä FPGA-liitäntäyksikköön (FIU) ja FPGA-muistiin. Katso FPGA-muistin yksityiskohtaiset tiedot Intel FPGA Programmable Acceleration Card D5005:n FPGA Interface Manager -tietolomakkeesta. Tällä hetkellä käytettävissä oleva laitteisto sanelee tämän muistikokoonpanon. Tuleva laitteisto saattaa tukea erilaisia muistikokoonpanoja. Voit käyttää DMA AFU:ta tietojen kopioimiseen seuraavien lähde- ja kohdesijaintien välillä:
- Isännästä laitteelle FPGA-muisti
- Laitteen FPGA-muisti isäntään
Platform Designer -järjestelmä, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys toteuttaa suurimman osan DMA:sta
- AFU. Osa Platform Designer -järjestelmässä toteutetusta DMA AFU:sta löytyy seuraavasta
sijainti: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Löydät DMA BBB:n seuraavasta sijainnista:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA Accelerator Functional Unit -käyttöopas: Ohjelmoitava Intel FPGA -kiihdytyskortti D5005
DMA AFU -laitteiston lohkokaavio
DMA AFU sisältää seuraavat sisäiset moduulit liittääkseen FPGA-liitäntäyksikköön (FIU):
- Muistikartoitettu IO (MMIO) -dekooderilogiikka: havaitsee MMIO-luku- ja kirjoitustapahtumat ja erottaa ne CCI-P RX-kanavasta 0, josta ne saapuvat. Tämä varmistaa, että MMIO-liikenne ei koskaan saavuta MPF BBB:tä ja että sitä palvelee riippumaton MMIO-komentokanava.
- Memory Properties Factory (MPF): Tämä moduuli varmistaa, että luetut vastaukset DMA:sta palaavat niiden antamisjärjestyksessä. Avalon-MM-protokolla vaatii lukuvastauksia palatakseen oikeaan järjestykseen.
- CCI-P - Avalon-MM-sovitin: Tämä moduuli kääntää CCI-P- ja Avalon-MM-tapahtumien välillä seuraavasti:
- CCI-P - Avalon-MMIO-sovitin: Tämä polku muuntaa CCI-P MMIO -tapahtumat Avalon-MM-tapahtumiksi.
- Avalon-CCI-P-isäntäsovitin: Nämä polut luovat erilliset vain luku- ja kirjoituspolut DMA:lle pääsyn isäntämuistiin.
- DMA-testijärjestelmä: Tämä moduuli toimii kääreenä DMA BBB:n ympärillä paljastaen DMA-isännät muulle AFU:n logiikalle. Se tarjoaa rajapinnan DMA BBB:n ja CCI-P to Avalon -sovittimen välille. Se tarjoaa myös rajapinnan DMA BBB:n ja paikallisten FPGA SDRAM -pankkien välillä.
Aiheeseen liittyvät tiedot
FPGA Interface Manager -tietolehti Intel FPGA -ohjelmoitavalle kiihdytyskortille D5005
DMA-testijärjestelmä
DMA-testijärjestelmä yhdistää DMA BBB:n muuhun FPGA-malliin, mukaan lukien CCI-P-sovitus ja paikallinen FPGA-muisti.
DMA-testijärjestelmän lohkokaavio
Tämä lohkokaavio näyttää DMA-testijärjestelmän sisäiset ominaisuudet. DMA-testijärjestelmä on esitetty monoliittisena lohkona kuvassa 1 sivulla 7.
DMA-testijärjestelmä sisältää seuraavat sisäiset moduulit:
- Far Reach Bridge/Pipeline Bridge: Putkilinjasilta, jossa on säädettävä latenssi, joka ohjaa topologiaa ja parantaa suunnittelua Fmax.
- DMA AFU Device Feature Header (DFH): Tämä on DMA AFU:n DFH. Tämä DFH osoittaa seuraavaan DFH:hen, joka sijaitsee offsetissa 0x100 (DMA BBB DFH).
- Nolla DFH: Tämä komponentti päättää DFH linkitettyjen listan. Jos lisäät suunnitteluun lisää DMA BBB:itä, varmista, että nolla-DFH-perusosoite sijaitsee DFH-linkitettyjen luettelon lopussa.
- MA Basic Building Block (BBB): Tämä lohko siirtää tietoja isäntäkoneen ja paikallisen FPGA-muistin välillä. Se käyttää myös isäntämuistia päästäkseen käsiksi kuvaajaketjuihin.
DMA BBB
DMA BBB -alijärjestelmä siirtää tiedot lähteestä kohdeosoitteisiin Avalon-MM-tapahtumien avulla. DMA-ohjain ohjaa DMA BBB:tä käyttämällä järjestelmän sisällä olevien eri komponenttien ohjaus- ja tilarekisteriä. DMA-ohjain ohjaa myös DMA BBB:tä käyttämällä jaettua muistia siirtokuvaustietojen välittämiseen. DMA BBB käyttää tietoja FPGA-muistissa offsetilla 0x0. DMA BBB käyttää tietoja ja kuvauksia isäntämuistissa offsetilla 0x1_0000_0000_0000.
DMA BBB Platform Designer -lohkokaavio
Tämä lohkokaavio ei sisällä joitakin sisäisiä Pipeline Bridge -IP-ytimiä.
DMA Accelerator Functional Unit -käyttöopas: Ohjelmoitava Intel FPGA -kiihdytyskortti D5005
DMA AFU Kuvaus
DMA BBB Platform Designerin komponentit toteuttavat seuraavat toiminnot:
- Far Reach Bridge/Pipeline Bridge: Mukana putkisilta säädettävällä latenssilla topologian ohjaamiseksi ja Fmax-suunnittelun parantamiseksi.
- MA BBB DFH: Tämä on DMA BBB:n laiteominaisuuden otsikko. Tämä DFH osoittaa seuraavaan DFH:hen, joka sijaitsee offsetissa 0x100 (nolla DFH).
- Kuvaajan käyttöliittymä: Vastaa kuvausten hakemisesta ja siirtämisestä lähettäjälle. Kun DMA-siirto on valmis, käyttöliittymä vastaanottaa tilanmuodostuksen Dispatcherilta ja korvaa kuvaajan isäntämuistissa.
- Lähettäjä: Tämä lohko ajoittaa DMA-siirtopyynnöt Read and Write Masterille.
- Lue mestari: Tämä lohko vastaa tietojen lukemisesta isäntä- tai paikallisesta FPGA-muistista ja sen lähettämisestä suoratoistodatana Write Masteriin.
- Kirjoita mestari: Tämä lohko vastaa suoratoistodatan vastaanottamisesta Read Master -laitteelta ja sisällön kirjoittamisesta isäntä- tai paikalliseen FPGA-muistiin.
Rekisteröi kartta- ja osoitetilat
DMA AFU tukee kahta muistia views: DMA view ja isäntä view. DMA view tukee 49-bittistä osoiteavaruutta. DMA:n alapuoli view kartoittaa paikalliseen FPGA-muistiin. DMA:n ylempi puolisko view kartat isäntämuistiin. Isäntä view sisältää kaikki rekisterit, joihin pääsee käsiksi MMIO-liittymien kautta, kuten DFH-taulukot, ja DMA AFU:n sisällä käytettyjen eri IP-ytimien ohjaus-/tilarekisterit. DMA BBB:n ja AFU:n MMIO-rekisterit tukevat 32- ja 64-bittistä pääsyä. DMA AFU ei tue 512-bittisiä MMIO-käyttöjä. Pääsyjen Dispatcher-rekistereihin DMA BBB:n sisällä on oltava 32 bittiä (Descriptor frontend toteuttaa 64-bittiset rekisterit).
DMA AFU rekisterikartta
DMA AFU -rekisterikartta tarjoaa kaikkien yksikön sisällä olevien sijaintien absoluuttiset osoitteet. Nämä rekisterit ovat isännässä view koska vain isäntä voi käyttää niitä.
DMA AFU -muistikartta
Byte Address Offsets | Nimi | Span tavuissa | Kuvaus |
0x0 | DMA AFU DFH | 0x40 | Laiteominaisuusotsikko DMA AFU:lle. ID_L on asetettu arvoon 0x9081f88b8f655caa ja ID_H on 0x331db30c988541ea. DMA AFU DFH on parametroitu osoittamaan siirtymään 0x100 seuraavan DFH:n (DMA BBB DFH) löytämiseksi. Et saa muuttaa DMA AFU DFH:n perusosoitetta, koska sen on sijaittava osoitteessa 0x0 CCIP-määrityksen mukaisesti. |
0x100 | DMA BBB | 0x100 | Määrittää DMA BBB -ohjaus- ja tilarekisteriliittymän. Voit katsoa lisätietoja DMA BBB -rekisterikartalta. DMA BBB:n sisällä offsetissa 0 DMA BBB sisältää oman DFH:n. Tämä DFH on asetettu etsimään seuraava DFH offsetista 0x100 (NULL DFH). Jos lisäät lisää DMA BBB:itä, aseta ne 0x100 välein ja varmista, että NULL DFH seuraa viimeistä DMA:ta 0x100:lla. |
0x200 | NULL DFH | 0x40 | Lopettaa DFH:n linkitettyjen luettelon. ID_L on 0x90fe6aab12a0132f ja ID_H on 0xda1182b1b3444e23. NULL DFH on parametroitu viimeiseksi DFH:ksi laitteistossa. Tästä syystä NULL DFH sijaitsee osoitteessa 0x200. Jos lisäät järjestelmään lisää DMA BBB:itä, sinun on suurennettava NULL DFH -perusosoitetta vastaavasti, jotta se pysyy korkeimmassa osoitteessa. DMA-ohjain ja testisovellus eivät käytä tätä laitteistoa. |
Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, paitsi jos Intel on nimenomaisesti kirjallisesti hyväksynyt. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Rekisteröi kartta- ja osoitetilat
DMA BBB -muistikartta
Seuraavat tavuosoitteet ovat suhteellisia siirtymiä DMA BBB -perusosoitteesta DMA AFU -järjestelmässä (0x100).
Byte Address Offsets | Nimi | Span tavuissa | Kuvaus |
0x0 | DMA BBB DFH | 0x40 | Laiteominaisuusotsikko DMA AFU:lle. ID_L on 0xa9149a35bace01ea ja ID_H on 0xef82def7f6ec40fc. DMA BBB DFH on parametroitu osoittamaan 0x100 seuraavaa DFH-offsetia varten. Tämä seuraava siirtymä voi olla toinen DMA BBB, toinen DFH (ei sisälly tähän malliin) tai NULL DFH. |
0x40 | Lähettäjä | 0x40 | Ohjausportti lähettäjälle. DMA-ohjain käyttää tätä sijaintia DMA:n ohjaamiseen tai sen tilan kyselyyn. |
0x80 | Kuvaaja Frontend | 0x40 | Descriptor frontend on mukautettu komponentti, joka lukee kuvaukset isäntämuistista ja korvaa kuvaajan, kun DMA-siirto on valmis. Ajuri opastaa käyttöliittymää, missä ensimmäinen kuvaaja sijaitsee isäntämuistissa, ja sitten käyttöliittymän laitteisto kommunikoi ohjaimen kanssa ensisijaisesti isäntämuistiin tallennettujen kuvaajien kautta. |
DMA AFU -osoiteavaruus
Isäntä voi käyttää rekistereitä, jotka on lueteltu taulukossa 4 sivulla 12 ja taulukossa 5 sivulla 13. DMA BBB -alijärjestelmällä on pääsy koko 49-bittiseen osoiteavaruuteen. Tämän osoiteavaruuden alapuoli sisältää paikalliset FPGA-muistit. Tämän osoiteavaruuden yläpuoli sisältää 48-bittisen isäntäosoitemuistin. Seuraavassa kuvassa näkyy isäntä ja DMA views muistia.
DMA AFU ja isäntä Views muistista
Laitteen ominaisuusotsikon linkitetty luettelo
DMA AFU -suunnittelu example sisältää kolme laiteominaisuusotsikkoa (DFH), jotka muodostavat linkitetyn luettelon. Tämä linkitetty luettelo mahdollistaa sample sovellus tunnistaa DMA AFU sekä ajuri tunnistaa DMA BBB. DFH-luettelon lopussa on NULL DFH. Nolla-DFH:n sisällyttäminen linkitetyn luettelon loppuun mahdollistaa DMA BBB:n lisäämisen suunnitteluusi. Sinun tarvitsee vain siirtää NULL DFH osoitteeseen muiden BBB:iden jälkeen. Jokainen DMA BBB odottaa seuraavan DFH:n olevan 0x100 tavua BBB:n perusosoitteesta. Seuraavassa kuvassa on linkitetty luettelo DMA AFU -suunnittelulle, esimample.
Rekisteröi kartta- ja osoitetilat
DMA AFU Device Feature Header (DFH) -ketjutus
Ohjelmiston ohjelmointimalli
DMA AFU sisältää ohjelmistoohjaimen, jota voit käyttää omassa isäntäsovelluksessasi. Tiedostot fpga_dma.cpp ja fpga_dma.h files sijaitsevat seuraavassa paikassa toteuttavat ohjelmistoohjaimen: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Tämä ohjain tukee seuraavia toimintoja:
API | Kuvaus |
fpgaCountDMAChannels | Etsii laitteen ominaisuusketjusta DMA BBB:t ja laskee kaikki saatavilla olevat kanavat. |
fpgaDMAOpen | Avaa kahvan DMA-kanavalle. |
fpgaDMACulkea | Sulkee DMA-kanavan kahvan. |
fpgaDMATransferInit | Alustaa objektin, joka edustaa DMA-siirtoa. |
fpgaDMATransferReset | Palauttaa DMA-siirtoattribuuttiobjektin oletusarvoihin. |
fpgaDMATransferDestroy | Tuhoaa DMA-siirtoattribuuttiobjektin. |
fpgaDMATransferSetSrc | Asettaa siirron lähdeosoitteen. Tämän osoitteen on oltava 64 tavua tasattu. |
fpgaDMATransferSetDst | Asettaa siirron kohdeosoitteen. Tämän osoitteen on oltava 64 tavua tasattu. |
fpgaDMATransferSetLen | Asettaa siirtopituudet tavuina. Muiden kuin pakettisiirtojen kohdalla siirron pituudeksi on asetettava 64 tavun kerrannainen. Pakettisiirroissa tämä ei ole vaatimus. |
fpgaDMATransferSetTransferType | Asettaa siirtotyypin. Lailliset arvot ovat:
• HOST_MM_TO_FPGA_MM = TX (isäntä AFU:lle) • FPGA_MM_TO_HOST_MM = RX (AFU isäntään) |
fpgaDMATransferSetTransferCallback | Rekisteröi takaisinsoiton asynkronisen siirron valmistumisesta. Jos määrität takaisinkutsun, fpgaDMATransfer palaa välittömästi (asynkroninen siirto).
Jos et määritä takaisinsoittoa, fpgaDMATransfer palaa siirron jälkeen (synkroninen/estosiirto). |
fpgaDMATransferSetLast | Ilmaisee viimeisen siirron, jotta DMA voi aloittaa esihaettujen siirtojen käsittelyn. Oletusarvo on 64 siirtoa meneillään ennen kuin DMA alkaa käsitellä siirtoja. |
fpgaDMATtransfer | Suorittaa DMA-siirron. |
Lisätietoja API-, syöttö- ja lähtöargumenteista on otsikossa file sijaitsee $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. Muita nimiä ja merkkejä voidaan väittää muiden omaisuudeksi.
Ohjelmiston ohjelmointimalli
Lisätietoja ohjelmistoohjaimen käyttömallista on README-tiedostossa file sijaitsee osoitteessa $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Käynnissä DMA AFU Example
Ennen kuin aloitat:
- Exän pitäisi olla tuttuampIntel Acceleration Stack -pika-aloitusoppaassa Intel FPGA -ohjelmoitavalle kiihdytyskortille D5005.
- Sinun on määritettävä ympäristömuuttuja. Ympäristömuuttuja riippuu käyttämästäsi Intel Acceleration Stack -versiosta:
- Aseta nykyisessä versiossa ympäristömuuttujaksi $OPAE_PLATFORM_ROOT
- Sinun on asennettava Intel Threading Building Blocks (TBB) -kirjasto, koska DMA-ohjain luottaa siihen.
- Sinun on myös määritettävä kaksi 1 Gt:n valtavaa sivua suorittaaksesi sample sovellus. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Suorita seuraavat vaiheet ladataksesi DMA Accelerator Function (AF) -bittivirran, rakentaaksesi sovelluksen ja ohjaimen sekä suorittaaksesi suunnittelun esim.ampseuraavat:
- Vaihda DMA-sovellus- ja ohjainhakemistoon: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Rakenna ohjain ja sovellus: make
- Lataa DMA AFU -bittivirta: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Suorita isäntäsovellus kirjoittaaksesi 100 Mt 1 Mt:n osissa isäntämuistista FPGA-laitteen muistiin ja lue se takaisin: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Aiheeseen liittyvät tiedot
Intel Acceleration Stack -pikaopas Intel FPGA -ohjelmoitavalle kiihdytyskortille D5005 Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Kääntäminen DMA AFU Example
Luodaksesi synteesirakennusympäristön AF:n kääntämistä varten, käytä afu_synth_setup-komentoa seuraavasti:
- Vaihda DMA AFU sample-hakemisto: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Luo suunnittelun rakennushakemisto: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Syötä seuraavat komennot afu_synth_setup-sovelluksen luomasta synteesirakennushakemistosta AF:n luomiseksi kohdelaitteistoalustalle: cd build_synth run.sh Run.sh AF:n luontikomentosarja luo AF-kuvan samalla pohjalla. filenimi AFU:n alustakokoonpanoksi file (.json), jossa on .gbs-liite sijainnissa:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Simuloidaan AFU Example
Intel suosittelee, että tutustut Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) -pika-aloitusoppaaseen Intel FPGA PAC:n simuloimiseen.amples ja ympäristösi asettamiseen. Ennen kuin jatkat seuraavien vaiheiden läpi, varmista, että OPAE_PLATFORM_ROOT-ympäristömuuttuja on asetettu OPAE SDK -asennushakemistoon. Suorita seuraavat vaiheet määrittääksesi laitteistosimulaattorin DMA AFU:ta varten:
- Vaihda DMA AFU sample-hakemisto: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Luo ASE-ympäristö uuteen hakemistoon ja määritä se simuloimaan AFU:ta: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Vaihda ASE-koontihakemistoon: cd build_ase_dir
- Rakenna ohjain ja sovellus: make
- Tee simulaatio: tee sim
Samplaitteistosimulaattorin ulostulo:
[SIM] ** HUOMIO: ENNEN sovelluksen suorittamista ** [SIM] Aseta env(ASE_WORKDIR) terminaaliin, jossa sovellus suoritetaan (copy-and-paste) => [SIM] $SHELL | Suorita:[SIM] ———+—————————————————— [SIM] bash/zsh | vienti 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] Ota yhteyttä Linux-järjestelmänvalvojaan [SIM] [SIM] Valmiina simulointiin… [SIM] Sulje simulaattori painamalla CTRL-C…Suorita seuraavat vaiheet kääntääksesi ja suorittaaksesi DMA AFU -ohjelmiston simulointiympäristössä:
- Avaa uusi pääteikkuna.
- Vaihda hakemistoon: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, paitsi jos Intel on nimenomaisesti kirjallisesti hyväksynyt. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Simuloidaan AFU Example
- Kopioi ympäristön asetusmerkkijono (valitse komentotulkellesi sopiva merkkijono) laitteistosimuloinnin yllä olevista vaiheista pääteikkunaan. Katso seuraavat rivit sample ulostulo laitteistosimulaattorista. [SIM] bash/zsh | vienti 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
- Käännä ohjelmisto: $ make USE_ASE=1
- Suorita isäntäsovellus kirjoittaaksesi 4 kt 1 kt:n osissa isäntämuistista takaisin FPGA-laitteen muistiin takaisinkytkentätilassa: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Aiheeseen liittyvät tiedot
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) -pikaopas
Optimointi parempaan DMA-suorituskykyyn
NUMA-optimoinnin (epäyhtenäisen muistin käytön) toteutus fpga_dma_test.cpp:ssä mahdollistaa prosessorin pääsyn omaan paikalliseen muistiinsa nopeammin kuin ei-paikallisen muistin (toiselle prosessorille paikallinen muisti). Tyypillinen NUMA-kokoonpano on esitetty alla olevassa kaaviossa. Paikallinen pääsy edustaa pääsyä ytimestä muistiin paikallisesti samalle ytimelle. Etäkäyttö havainnollistaa polun, joka kuljetetaan, kun solmun 0 ydin käyttää muistia, joka sijaitsee solmun 1 paikallisessa muistissa.
Tyypillinen NUMA-kokoonpano
Käytä seuraavaa koodia ottaaksesi NUMA-optimoinnin käyttöön testisovelluksessasi:
// Aseta oikea affiniteetti, jos sitä pyydetään if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, "fpgaGetProperties"); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetBus"); res = fpgapropertiesgetDevice (rekvisiitta, (uint8_t *) & dev); on_err_goto (res, out_destroy_tok, “fpgapropertiesgetDevice”) res = fpgapropertiesgetfunction (rekvisiitti (uint8_t *) & func); Unction ”); // Etsi laite topologiasta hwloc_topology_t; hwloc_topology_init(&topology); hwloc_topology_set_flags(topologia, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita. *Muut nimet ja tuotemerkit voidaan väittää muiden omaisuudeksi.
Optimointi parempaan DMA-suorituskykyyn
hwloc_topology_load(topologia); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologia, dom, väylä, kehittäjä, toiminto); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologia, 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 on %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->solmusarja); printf("NODESET on %s\n", str);#endif if (muistin_affiniteetti) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologia, obj2->solmusarja,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD | #else retval =hwloc_set_membind_nodeset(topologia, obj2->solmusarja, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } if (cpu_affinity) { retval = hwloc_set_cpubind(topologia, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
DMA Accelerator Functional Unit -käyttöopas Arkistot
Intel Acceleration Stack -versio | Käyttöopas (PDF) |
2.0 | DMA Accelerator Functional Unit (AFU) -käyttöopas |
Asiakirjan versiohistoria DMA Accelerator Functional Unit -käyttöoppaalle
Asiakirjan versio |
Intelin kiihdytys Pino versio |
Muutokset |
2020.08.03 |
2.0.1 (tuettu Intelin kanssa
Quartus® Prime Pro Edition Edition 19.2) |
AF-kuva korjattu file nimi osiossa Kääntäminen DMA AFU Example. |
2020.04.17 |
2.0.1 (tuettu Intelin kanssa
Quartus Prime Pro Edition Edition 19.2) |
Korjattu lausunto Tarkoitettu yleisö osio. |
2020.02.20 |
2.0.1 (tuettu Intelin kanssa
Quartus Prime Pro Edition Edition 19.2) |
Korjattu kirjoitusvirhe. |
2019.11.04 |
2.0.1 (tuettu Intelin kanssa Quartus Prime Pro Edition Edition 19.2) |
• Korvattiin fpgaconf fpgasupdatella määritettäessä FPGA:ta prebuild AFU:lla osiossa DMA AFU Example.
• Lisätty tekstitys Ohjelmoitava Intel FPGA -kiihdytinkortti D5005 asiakirjan otsikkoon. • Lisätty ympäristömuuttuja $OPAE_PLATFORM_ROOT. • Muokattu osa Ohjelmiston ohjelmointimalli pieniä muokkauksia varten. • Lisätty uusi osio Kääntäminen DMA AFU Example. • Muokattu osa Optimointi parempaan DMA-suorituskykyyn pieniä muokkauksia varten. |
2019.08.05 |
2.0 (tuettu Intelin kanssa
Quartus Prime Pro Edition 18.1.2) |
Alkuperäinen julkaisu. |
Intel Corporation. Kaikki oikeudet pidätetään. Intel, Intel-logo ja muut Intel-merkit ovat Intel Corporationin tai sen tytäryhtiöiden tavaramerkkejä. Intel takaa FPGA- ja puolijohdetuotteidensa suorituskyvyn nykyisten vaatimusten mukaisesti Intelin vakiotakuun mukaisesti, mutta pidättää oikeuden tehdä muutoksia tuotteisiin ja palveluihin milloin tahansa ilman erillistä ilmoitusta. Intel ei ota minkään tässä kuvatun tiedon, tuotteen tai palvelun soveltamisesta tai käytöstä johtuvaa vastuuta tai vastuuta, ellei Intel ole nimenomaisesti kirjallisesti suostunut siihen. Intelin asiakkaita kehotetaan hankkimaan uusin versio laitteen teknisistä tiedoista ennen kuin he luottavat julkaistuihin tietoihin ja ennen kuin he tilaavat tuotteita tai palveluita.
- Muita nimiä ja merkkejä voidaan väittää muiden omaisuudeksi.
Asiakirjat / Resurssit
![]() |
Ohjelmoitava Intel FPGA -kiihdytinkortti D5005 [pdfKäyttöopas Ohjelmoitava FPGA-kiihdytyskortti, D5005, FPGA-ohjelmoitava kiihtyvyyskortti D5005, DMA-kiihdytin toiminnallinen yksikkö |