Intel FPGA programozható gyorsítókártya D5005
Erről a dokumentumról
Ez a dokumentum leírja a közvetlen memória-elérési (DMA) Accelerator Functional Unit (AFU) megvalósítását, valamint azt, hogy hogyan lehet a tervezést hardveren vagy szimulációban futtatni.
Célközönség
A célközönség olyan hardver- vagy szoftverfejlesztőkből áll, akik gyorsító funkciót (AF) igényelnek az adatok helyi puffereléséhez az Intel FPGA-eszközhöz csatlakoztatott memóriában.
Egyezmények
Dokumentumegyezmények
Konvenció | Leírás |
# | Megelőzi azt a parancsot, amely azt jelzi, hogy a parancsot rootként kell megadni. |
$ | Azt jelzi, hogy egy parancsot felhasználóként kell megadni. |
Ez a betűtípus | Filea nevek, parancsok és kulcsszavak ezzel a betűtípussal vannak nyomtatva. A hosszú parancssorok ezzel a betűtípussal vannak nyomtatva. Bár a hosszú parancssorok a következő sorra törhetnek, a visszatérés nem része a parancsnak; ne nyomja meg az entert. |
Azt jelzi, hogy a szögletes zárójelek között megjelenő helyőrző szöveget megfelelő értékre kell cserélni. Ne lépjen be a szögletes zárójelbe. |
Rövidítések
Rövidítések
Rövidítések | Terjeszkedés | Leírás |
AF | Gyorsító funkció | Lefordított hardvergyorsító kép FPGA-logikával megvalósítva, amely felgyorsítja az alkalmazást. |
AFU | Gyorsító funkcionális egység | Hardvergyorsító FPGA-logikában implementálva, amely a teljesítmény javítása érdekében a CPU-ból eltávolítja az alkalmazás számítási műveletét. |
API | Alkalmazás programozási felület | Szubrutin definíciók, protokollok és eszközök halmaza szoftveralkalmazások készítéséhez. |
CCI-P | Core Cache interfész | A CCI-P az a szabványos interfész, amelyet az AFU-k használnak a gazdagéppel való kommunikációhoz. |
DFH | Eszköz funkció fejléce | Létrehoz egy csatolt listát a jellemzők fejléceiről, hogy bővíthető módot biztosítson a szolgáltatások hozzáadására. |
folytatás… |
Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja FPGA és félvezető termékeinek aktuális specifikációi szerinti teljesítményét, az Intel szabványos garanciájával összhangban, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal felelősséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve, ha az Intel kifejezetten írásban beleegyezik. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Rövidítések | Terjeszkedés | Leírás |
FIM | FPGA interfészkezelő | Az FPGA-hardver, amely tartalmazza az FPGA interfész egységet (FIU) és külső interfészeket a memóriához, a hálózathoz stb.
Az Accelerator Function (AF) futásidőben kapcsolódik a FIM-hez. |
FIU | FPGA interfész egység | A FIU egy platform interfész réteg, amely hídként működik a platform interfészek, például a PCIe*, az UPI és az AFU-oldali interfészek, például a CCI-P között. |
MPF | Memóriatulajdonság-gyár | Az MPF egy alapvető építőelem (BBB), amelyet az AFU-k használhatnak a CCI-P forgalomformáló műveletek biztosítására a FIU-val folytatott tranzakciókhoz. |
Gyorsulási szószedet
Acceleration Stack Intel® Xeon® CPU-hoz FPGA-kkal Glossary
Term | Rövidítés | Leírás |
Intel® Acceleration Stack Intel Xeon® CPU-hoz FPGA-val | Gyorsulási verem | Szoftverek, firmware-ek és eszközök gyűjteménye, amelyek teljesítményre optimalizált kapcsolatot biztosítanak az Intel FPGA és az Intel Xeon processzorok között. |
Intel FPGA programozható gyorsítókártya | Intel FPGA PAC | PCIe FPGA gyorsító kártya.
Tartalmaz egy FPGA Interface Managert (FIM), amely a PCIe buszon keresztül párosul Intel Xeon processzorral. |
- DMA-gyorsító funkcionális egység használati útmutatója: Intel FPGA programozható gyorsítókártya D5005
DMA AFU leírás
Bevezetés
A közvetlen memóriahozzáférés (DMA) AFU plample bemutatja, hogyan kell kezelni a memóriaátvitelt a gazdagép processzor és az FPGA között. Integrálhatja a DMA AFU-t a tervezésbe, hogy az adatokat a gazdagép memória és az FPGA helyi memória között mozgassa. A DMA AFU a következő almodulokat tartalmazza:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache interfész (CCI-P) az Avalon® memórialeképezett (Avalon-MM) adapterhez
- DMA tesztrendszer, amely tartalmazza a DMA BBB-t
Ezeket az almodulokat az alábbi DMA AFU hardverkomponensek témakörben ismertetjük részletesebben.
Kapcsolódó információk
- A DMA AFU hardverösszetevői a 6. oldalon
- Avalon interfész specifikációi
További információ az Avalon-MM protokollról, beleértve az olvasási és írási tranzakciók időzítési diagramjait.
A DMA AFU szoftvercsomag
Az Intel Acceleration Stack Intel Xeon CPU-hoz FPGA-csomaggal file (*.tar.gz), tartalmazza a DMA AFU example. Ez az example biztosít egy felhasználói terület illesztőprogramot. A gazdagép alkalmazás ezt az illesztőprogramot úgy használja, hogy a DMA az adatokat mozgatja a gazdagép és az FPGA memória között. A hardveres binárisok, a források és a felhasználói terület illesztőprogramja a következő könyvtárban érhető el: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Mielőtt kísérletezne a DMA AFU-val, telepítenie kell az Open Programmable Acceleration Engine (OPAE) szoftvercsomagot. A telepítési utasításokért tekintse meg az Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005 Az OPAE szoftvercsomag telepítése című részét. Ez a Gyors üzembe helyezési útmutató alapvető információkat tartalmaz az Open Programmable Acceleration Engine-ről (OPAE) és az AFU konfigurálásáról is. Az Open Programmable Acceleration Engine (OPAE) szoftvercsomag telepítése után, mintampA hosztalkalmazás és a DMA AFU felhasználói terület illesztőprogramja a következő könyvtárban érhető el: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Futtatni a sampAz Intel FPGA PAC D5005 hardverén lévő fpga_dma_test hosztalkalmazásnál olvassa el a DMA AFU Ex futtatása című szakasz lépéseit.ample. Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja FPGA és félvezető termékeinek aktuális specifikációi szerinti teljesítményét, az Intel szabványos garanciájával összhangban, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal felelősséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve, ha az Intel kifejezetten írásban beleegyezik. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Kapcsolódó információk
- Intel Acceleration Stack Rövid útmutató az Intel FPGA programozható gyorsítókártyához D5005
- Az OPAE szoftvercsomag telepítése
A DMA AFU hardverkomponensek
A DMA AFU interfész az FPGA interfész egységgel (FIU) és az FPGA memóriával. Az FPGA memória részletes specifikációit az Intel FPGA programozható gyorsítókártya D5005 FPGA Interface Manager adatlapján találja. A jelenleg elérhető hardver határozza meg ezt a memóriakonfigurációt. A jövőbeni hardverek különböző memóriakonfigurációkat támogathatnak. A DMA AFU segítségével adatokat másolhat a következő forrás- és célhelyek között:
- A gazdagép és az eszköz közötti FPGA memória
- Az eszköz FPGA memóriája a gazdagéphez
A Platform Designer rendszer, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ A /dma_test_system.qsys megvalósítja a legtöbb DMA-t
- AFU. A Platform Designer rendszerben megvalósított DMA AFU egy része az alábbiakban található
hely: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ A DMA BBB-t a következő helyen találja:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA-gyorsító funkcionális egység használati útmutatója: Intel FPGA programozható gyorsítókártya D5005
DMA AFU hardver blokkdiagram
A DMA AFU a következő belső modulokat tartalmazza az FPGA interfész egységgel (FIU) való interfészhez:
- Memórialeképezett IO (MMIO) dekódoló logika: észleli az MMIO olvasási és írási tranzakciókat, és elválasztja azokat a CCI-P RX 0 csatornától, amelyről érkeznek. Ez biztosítja, hogy az MMIO forgalom soha ne érje el az MPF BBB-t, és egy független MMIO parancscsatorna szolgálja ki.
- Memory Properties Factory (MPF): Ez a modul biztosítja, hogy a DMA olvasási válaszai a kiadásuk sorrendjében térjenek vissza. Az Avalon-MM protokoll olvasási válaszokat igényel, hogy a megfelelő sorrendben térjenek vissza.
- CCI-P - Avalon-MM adapter: Ez a modul a CCI-P és az Avalon-MM tranzakciók között a következőképpen vált át:
- CCI-P – Avalon-MMIO Adapter: Ez az útvonal a CCI-P MMIO tranzakciókat Avalon-MM tranzakciókká alakítja át.
- Avalon – CCI-P gazdagépadapter: Ezek az elérési utak külön csak olvasható és csak írható útvonalakat hoznak létre a DMA számára a gazdagépmemória eléréséhez.
- DMA tesztrendszer: Ez a modul burkolóként szolgál a DMA BBB körül, hogy a DMA-mastereket feltárja az AFU logikájának többi részének. Interfészt biztosít a DMA BBB és a CCI-P to Avalon Adapter között. Ezenkívül interfészt biztosít a DMA BBB és a helyi FPGA SDRAM bankok között.
Kapcsolódó információk
FPGA interfészkezelő adatlapja az Intel FPGA programozható gyorsítókártyához D5005
DMA tesztrendszer
A DMA tesztrendszer összeköti a DMA BBB-t az FPGA kialakítás többi részével, beleértve a CCI-P adaptációt és a helyi FPGA memóriát.
DMA tesztrendszer blokkdiagramja
Ez a blokkdiagram a DMA tesztrendszer belső elemeit mutatja be. A DMA tesztrendszer monolitikus blokkként látható az 1. ábrán a 7. oldalon.
A DMA tesztrendszer a következő belső modulokat tartalmazza:
- Far Reach Bridge/Pipeline Bridge: Csővezeték-híd állítható késleltetéssel a topológia vezérléséhez és a tervezési Fmax javításához.
- DMA AFU Device Feature Header (DFH): Ez a DMA AFU DFH. Ez a DFH a következő DFH-ra mutat, amely 0x100 eltolásnál található (DMA BBB DFH).
- Null DFH: Ez az összetevő leállítja a DFH csatolt listát. Ha további DMA BBB-ket ad hozzá a tervhez, győződjön meg arról, hogy a null DFH alapcím a DFH csatolt lista végén található.
- MA Basic Building Block (BBB): Ez a blokk mozgatja az adatokat a gazdagép és a helyi FPGA memória között. Ezenkívül hozzáfér a gazdagép memóriájához, hogy hozzáférjen a leíró láncokhoz.
DMA BBB
A DMA BBB alrendszer Avalon-MM tranzakciók segítségével továbbítja az adatokat a forrásból a célcímekbe. A DMA meghajtó vezérli a DMA BBB-t a rendszeren belüli különféle összetevők vezérlési és állapotregiszteréhez való hozzáféréssel. A DMA illesztőprogram a DMA BBB-t is vezérli azáltal, hogy megosztott memóriát használ az átviteli leírók kommunikálásához. A DMA BBB 0x0 eltolásnál éri el az FPGA memóriában lévő adatokat. A DMA BBB 0x1_0000_0000_0000 eltolásnál éri el az adatokat és a leírókat a gazdagép memóriájában.
DMA BBB platform tervező blokkdiagram
Ez a blokkdiagram kizár néhány belső Pipeline Bridge IP magot.
DMA-gyorsító funkcionális egység használati útmutatója: Intel FPGA programozható gyorsítókártya D5005
DMA AFU leírás
A DMA BBB Platform Designer összetevői a következő funkciókat valósítják meg:
- Far Reach híd/Pipeline Bridge: Beállítható késleltetésű csővezetékhíd a topológia vezérléséhez és a tervezési Fmax javításához.
- MA BBB DFH: Ez a DMA BBB eszközfunkciójának fejléce. Ez a DFH a következő DFH-ra mutat, amely 0x100 eltolásnál (Null DFH) található.
- Leíró felület: Felelős a leírók lekéréséért és a diszpécsernek való továbbításáért. Amikor a DMA átvitel befejeződik, a frontend állapotképzést kap a diszpécsertől, és felülírja a leírót a gazdagép memóriájában.
- Diszpécser: Ez a blokk ütemezi a DMA átviteli kéréseket az olvasási és írási mesterhez.
- Olvasd Mester: Ez a blokk felelős az adatok beolvasásáért a gazdagép vagy a helyi FPGA memóriából, és streaming adatként elküldi azokat a Write Master-nek.
- Írj Mestert: Ez a blokk felelős a streaming adatok fogadásáért a Read Master-től és a tartalomnak a gazdagép vagy a helyi FPGA memóriába való írásáért.
Regisztráljon térkép- és címtereket
A DMA AFU két memóriát támogat views: A DMA view és a házigazda view. A DMA view támogatja a 49 bites címteret. A DMA alsó fele view leképez a helyi FPGA memóriára. A DMA felső fele view térképek a gazdagép memóriájába. A gazda view tartalmazza az MMIO hozzáféréseken keresztül elérhető összes regisztert, például a DFH táblákat, valamint a DMA AFU-n belül használt különböző IP magok vezérlő/állapotregisztereit. A DMA BBB és AFU MMIO regiszterei támogatják a 32 és 64 bites hozzáférést. A DMA AFU nem támogatja az 512 bites MMIO hozzáférést. A DMA BBB-n belüli Dispatcher regiszterekhez való hozzáférésnek 32 bitesnek kell lennie (a Descriptor frontend 64 bites regisztereket valósít meg).
DMA AFU regisztrációs térkép
A DMA AFU regisztertérkép az egységen belüli összes hely abszolút címét tartalmazza. Ezek a regiszterek a gazdagépben vannak view mert csak a gazdagép férhet hozzájuk.
DMA AFU memóriatérkép
Byte címeltolások | Név | Terjedelem bájtban | Leírás |
0x0 | DMA AFU DFH | 0x40 | Eszközfunkció fejléc a DMA AFU-hoz. Az ID_L értéke 0x9081f88b8f655caa, az ID_H pedig 0x331db30c988541ea. A DMA AFU DFH úgy van paraméterezve, hogy 0x100 eltolásra mutasson a következő DFH (DMA BBB DFH) megtalálásához. Nem módosíthatja a DMA AFU DFH alapcímét, mivel annak a CCIP specifikációban meghatározott 0x0 címen kell lennie. |
0x100 | DMA BBB | 0x100 | Meghatározza a DMA BBB vezérlési és állapotregiszter interfészt. További információkért tekintse meg a DMA BBB regisztrációs térképét. A 0 eltolású DMA BBB-n belül a DMA BBB tartalmazza a saját DFH-ját. Ez a DFH úgy van beállítva, hogy megtalálja a következő DFH-t 0x100 eltolásnál (NULL DFH). Ha további DMA BBB-ket ad hozzá, helyezze el őket egymástól 0x100 távolságra, és biztosítsa, hogy a NULL DFH 0x100-al kövesse az utolsó DMA-t. |
0x200 | NULL DFH | 0x40 | Leállítja a DFH linkelt listát. Az ID_L értéke 0x90fe6aab12a0132f, az ID_H pedig 0xda1182b1b3444e23. A NULL DFH paraméterezése az utolsó DFH a hardverben. Emiatt a NULL DFH a 0x200 címen található. Ha további DMA BBB-ket ad hozzá a rendszerhez, akkor ennek megfelelően növelnie kell a NULL DFH alapcímet, hogy az a legmagasabb címen maradjon. A DMA illesztőprogram és a tesztalkalmazás nem használja ezt a hardvert. |
Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja FPGA és félvezető termékeinek aktuális specifikációi szerinti teljesítményét, az Intel szabványos garanciájával összhangban, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal felelősséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve, ha az Intel kifejezetten írásban beleegyezik. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Regisztráljon térkép- és címtereket
DMA BBB memóriatérkép
A következő bájtcímek a DMA AFU rendszerben lévő DMA BBB alapcím relatív eltolásai (0x100).
Byte címeltolások | Név | Terjedelem bájtban | Leírás |
0x0 | DMA BBB DFH | 0x40 | Eszközfunkció fejléc a DMA AFU-hoz. Az ID_L értéke 0xa9149a35bace01ea, az ID_H pedig 0xef82def7f6ec40fc. A DMA BBB DFH úgy van paraméterezve, hogy a következő DFH eltolásnál 0x100-ra mutasson. Ez a következő eltolás lehet egy másik DMA BBB, egy másik DFH (nem része ebben a kialakításban), vagy a NULL DFH. |
0x40 | Diszpécser | 0x40 | Vezérlő port a diszpécser számára. A DMA illesztőprogram ezt a helyet használja a DMA vezérlésére vagy állapotának lekérdezésére. |
0x80 | Leíró Frontend | 0x40 | A leíró frontend egy egyéni összetevő, amely beolvassa a leírókat a gazdagép memóriájából, és felülírja a leírót, amikor a DMA átvitel befejeződik. Az illesztőprogram utasítja a kezelőfelületet, hogy hol található az első leíró a gazdagép memóriájában, majd a frontend hardvere elsősorban a gazdagép memóriájában tárolt leírókon keresztül kommunikál az illesztőprogrammal. |
DMA AFU címtér
A gazdagép hozzáférhet a 4. táblázatban a 12. oldalon és az 5. táblázatban a 13. oldalon felsorolt regiszterekhez. A DMA BBB alrendszer hozzáfér a teljes 49 bites címtérhez. Ennek a címtartománynak az alsó fele tartalmazza a helyi FPGA memóriákat. Ennek a címtartománynak a felső fele tartalmazza a 48 bites gazdagép címmemóriát. A következő ábra a gazdagépet és a DMA-t mutatja views az emlékezet.
A DMA AFU és a gazdagép Views a memória
Device Feature Header Linked-List
A DMA AFU design plampA le három eszközfunkció fejlécet (DFH) tartalmaz, amelyek egy linkelt listát alkotnak. Ez a linkelt lista lehetővé teszi az sample alkalmazás a DMA AFU azonosítására, valamint a DMA BBB azonosítására szolgáló illesztőprogram. A DFH lista végén egy NULL DFH szerepel. A null DFH szerepeltetése a hivatkozott lista végén lehetővé teszi, hogy további DMA BBB-ket adjon hozzá a tervéhez. Egyszerűen át kell helyeznie a NULL DFH-t a többi BBB utáni címre. Minden DMA BBB azt várja, hogy a következő DFH 0x100 bájt távolságra legyen a BBB alapcímétől. A következő ábra a DMA AFU-tervezés hivatkozáslistáját mutatja, plample.
Regisztráljon térkép- és címtereket
DMA AFU Device Feature Header (DFH) láncolás
Szoftver programozási modell
A DMA AFU tartalmaz egy szoftver-illesztőprogramot, amelyet saját gazdaalkalmazásában használhat. Az fpga_dma.cpp és fpga_dma.h fileA következő helyen található s telepíti a szoftver-illesztőprogramot: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ez az illesztőprogram a következő funkciókat támogatja:
API | Leírás |
fpgaCountDMAChannels | Megkeresi az eszköz szolgáltatásláncát DMA BBB-k után, és megszámolja az összes elérhető csatornát. |
fpgaDMAOpen | Megnyitja a DMA csatorna fogantyúját. |
fpgaDMACzár | Lezárja a DMA csatorna fogantyúját. |
fpgaDMATransferInit | Inicializál egy objektumot, amely a DMA átvitelt reprezentálja. |
fpgaDMATransferReset | Visszaállítja a DMA átviteli attribútum objektumot az alapértelmezett értékekre. |
fpgaDMATransferDestroy | Megsemmisíti a DMA átviteli attribútum objektumot. |
fpgaDMATransferSetSrc | Beállítja az átvitel forráscímét. Ennek a címnek 64 bájtosnak kell lennie. |
fpgaDMATransferSetDst | Beállítja az átvitel célcímét. Ennek a címnek 64 bájtosnak kell lennie. |
fpgaDMATransferSetLen | Beállítja az átviteli hosszt bájtokban. Nem csomagos átviteleknél az átvitel hosszát 64 bájt többszörösére kell beállítani. Csomagátvitel esetén ez nem követelmény. |
fpgaDMATransferSetTransferType | Beállítja az átvitel típusát. A jogi értékek a következők:
• HOST_MM_TO_FPGA_MM = TX (Host az AFU-hoz) • FPGA_MM_TO_HOST_MM = RX (AFU a gazdagéphez) |
fpgaDMATransferSetTransferCallback | Regisztrálja a visszahívást az aszinkron átvitel befejezéséről szóló értesítéshez. Ha visszahívást ad meg, az fpgaDMATransfer azonnal visszatér (aszinkron átvitel).
Ha nem ad meg visszahívást, az fpgaDMATransfer visszatér az átvitel befejezése után (szinkron/blokkoló átvitel). |
fpgaDMATransferSetLast | Az utolsó átvitelt jelzi, így a DMA megkezdheti az előre letöltött átvitelek feldolgozását. Az alapértelmezett érték 64 átvitel folyamatban, mielőtt a DMA elkezdene dolgozni az átviteleken. |
fpgaDMATtransfer | DMA átvitelt hajt végre. |
Az API-val, a bemeneti és kimeneti argumentumokkal kapcsolatos további információkért tekintse meg a fejlécet file található $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja, hogy FPGA és félvezető termékei az aktuális specifikációknak megfelelő teljesítményt nyújtanak az Intel szabványos garanciájának megfelelően, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal semmilyen felelősséget vagy kötelezettséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve az Intel által kifejezetten írásban jóváhagyott eseteket. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. Más nevek és márkák mások tulajdonát képezhetik.
Szoftver programozási modell
Ha többet szeretne megtudni a szoftver-illesztőprogram használati modelljéről, tekintse meg a README-t file a következő helyen található: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
DMA AFU futtatása Example
Mielőtt elkezdené:
- Ismernie kell az exétampAz Intel Acceleration Stack rövid útmutatójában az Intel FPGA D5005 programozható gyorsítókártyához.
- Meg kell határoznia egy környezeti változót. A környezeti változó a használt Intel Acceleration Stack verziótól függ:
- A jelenlegi verzióhoz állítsa a környezeti változót $OPAE_PLATFORM_ROOT értékre
- Telepítenie kell az Intel Threading Building Blocks (TBB) könyvtárat, mivel a DMA illesztőprogram erre támaszkodik.
- Az s futtatásához két 1 GB-os hatalmas oldalt is be kell állítaniaample alkalmazás. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Hajtsa végre a következő lépéseket a DMA Accelerator Function (AF) bitfolyam letöltéséhez, az alkalmazás és az illesztőprogram felépítéséhez, valamint a tervezési ex.ample:
- Váltás a DMA alkalmazás és illesztőprogram könyvtárára: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Építsd meg az illesztőprogramot és az alkalmazást: make
- Töltse le a DMA AFU bitfolyamot: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Futtassa a gazdagép alkalmazást, hogy 100 MB-ot írjon 1 MB-os részletekben a gazdagép memóriájából az FPGA-eszköz memóriájába, és olvassa vissza: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Kapcsolódó információk
Intel Acceleration Stack Rövid útmutató az Intel FPGA programozható gyorsítókártyához D5005 Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja, hogy FPGA és félvezető termékei az aktuális specifikációknak megfelelő teljesítményt nyújtanak az Intel szabványos garanciájának megfelelően, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal semmilyen felelősséget vagy kötelezettséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve az Intel által kifejezetten írásban jóváhagyott eseteket. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
A DMA AFU Ex. összeállításaample
Szintézis összeállítási környezet létrehozásához az AF lefordításához használja az afu_synth_setup parancsot a következők szerint:
- Váltson a DMA AFU-raample könyvtár: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- A tervezési összeállítási könyvtár létrehozása: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Az afu_synth_setup által generált szintézis build könyvtárból írja be a következő parancsokat egy terminálablakból, hogy létrehozzon egy AF-et a cél hardverplatformhoz: cd build_synth run.sh A run.sh AF-generáló szkript létrehozza az AF-képet ugyanazzal az alappal filenevet az AFU platform konfigurációjaként file (.json) .gbs utótaggal a következő helyen: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja, hogy FPGA és félvezető termékei az aktuális specifikációknak megfelelő teljesítményt nyújtanak az Intel szabványos garanciájának megfelelően, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal semmilyen felelősséget vagy kötelezettséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve az Intel által kifejezetten írásban jóváhagyott eseteket. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Az AFU szimulációja Example
Az Intel azt javasolja, hogy olvassa el az Intel Accelerator Functional Unit (AFU) szimulációs környezet (ASE) Gyors üzembe helyezési útmutatóját az Intel FPGA PAC számára, hogy ismerje a hasonló ex-szimulációt.ampés a környezet beállításához. Mielőtt folytatná a következő lépéseket, ellenőrizze, hogy az OPAE_PLATFORM_ROOT környezeti változó az OPAE SDK telepítési könyvtárára van-e állítva. Hajtsa végre a következő lépéseket a DMA AFU hardveres szimulátorának beállításához:
- Váltson a DMA AFU-raample könyvtár: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Hozzon létre egy ASE környezetet egy új könyvtárban, és állítsa be az AFU szimulálásához: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Váltás az ASE build könyvtárára: cd build_ase_dir
- Építsd meg az illesztőprogramot és az alkalmazást: make
- Készítsen szimulációt: készítsen sim-et
SampA hardveres szimulátor kimenete:
[SIM] ** FIGYELEM: A szoftveralkalmazás futtatása előtt ** [SIM] Állítsa be az env(ASE_WORKDIR) értéket a terminálon, ahol az alkalmazás futni fog (copy-and-paste) => [SIM] $SHELL | Futtatás:[SIM] ———+————————————————— [SIM] bash/zsh | exportálás 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] Minden más $SHELL esetén forduljon Linux rendszergazdájához [SIM] [SIM] Szimulációra kész… [SIM] Nyomja meg a CTRL-C billentyűket a szimulátor bezárásához…Hajtsa végre a következő lépéseket a DMA AFU szoftver lefordításához és futtatásához a szimulációs környezetben:
- Nyisson meg egy új terminál ablakot.
- Módosítsa a könyvtárat a következőre: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja FPGA és félvezető termékeinek aktuális specifikációi szerinti teljesítményét, az Intel szabványos garanciájával összhangban, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal felelősséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve, ha az Intel kifejezetten írásban beleegyezik. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Az AFU szimulációja Example
- Másolja a környezetbeállítási karakterláncot (válassza ki a shellnek megfelelő karakterláncot) a hardveres szimuláció fenti lépéseiből a terminálablakba. Lásd a következő sorokat a sample kimenetet a hardveres szimulátorból. [SIM] bash/zsh | exportálás 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
- Fordítsa le a szoftvert: $ make USE_ASE=1
- Futtassa a gazdaalkalmazást, hogy 4 KB-ot 1 KB-os részletekben írjon vissza a gazdamemóriából az FPGA-eszköz memóriájába loopback módban: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Kapcsolódó információk
Intel Accelerator Functional Unit (AFU) szimulációs környezet (ASE) Gyors üzembe helyezési útmutató
Optimalizálás a jobb DMA teljesítmény érdekében
A NUMA (nem egységes memóriaelérés) optimalizálás megvalósítása az fpga_dma_test.cpp fájlban lehetővé teszi a processzor számára, hogy gyorsabban hozzáférjen saját helyi memóriájához, mint a nem helyi memóriához (egy másik processzor helyi memóriájához). Az alábbi diagramon egy tipikus NUMA konfiguráció látható. A helyi hozzáférés egy magtól a memóriához való hozzáférést jelenti, ugyanahhoz a maghoz. A távoli elérés azt az utat mutatja, amelyen keresztül a 0. csomópont magja hozzáfér az 1. csomópont helyi memóriájában található memóriához.
Tipikus NUMA konfiguráció
Használja a következő kódot a NUMA optimalizálás megvalósításához a tesztalkalmazásban:
// Ha szükséges, állítsa be a megfelelő affinitást 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(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_Properties”TOftroyperties” // Az eszköz megkeresése a hwloc_topology_t topológiából; hwloc_topology_init(&topológia); hwloc_topology_set_flags(topológia, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja FPGA és félvezető termékeinek aktuális specifikációi szerinti teljesítményét, az Intel szabványos garanciájával összhangban, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal semmilyen felelősséget vagy kötelezettséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve az Intel által kifejezetten írásban jóváhagyott eseteket. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat. *Más nevek és márkák mások tulajdonát képezhetik.
Optimalizálás a jobb DMA teljesítmény érdekében
hwloc_topology_load(topológia); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topológia, dom, busz, fejlesztő, funkció); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topológia, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("CPUSET %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf("NODESET %s\n", str);#endif if (memóriaaffinitás) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topológia, obj2->csomókészlet,HWLOC_MEMBIND_THREAD, HWINDYBLOMBEND_THREAD, HWLOC_MEMBIND_THREAD | #else retval =hwloc_set_membind_nodeset(topológia, obj2->csomópontkészlet, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } if (cpu_affinitás) { retval = hwloc_set_cpubind(topológia, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
DMA Accelerator Functional Unit User Guide Archives
Intel Acceleration Stack verzió | Felhasználói útmutató (PDF) |
2.0 | DMA Accelerator Functional Unit (AFU) felhasználói útmutató |
A DMA Accelerator Functional Unit felhasználói kézikönyvének átdolgozási előzményei
Dokumentum verzió |
Intel Acceleration Stack verzió |
Változások |
2020.08.03 |
2.0.1 (Intel támogatja
Quartus® Prime Pro Edition 19.2) |
Javítva az AF kép file név a szakaszban A DMA AFU Ex. összeállításaample. |
2020.04.17 |
2.0.1 (Intel támogatja
Quartus Prime Pro Edition 19.2) |
Javított egy nyilatkozatot Célközönség szakasz. |
2020.02.20 |
2.0.1 (Intel támogatja
Quartus Prime Pro Edition 19.2) |
Javítva az elírási hiba. |
2019.11.04 |
2.0.1 (Intel támogatja Quartus Prime Pro Edition 19.2) |
• Az fpgaconf-ot lecserélte az fpgasupdate-re, amikor az FPGA-t az előre elkészített AFU-val konfigurálta a szakaszban A DMA AFU futtatása Example.
• Felirat hozzáadva Intel FPGA programozható gyorsítókártya D5005 a dokumentum címére. • $OPAE_PLATFORM_ROOT környezeti változó hozzáadva. • Módosított szakasz Szoftver programozási modell kisebb szerkesztésekhez. • Új szakasz hozzáadva A DMA AFU Ex. összeállításaample. • Módosított szakasz Optimalizálás a jobb DMA teljesítmény érdekében kisebb szerkesztésekhez. |
2019.08.05 |
2.0 (Intel támogatja
Quartus Prime Pro Edition 18.1.2) |
Kezdeti kiadás. |
Intel Corporation. Minden jog fenntartva. Az Intel, az Intel logó és más Intel védjegyek az Intel Corporation vagy leányvállalatai védjegyei. Az Intel szavatolja, hogy FPGA és félvezető termékei az aktuális specifikációknak megfelelő teljesítményt nyújtanak az Intel szabványos garanciájának megfelelően, de fenntartja a jogot, hogy bármely terméket és szolgáltatást előzetes értesítés nélkül módosítson. Az Intel nem vállal semmilyen felelősséget vagy kötelezettséget az itt leírt információk, termékek vagy szolgáltatások alkalmazásából vagy használatából eredően, kivéve az Intel által kifejezetten írásban jóváhagyott eseteket. Az Intel ügyfeleinek azt tanácsoljuk, hogy szerezzék be az eszközspecifikációk legfrissebb verzióját, mielőtt bármilyen közzétett információra hagyatkoznának, és mielőtt megrendelnék termékeket vagy szolgáltatásokat.
- Más nevek és márkák mások tulajdonát képezhetik.
Dokumentumok / Források
![]() |
Intel FPGA programozható gyorsítókártya D5005 [pdf] Felhasználói útmutató FPGA programozható gyorsító kártya, D5005, FPGA programozható gyorsító kártya D5005, DMA gyorsító funkcionális egység |