Kadi ya Kuongeza Kasi ya Intel FPGA D5005
Kuhusu Hati hii
Hati hii inaelezea utekelezaji wa Ufikiaji wa kumbukumbu ya moja kwa moja (DMA) Utekelezaji wa Kitengo cha Utendakazi cha Kiharakisha (AFU) na jinsi ya kuunda muundo ili kuendeshwa kwenye maunzi au kwa kuiga.
Hadhira inayokusudiwa
Hadhira inayolengwa inajumuisha maunzi au wasanidi programu wanaohitaji Kitendaji cha Kiakibishaji (AF) ili kuakibisha data ya ndani katika kumbukumbu iliyounganishwa kwenye kifaa cha Intel FPGA.
Mikataba
Mikataba ya Hati
Mkataba | Maelezo |
# | Hutangulia amri inayoonyesha kwamba amri inapaswa kuingizwa kama mzizi. |
$ | Inaonyesha amri inapaswa kuingizwa kama mtumiaji. |
Fonti hii | Filemajina, amri, na maneno muhimu yamechapishwa katika fonti hii. Mistari ndefu ya amri imechapishwa katika fonti hii. Ingawa mistari mirefu ya amri inaweza kufungwa kwa mstari unaofuata, kurudi sio sehemu ya amri; usibonyeze kuingia. |
Inaonyesha maandishi ya kishika nafasi yanayoonekana kati ya mabano ya pembe lazima yabadilishwe na thamani inayofaa. Usiingize mabano ya pembe. |
Vifupisho
Vifupisho
Vifupisho | Upanuzi | Maelezo |
AF | Kazi ya Kuongeza kasi | Picha ya Kiongeza kasi cha maunzi iliyokusanywa imetekelezwa katika mantiki ya FPGA ambayo huharakisha programu. |
AFU | Kitengo cha Utendaji cha Kiongeza kasi | Kiongeza kasi cha maunzi kinatekelezwa kwa mantiki ya FPGA ambayo hupakia utendakazi wa kukokotoa kwa programu kutoka kwa CPU ili kuboresha utendakazi. |
API | Kiolesura cha Kuandaa Programu | Seti ya ufafanuzi wa utaratibu mdogo, itifaki na zana za kuunda programu za programu. |
CCI-P | Kiolesura cha Cache ya Msingi | CCI-P ni kiolesura cha kawaida ambacho AFU hutumia kuwasiliana na seva pangishi. |
DFH | Kijajuu cha Kipengele cha Kifaa | Huunda orodha iliyounganishwa ya vichwa vya vipengele ili kutoa njia pana ya kuongeza vipengele. |
iliendelea… |
Shirika la Intel. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyofafanuliwa hapa isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Vifupisho | Upanuzi | Maelezo |
FIM | Meneja wa Kiolesura cha FPGA | Vifaa vya FPGA vilivyo na Kitengo cha Kiolesura cha FPGA (FIU) na miingiliano ya nje ya kumbukumbu, mitandao, n.k.
Kiolesura cha Kazi (AF) huingiliana na FIM wakati wa kukimbia. |
FIU | Kitengo cha Kiolesura cha FPGA | FIU ni safu ya kiolesura cha jukwaa ambayo hufanya kazi kama daraja kati ya violesura vya majukwaa kama vile PCIe*, UPI na violesura vya upande wa AFU kama vile CCI-P. |
MPF | Kiwanda cha Sifa za Kumbukumbu | MPF ni Kizuizi cha Msingi cha Kujenga (BBB) ambacho AFUs zinaweza kutumia kutoa shughuli za kuunda trafiki ya CCI-P kwa miamala na FIU. |
Kamusi ya Kuongeza Kasi
Rafu ya Kuongeza Kasi ya Intel® Xeon® CPU yenye Kamusi ya FPGAs
Muda | Ufupisho | Maelezo |
Intel® Acceleration Stack ya Intel Xeon® CPU yenye FPGAs | Rafu ya kuongeza kasi | Mkusanyiko wa programu, programu dhibiti, na zana ambazo hutoa muunganisho ulioboreshwa wa utendakazi kati ya Intel FPGA na kichakataji cha Intel Xeon. |
Kadi ya Kuongeza kasi ya Intel FPGA | Intel FPGA PAC | Kadi ya kuongeza kasi ya PCIe FPGA.
Ina Kidhibiti cha Kiolesura cha FPGA (FIM) ambacho huoanishwa na kichakataji cha Intel Xeon juu ya basi ya PCIe. |
- Mwongozo wa Mtumiaji wa Kitengo cha Kiongeza kasi cha DMA: Kadi ya Kuongeza kasi ya Intel FPGA D5005
Maelezo ya DMA AFU
Utangulizi
Ufikiaji wa Kumbukumbu ya Moja kwa Moja (DMA) AFU example inaonyesha jinsi ya kudhibiti uhamishaji wa kumbukumbu kati ya kichakataji mwenyeji na FPGA. Unaweza kuunganisha DMA AFU kwenye muundo wako ili kuhamisha data kati ya kumbukumbu ya mwenyeji na kumbukumbu ya ndani ya FPGA. DMA AFU inajumuisha moduli ndogo zifuatazo:
- Jengo la Msingi la Kiwanda cha Sifa za Kumbukumbu (MPF) (BBB)
- Kiolesura cha Akiba ya Msingi (CCI-P) hadi Adapta ya Avalon® Memory-Mapped (Avalon-MM)
- Mfumo wa Mtihani wa DMA ambao una DMA BBB
Moduli hizi ndogo zimefafanuliwa kwa undani zaidi katika mada ya Vipengee vya Vifaa vya DMA AFU hapa chini.
Habari Zinazohusiana
- Vipengele vya maunzi ya DMA AFU kwenye ukurasa wa 6
- Maelezo ya Avalon Interface
Kwa maelezo zaidi kuhusu itifaki ya Avalon-MM, ikijumuisha michoro ya saa ya shughuli za kusoma na kuandika.
Kifurushi cha Programu cha DMA AFU
Intel Acceleration Stack ya Intel Xeon CPU yenye kifurushi cha FPGAs file (*.tar.gz), inajumuisha DMA AFU example. Ex huyuample hutoa kiendeshi cha nafasi ya mtumiaji. Programu-tumizi ya seva pangishi hutumia kiendeshi hiki hivi kwamba DMA huhamisha data kati ya seva pangishi na kumbukumbu ya FPGA. Nambari za jozi za maunzi, vyanzo, na kiendeshi cha nafasi ya mtumiaji zinapatikana katika saraka ifuatayo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Kabla ya kufanya majaribio na DMA AFU, lazima usakinishe kifurushi cha programu ya Open Programmable Acceleration Engine (OPAE). Rejelea Kusakinisha Kifurushi cha Programu cha OPAE katika Mwongozo wa Kuanza Haraka wa Rafu ya Intel kwa Intel FPGA Kadi ya Kuongeza Kasi Inayoweza Kupangwa D5005 kwa maagizo ya usakinishaji. Mwongozo huu wa Kuanza Haraka pia unajumuisha maelezo ya msingi kuhusu Injini ya Kuongeza Kasi Inayoweza Kuratibiwa (OPAE) na kusanidi AFU. Baada ya kusakinisha kifurushi cha programu ya Open Programmable Acceleration Engine (OPAE), kamaample host application na kiendeshi cha nafasi ya mtumiaji cha DMA AFU zinapatikana katika saraka ifuatayo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Kuendesha sampna utumaji programu, fpga_dma_test kwenye maunzi yako ya Intel FPGA PAC D5005, rejelea hatua katika sehemu ya Kuendesha DMA AFU Ex.ample. Shirika la Intel. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyoelezwa humu isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Habari Zinazohusiana
- Mwongozo wa Kuanza Haraka kwa Rafu ya Intel kwa Kadi ya Kuongeza Kasi Inayoweza Kupangwa ya Intel FPGA D5005
- Inasakinisha Kifurushi cha Programu cha OPAE
Vipengele vya maunzi ya DMA AFU
DMA AFU inaingiliana na Kitengo cha Kiolesura cha FPGA (FIU) na kumbukumbu ya FPGA. Rejelea Karatasi ya Data ya Kiolesura cha FPGA kwa Intel FPGA Kadi ya Kuongeza Kasi Inayoweza Kupangwa D5005 kwa maelezo ya kina ya kumbukumbu ya FPGA. Maunzi yanayopatikana kwa sasa yanaamuru usanidi huu wa kumbukumbu. Vifaa vya baadaye vinaweza kusaidia usanidi tofauti wa kumbukumbu. Unaweza kutumia DMA AFU kunakili data kati ya chanzo kifuatacho na maeneo lengwa:
- Seva kwa kumbukumbu ya FPGA ya kifaa
- Kumbukumbu ya FPGA ya kifaa kwa seva pangishi
Mfumo wa Mbuni wa Mfumo, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys hutekeleza sehemu kubwa ya DMA
- AFU. Sehemu ya DMA AFU inayotekelezwa katika mfumo wa Mbunifu wa Jukwaa inaweza kupatikana katika zifuatazo
eneo:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Unaweza kupata DMA BBB katika eneo lifuatalo:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Mwongozo wa Mtumiaji wa Kitengo cha Kiongeza kasi cha DMA: Kadi ya Kuongeza kasi ya Intel FPGA D5005
Mchoro wa Kizuizi cha Vifaa vya DMA AFU
DMA AFU inajumuisha moduli zifuatazo za ndani ili kuunganishwa na Kitengo cha Kiolesura cha FPGA (FIU):
- Mantiki ya Kisimbuaji kilicho na Ramani ya IO (MMIO): hutambua miamala ya kusoma na kuandika ya MMIO na kuwatenganisha na kituo 0 cha CCI-P RX wanachowasili. Hii inahakikisha kuwa trafiki ya MMIO kamwe haifikii MPF BBB na inahudumiwa na chaneli huru ya amri ya MMIO.
- Kiwanda cha Sifa za Kumbukumbu (MPF): Moduli hii inahakikisha kuwa majibu yalisomwa kutoka kwa marejesho ya DMA kwa mpangilio ambayo yalitolewa. Itifaki ya Avalon-MM inahitaji majibu yaliyosomwa ili kurudi kwa mpangilio sahihi.
- CCI-P hadi Adapta ya Avalon-MM: Sehemu hii inatafsiri kati ya shughuli za CCI-P na Avalon-MM, kama ifuatavyo:
- CCI-P hadi Adapta ya Avalon-MMIO: Njia hii inatafsiri miamala ya CCI-P MMIO kuwa miamala ya Avalon-MM.
- Adapta ya Avalon hadi CCI-P Host: Njia hizi huunda njia tofauti za kusoma-tu na kuandika pekee kwa DMA kufikia kumbukumbu ya mwenyeji.
- Mfumo wa Jaribio la DMA: Sehemu hii hutumika kama mfungaji kuzunguka DMA BBB ili kuwafichua wakuu wa DMA kwa mantiki nyingine katika AFU. Inatoa kiolesura kati ya DMA BBB na CCI-P hadi Adapta ya Avalon. Pia hutoa kiolesura kati ya DMA BBB na benki za ndani za FPGA SDRAM.
Habari Zinazohusiana
Laha ya Data ya Kiolesura cha FPGA ya Kadi ya Kuongeza Kasi Inayoweza Kupangwa ya Intel FPGA D5005
Mfumo wa Mtihani wa DMA
Mfumo wa majaribio wa DMA huunganisha DMA BBB na muundo mwingine wa FPGA ikijumuisha urekebishaji wa CCI-P na kumbukumbu ya ndani ya FPGA.
Mchoro wa Kizuizi cha Mfumo wa Mtihani wa DMA
Mchoro huu wa kuzuia unaonyesha mambo ya ndani ya mfumo wa majaribio wa DMA. Mfumo wa majaribio wa DMA umeonyeshwa kama kizuizi cha monolithic kwenye Mchoro 1 kwenye ukurasa wa 7.
Mfumo wa majaribio wa DMA unajumuisha moduli zifuatazo za ndani:
- Daraja la Ufikiaji Mbali/Daraja la Bomba: Daraja la bomba lenye utulivu unaoweza kurekebishwa pamoja na kudhibiti topolojia na kuboresha muundo wa Fmax.
- Kichwa cha Kifaa cha DMA AFU (DFH): Hii ni DFH ya DMA AFU. DFH hii inaelekeza kwa DFH inayofuata iliyo katika offset 0x100 (DMA BBB DFH).
- Null DFH: Kipengele hiki kinakomesha orodha iliyounganishwa ya DFH. Ukiongeza DMA BBB zaidi kwenye muundo, hakikisha kuwa anwani ya msingi ya DFH iko mwishoni mwa orodha iliyounganishwa ya DFH.
- Majengo ya Msingi ya MA (BBB): Kizuizi hiki huhamisha data kati ya seva pangishi na kumbukumbu ya ndani ya FPGA. Pia hupata kumbukumbu ya mwenyeji ili kufikia minyororo ya maelezo.
DMA BBB
Mfumo mdogo wa DMA BBB huhamisha data kutoka kwa chanzo hadi anwani lengwa kwa kutumia miamala ya Avalon-MM. Dereva wa DMA hudhibiti DMA BBB kwa kufikia rejista ya udhibiti na hali ya vipengele mbalimbali ndani ya mfumo. Kiendeshaji cha DMA pia hudhibiti DMA BBB kwa kutumia kumbukumbu iliyoshirikiwa ili kuwasiliana na maelezo ya uhamishaji. DMA BBB hupata data katika kumbukumbu ya FPGA kwa kukabiliana na 0x0. DMA BBB hufikia data na vifafanuzi katika kumbukumbu ya mwenyeji kwa kukabiliana na 0x1_0000_0000_0000.
Mchoro wa Kizuizi cha Mbuni wa Jukwaa la DMA BBB
Mchoro huu wa kuzuia haujumuishi baadhi ya viini vya IP vya Bridge Bridge.
Mwongozo wa Mtumiaji wa Kitengo cha Kiongeza kasi cha DMA: Kadi ya Kuongeza kasi ya Intel FPGA D5005
Maelezo ya DMA AFU
Vipengee katika Mbuni wa Jukwaa la DMA BBB hutekeleza kazi zifuatazo:
- Daraja la Mbali/Daraja la Bomba: Daraja la bomba lenye utulivu unaoweza kurekebishwa pamoja na kudhibiti topolojia na kuboresha muundo wa Fmax.
- MA BBB DFH: Hiki ni kichwa cha kipengele cha kifaa cha DMA BBB. DFH hii inaelekeza kwa DFH inayofuata iliyoko kwenye offset 0x100 (Null DFH).
- Mtazamo wa mbele: Anawajibika kwa kuleta vifafanuzi na kuzihamisha kwa Kisambazaji. Uhamisho wa DMA unapokamilisha eneo la mbele hupokea uundaji wa hali kutoka kwa Kisambazaji na kubatilisha kifafanuzi katika kumbukumbu ya mwenyeji.
- Kisambazaji: Kizuizi hiki huratibu DMA kuhamisha maombi kwa Mwalimu wa Kusoma na Kuandika.
- Soma Mwalimu: Kizuizi hiki kina jukumu la kusoma data kutoka kwa seva pangishi au kumbukumbu ya ndani ya FPGA na kuituma kama mtiririko wa data kwa Writing Master.
- Andika Mwalimu: Kizuizi hiki kinawajibika kupokea data ya kutiririsha kutoka kwa Read Master na kuandika yaliyomo ili kupangisha au kumbukumbu ya ndani ya FPGA.
Sajili Ramani na Nafasi za Anwani
DMA AFU inasaidia kumbukumbu mbili views: DMA view na mwenyeji view. Sehemu ya DMA view inasaidia nafasi ya anwani ya 49-bit. Nusu ya chini ya DMA view ramani kwa kumbukumbu ya ndani ya FPGA. Nusu ya juu ya DMA view ramani za kuwa mwenyeji wa kumbukumbu. mwenyeji view inajumuisha rejista zote zinazoweza kufikiwa kupitia ufikiaji wa MMIO kama vile majedwali ya DFH, na rejista za udhibiti/hadhi za viini mbalimbali vya IP vinavyotumika ndani ya DMA AFU. MMIO husajili katika DMA BBB na AFU inasaidia ufikiaji wa biti 32 na 64. DMA AFU haitumii ufikiaji wa 512-bit MMIO. Mifikio ya rejista za Dispatcher ndani ya DMA BBB lazima iwe biti 32 (Maelezo ya mbele yanatekeleza rejista za biti 64).
Ramani ya Usajili ya DMA AFU
Ramani ya rejista ya DMA AFU hutoa anwani kamili za maeneo yote ndani ya kitengo. Rejesta hizi ziko kwenye seva pangishi view kwa sababu ni mwenyeji pekee anayeweza kuzifikia.
Ramani ya Kumbukumbu ya DMA AFU
Vipunguzo vya Anwani ya Byte | Jina | Spin katika Bytes | Maelezo |
0x0 | DMA AFU DFH | 0x40 | Kijajuu cha kipengele cha kifaa cha DMA AFU. ID_L imewekwa kuwa 0x9081f88b8f655caa na ID_H imewekwa kuwa 0x331db30c988541ea. DMA AFU DFH imewekewa vigezo ili kuelekeza ili kukabiliana na 0x100 ili kupata DFH inayofuata (DMA BBB DFH). Si lazima urekebishe anwani ya msingi ya DMA AFU DFH kwa kuwa lazima iwe katika anwani 0x0 kama inavyofafanuliwa na vipimo vya CCIP. |
0x100 | DMA BBB | 0x100 | Hubainisha udhibiti wa DMA BBB na kiolesura cha rejista ya hali. Unaweza kurejelea ramani ya usajili ya DMA BBB kwa habari zaidi. Ndani ya DMA BBB katika kukabiliana 0 DMA BBB inajumuisha DFH yake mwenyewe. DFH hii imewekwa ili kupata DFH inayofuata katika kukabiliana na 0x100 (NULL DFH). Ukiongeza DMA BBB zaidi, ziweke 0x100 kando na uhakikishe NULL DFH inafuata DMA ya mwisho kwa 0x100. |
0x200 | DFH NULL | 0x40 | Hukomesha orodha iliyounganishwa ya DFH. ID_L imewekwa kuwa 0x90fe6aab12a0132f na ID_H imewekwa kuwa 0xda1182b1b3444e23. NULL DFH imeainishwa kuwa DFH ya mwisho katika maunzi. Kwa sababu hii NULL DFH iko kwenye anwani 0x200. Ukiongeza BBB za DMA za ziada kwenye mfumo, unahitaji kuongeza anwani ya msingi ya NULL DFH ipasavyo ili ibaki kwenye anwani ya juu zaidi. Kiendeshaji cha DMA na programu ya majaribio haitumii maunzi haya. |
Shirika la Intel. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyofafanuliwa hapa isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Sajili Ramani na Nafasi za Anwani
Ramani ya Kumbukumbu ya DMA BBB
Anwani zifuatazo za baiti ni za kukabiliana na jamaa kutoka kwa anwani ya msingi ya DMA BBB katika mfumo wa DMA AFU (0x100).
Vipunguzo vya Anwani ya Byte | Jina | Spin katika Bytes | Maelezo |
0x0 | DMA BBB DFH | 0x40 | Kijajuu cha kipengele cha kifaa cha DMA AFU. ID_L imewekwa kuwa 0xa9149a35bace01ea na ID_H imewekwa kuwa 0xef82def7f6ec40fc . DMA BBB DFH imeainishwa ili kuelekeza hadi 0x100 kwa urekebishaji unaofuata wa DFH. Kipengele hiki kinachofuata kinaweza kuwa DMA BBB nyingine, DFH nyingine (haijajumuishwa katika muundo huu), au NULL DFH. |
0x40 | Msambazaji | 0x40 | Kudhibiti mlango kwa dispatcher. Kiendeshaji cha DMA hutumia eneo hili kudhibiti DMA au kuuliza hali yake. |
0x80 | Mwelekeo wa mbele wa Maelezo | 0x40 | Mazingira ya mbele ya kifafanuzi ni kipengele maalum ambacho husoma vifafanuzi kutoka kwenye kumbukumbu ya seva pangishi na kubatilisha kifafanuzi wakati uhamishaji wa DMA unakamilika. Dereva huelekeza sehemu ya mbele ambapo kifafanuzi cha kwanza huishi katika kumbukumbu ya mwenyeji na kisha maunzi ya mbele huwasiliana na kiendeshi ingawa vielezi vilivyohifadhiwa kwenye kumbukumbu ya mwenyeji. |
Nafasi ya Anwani ya DMA AFU
Mwenyeji anaweza kufikia rejista zilizoorodheshwa katika Jedwali la 4 kwenye ukurasa wa 12 na Jedwali la 5 kwenye ukurasa wa 13. Mfumo mdogo wa DMA BBB unaweza kufikia nafasi kamili ya anwani ya 49-bit. Nusu ya chini ya nafasi hii ya anwani inajumuisha kumbukumbu za ndani za FPGA. Nusu ya juu ya nafasi hii ya anwani inajumuisha kumbukumbu ya anwani ya mpangishi 48. Kielelezo kifuatacho kinaonyesha mwenyeji na DMA views ya kumbukumbu.
DMA AFU na Mwenyeji Views ya Kumbukumbu
Orodha ya Kijajuu cha Kifaa Kilichounganishwa
Muundo wa DMA AFU example ina vichwa vitatu vya vipengele vya kifaa (DFH) vinavyounda orodha iliyounganishwa. Orodha hii iliyounganishwa inaruhusu sample maombi ya kutambua DMA AFU pamoja na dereva kutambua DMA BBB. Orodha ya DFH inajumuisha NULL DFH mwishoni. Ujumuishaji wa DFH batili mwishoni mwa orodha iliyounganishwa hukuruhusu kuongeza DMA BBB zaidi kwenye muundo wako. Unahitaji tu kuhamisha NULL DFH hadi anwani baada ya BBB zingine. Kila DMA BBB inatarajia DFH inayofuata kupatikana baiti 0x100 kutoka kwa anwani ya msingi ya BBB. Kielelezo kifuatacho kinaonyesha orodha iliyounganishwa ya muundo wa zamani wa DMA AFUample.
Sajili Ramani na Nafasi za Anwani
Mnyororo wa Kichwa cha Kichwa cha Kifaa cha DMA AFU (DFH).
Mfano wa Kuandaa Programu
DMA AFU inajumuisha kiendeshi cha programu ambacho unaweza kutumia katika programu-tumizi yako ya mwenyeji. Fpga_dma.cpp na fpga_dma.h files ziko katika eneo lifuatalo tekeleza kiendesha programu:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Kiendeshi hiki kinaauni vitendaji vifuatavyo:
API | Maelezo |
fpgaCountDMChannels | Huchanganua msururu wa vipengele vya kifaa kwa DMA BBB na kuhesabu vituo vyote vinavyopatikana. |
fpgaDMAFungua | Hufungua mpini wa kituo cha DMA. |
fpgaDMACFunga | Hufunga mpini wa kituo cha DMA. |
fpgaDMATransferInit | Huanzisha kipengee kinachowakilisha uhamishaji wa DMA. |
fpgaDMATransferReset | Huweka upya kipengee cha uhamishaji cha DMA kuwa thamani chaguomsingi. |
fpgaDMATransferDestroy | Huharibu kipengele cha uhamishaji wa DMA. |
fpgaDMATransferSetSrc | Huweka anwani ya chanzo ya uhamishaji. Anwani hii lazima ipangiliwe kwa baiti 64. |
fpgaDMATransferSetDst | Huweka anwani lengwa la uhamisho. Anwani hii lazima ipangiliwe kwa baiti 64. |
fpgaDMATransferSetLen | Huweka urefu wa uhamishaji katika baiti. Kwa uhamishaji usio wa pakiti, lazima uweke urefu wa uhamishaji kuwa nyingi ya baiti 64. Kwa uhamishaji wa pakiti, hii sio hitaji. |
fpgaDMATransferSetTransferType | Inaweka aina ya uhamishaji. Maadili ya kisheria ni:
• HOST_MM_TO_FPGA_MM = TX (Mpangishi wa AFU) • FPGA_MM_TO_HOST_MM = RX (AFU kwa mwenyeji) |
fpgaDMATransferSetTransferCallback | Husajili kurudishwa nyuma kwa arifa baada ya kukamilika kwa uhamishaji usiolingana. Ukibainisha urejeshaji wa simu, fpgaDMATransfer inarudi mara moja (uhamisho usiolingana).
Usipobainisha urejeshaji wa simu, fpgaDMATransfer inarudi baada ya uhamishaji kukamilika (sawazisha/kuzuia uhamisho). |
fpgaDMATransferSetLast | Huonyesha uhamishaji wa mwisho ili DMA ianze kuchakata uhamishaji ulioletwa awali. Thamani chaguo-msingi ni uhamishaji 64 kwenye bomba kabla ya DMA kuanza kufanya kazi kwenye uhamishaji. |
fpgaDMATransfer | Hufanya uhamisho wa DMA. |
Kwa habari zaidi kuhusu API, hoja za pembejeo, na towe, rejelea kichwa file iko $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyofafanuliwa hapa isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. Majina na chapa zingine zinaweza kudaiwa kama mali ya wengine.
Mfano wa Kuandaa Programu
Ili kujua zaidi kuhusu modeli ya matumizi ya kiendesha programu, rejelea README file iko katika $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Kuendesha DMA AFU Example
Kabla ya kuanza:
- Unapaswa kuwa ukoo na examples katika Mwongozo wa Kuanza Haraka wa Intel FPGA Kadi ya Kuongeza Kasi Inayowezekana ya Intel FPGA D5005.
- Lazima ueleze tofauti ya mazingira. Tofauti ya mazingira inategemea toleo la Intel Acceleration Stack unalotumia:
- Kwa toleo la sasa, weka utofauti wa mazingira kuwa $OPAE_PLATFORM_ROOT
- Lazima usakinishe maktaba ya Intel Threading Building Blocks (TBB) kwani kiendeshi cha DMA hutegemea.
- Lazima pia usanidi kurasa mbili kubwa za GB 1 ili kuendesha sampmaombi. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
Tekeleza hatua zifuatazo ili kupakua mkondo kidogo wa Kazi ya Kuongeza kasi ya DMA (AF), ili kuunda programu na kiendeshi, na kuendesha muundo wa zamani.ample:
- Badilisha kwa programu ya DMA na saraka ya kiendeshi: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Jenga dereva na utumizi: tengeneza
- Pakua mkondo kidogo wa DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Tekeleza programu-pangishi kuandika MB 100 katika sehemu za MB 1 kutoka kumbukumbu ya seva pangishi hadi kumbukumbu ya kifaa cha FPGA na uisome tena: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Habari Zinazohusiana
Mwongozo wa Kuanza Haraka kwa Rafu ya Intel kwa Intel FPGA Kadi ya Kuongeza Kasi Inayoweza Kupangwa ya D5005 Intel Corporation. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyoelezwa humu isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Kukusanya DMA AFU Example
Ili kutoa mazingira ya usanifu wa kuunda AF, tumia afu_synth_setup amri kama ifuatayo:
- Badilisha hadi DMA AFU sampsaraka ya: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Tengeneza saraka ya muundo wa muundo: afu_synth_setup -source hw/rtl/filelist.txt build_synth
- Kutoka kwa saraka ya muundo wa usanisi inayozalishwa na afu_synth_setup, weka amri zifuatazo kutoka kwa dirisha la terminal ili kutoa AF kwa jukwaa la maunzi lengwa: cd build_synth run.sh Hati ya kizazi cha run.sh AF huunda picha ya AF kwa msingi sawa. filejina kama usanidi wa jukwaa la AFU file (.json) yenye kiambishi tamati cha .gbs mahali:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyoelezwa humu isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Kuiga AFU Example
Intel inapendekeza urejelee Mwongozo wa Kuanza Haraka wa Intel Accelerator Unit (AFU) Uigaji Mazingira (ASE) ili Intel FPGA PAC yako ifahamu kuiga wa zamani sawa.amples na kusanidi mazingira yako. Kabla ya kuendelea kupitia hatua zifuatazo, thibitisha kuwa utofauti wa mazingira wa OPAE_PLATFORM_ROOT umewekwa kwenye saraka ya usakinishaji ya OPAE SDK. Kamilisha hatua zifuatazo ili kusanidi kiigaji cha vifaa vya DMA AFU:
- Badilisha hadi DMA AFU sampkatika saraka: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Unda mazingira ya ASE katika saraka mpya na uisanidi kwa kuiga AFU: afu_sim_setup -source hw/rtl/filelist.txt build_ase_dir
- Badilisha kwa saraka ya ujenzi ya ASE: cd build_ase_dir
- Jenga dereva na utumizi: tengeneza
- Tengeneza simulation: tengeneza sim
Sample pato kutoka kwa simulator ya vifaa:
[SIM] ** TAZAMA : KABLA ya kuendesha programu-tumizi ** [SIM] Weka env(ASE_WORKDIR) kwenye terminal ambapo programu itaendeshwa (nakili-na-kubandika) => [SIM] $SHELL | Endesha:[SIM] ———+—————————————————— [SIM] bash/zsh | export 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] Kwa $SHELL nyingine yoyote, wasiliana na msimamizi wako wa Linux [SIM] [SIM] Tayari kwa kuiga… [SIM] Bonyeza CTRL-C ili kufunga kiigaji…Kamilisha hatua zifuatazo ili kukusanya na kutekeleza programu ya DMA AFU katika mazingira ya kuiga:
- Fungua dirisha jipya la terminal.
- Badilisha saraka iwe: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Shirika la Intel. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyofafanuliwa hapa isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Kuiga AFU Example
- Nakili kamba ya usanidi wa mazingira (chagua kamba inayofaa kwa ganda lako) kutoka kwa hatua zilizo hapo juu katika uigaji wa maunzi hadi dirisha la terminal. Tazama mistari ifuatayo kwenye sample pato kutoka kwa simulator ya vifaa. [SIM] bash/zsh | export 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
- Unganisha programu: $fanya USE_ASE=1
- Tekeleza programu-pangishi kuandika 4 KB katika sehemu za KB 1 kutoka kwa kumbukumbu ya seva pangishi kurudi kwenye kumbukumbu ya kifaa cha FPGA katika hali ya kurudi nyuma: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Habari Zinazohusiana
Intel Accelerator Functional Unit (AFU) Mazingira ya Kuiga (ASE) Mwongozo wa Mtumiaji wa Anza kwa Haraka
Uboreshaji kwa Utendaji Bora wa DMA
Utekelezaji wa uboreshaji wa NUMA (ufikiaji wa kumbukumbu usio sare) katika fpga_dma_test.cpp huruhusu kichakataji kufikia kumbukumbu yake ya ndani kwa haraka zaidi kuliko kufikia kumbukumbu isiyo ya ndani (kumbukumbu ya ndani hadi kichakataji kingine). Usanidi wa kawaida wa NUMA umeonyeshwa kwenye mchoro hapa chini. Ufikiaji wa ndani unawakilisha ufikiaji kutoka kwa msingi hadi kumbukumbu ya ndani hadi msingi sawa. Ufikiaji wa mbali unaonyesha njia iliyochukuliwa wakati msingi kwenye Node 0 unapata kumbukumbu ambayo inakaa kwenye kumbukumbu ya ndani hadi Node 1.
Usanidi wa Kawaida wa NUMA
Tumia nambari ifuatayo kutekeleza uboreshaji wa NUMA katika programu yako ya jaribio:
// Weka mshikamano unaofaa ikiwa utaombwa ikiwa (cpu_affinity || memory_affinity) {unsigned dom = 0, basi = 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 *) & basi);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_ER,RgapTO_device; // Tafuta kifaa kutoka topolojia hwloc_topolojia_t; hwloc_topology_init(&topolojia); hwloc_topology_set_flags(topolojia, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyoelezwa humu isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma. *Majina na chapa zingine zinaweza kudaiwa kuwa mali ya wengine.
Uboreshaji kwa Utendaji Bora wa DMA
hwloc_topolojia_load(topolojia); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topolojia, dom, basi, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topolojia, obj); #kama (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 ni %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET ni %s\n”, str);#endif if (uhusiano_wa_kumbukumbu) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMB_MEMB_GRAMEB_MEIND_GRAMEB,HWLOC_MEMB,HWLOC_MEMB, HWLOC_MEMB, HWLOC_MEMB, HWLOC_MEMBATE_GRAMEH_GREA_MEMB, #else retval =hwloc_set_membind_nodeset(topology, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } ikiwa (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); }}
Kumbukumbu za Mwongozo wa Mtumiaji wa Kitengo cha Kiongeza kasi cha DMA
Toleo la Rafu ya Kuongeza Kasi ya Intel | Mwongozo wa Mtumiaji (PDF) |
2.0 | Mwongozo wa Mtumiaji wa Kitengo cha Kuongeza kasi cha DMA (AFU). |
Historia ya Marekebisho ya Hati kwa Mwongozo wa Mtumiaji wa Kitengo cha Utendaji cha Kiharakisha cha DMA
Toleo la Hati |
Kuongeza kasi ya Intel Toleo la Rafu |
Mabadiliko |
2020.08.03 |
2.0.1 (inayoungwa mkono na Intel
Toleo la Quartus® Prime Pro 19.2) |
Imesahihisha picha ya AF file jina katika sehemu Kukusanya DMA AFU Example. |
2020.04.17 |
2.0.1 (inayoungwa mkono na Intel
Toleo la Quartus Prime Pro 19.2) |
Ilisahihisha taarifa katika Hadhira inayokusudiwa sehemu. |
2020.02.20 |
2.0.1 (inayoungwa mkono na Intel
Toleo la Quartus Prime Pro 19.2) |
Chapa isiyobadilika. |
2019.11.04 |
2.0.1 (inayoungwa mkono na Intel Toleo la Quartus Prime Pro 19.2) |
• Ilibadilisha fpgaconf na fpgasupdate wakati wa kusanidi FPGA na kuunda AFU katika sehemu. Kuendesha DMA AFU Example.
• Manukuu yaliyoongezwa Kadi ya Kuongeza Kasi ya Intel FPGA D5005 kwa kichwa cha hati. • Tofauti ya mazingira iliyoongezwa $OPAE_PLATFORM_ROOT. • Sehemu iliyorekebishwa Mfano wa Kuandaa Programu kwa marekebisho madogo. • Imeongeza sehemu mpya Kukusanya DMA AFU Example. • Sehemu iliyorekebishwa Uboreshaji kwa Utendaji Bora wa DMA kwa marekebisho madogo. |
2019.08.05 |
2.0 (inayoungwa mkono na Intel
Toleo la Quartus Prime Pro 18.1.2) |
Kutolewa kwa awali. |
Shirika la Intel. Haki zote zimehifadhiwa. Intel, nembo ya Intel, na alama zingine za Intel ni chapa za biashara za Intel Corporation au kampuni zake tanzu. Intel inathibitisha utendakazi wa FPGA yake na bidhaa za semiconductor kwa vipimo vya sasa kwa mujibu wa udhamini wa kawaida wa Intel, lakini inahifadhi haki ya kufanya mabadiliko kwa bidhaa na huduma zozote wakati wowote bila taarifa. Intel haichukui jukumu au dhima yoyote inayotokana na maombi au matumizi ya taarifa yoyote, bidhaa, au huduma iliyofafanuliwa hapa isipokuwa kama ilivyokubaliwa kwa maandishi na Intel. Wateja wa Intel wanashauriwa kupata toleo jipya zaidi la vipimo vya kifaa kabla ya kutegemea taarifa yoyote iliyochapishwa na kabla ya kuagiza bidhaa au huduma.
- Majina na chapa zingine zinaweza kudaiwa kama mali ya wengine.
Nyaraka / Rasilimali
![]() |
Kadi ya Kuongeza Kasi ya Intel FPGA D5005 [pdf] Mwongozo wa Mtumiaji FPGA Programmable Acceleration Card, D5005, FPGA Programmable Acceleration Card D5005, DMA Accelerator Unital Functional Unit |