Intel-logo

Kaadị ngwa ngwa ngwa ngwa nke Intel FPGA D5005

Intel.-FPGA-Programmable-Acceleration-Kaadị-D5005-ngwaahịa

Banyere akwụkwọ a

Akwụkwọ a na-akọwa mmejuputa ohere ebe nchekwa ozugbo (DMA) Accelerator Functional Unit (AFU) yana otu esi arụ ọrụ iji rụọ ọrụ na ngwaike ma ọ bụ na simulation.

Ndị na-ege ntị e bu n'obi

Ndị na-ege ntị e bu n'obi gụnyere ngwaike ma ọ bụ ndị nrụpụta ngwanrọ chọrọ Ọrụ Accelerator (AF) iji chekwaa data mpaghara na ebe nchekwa ejikọrọ na ngwaọrụ Intel FPGA.

Mgbakọ

Mgbakọ akwụkwọ

Mgbakọ Nkọwa
# Buru iwu na-egosi na a ga-etinye iwu ahụ ka mgbọrọgwụ.
$ Na-egosi na a ga-etinye iwu ka onye ọrụ.
Nke a font FileA na-ebipụta aha, iwu na mkpụrụokwu na mkpụrụedemede a. A na-ebipụta ahịrị iwu ogologo na mkpụrụedemede a. Ọ bụ ezie na ahịrị iwu ogologo nwere ike kechie na ahịrị na-esote, nloghachi abụghị akụkụ nke iwu ahụ; adịghị pịa tinye.
Na-egosi ederede idobe nke pụtara n'etiti brackets n'akuku ga-eji uru dabara adaba dochie ya. Abanyela brackets n'akuku.

Mkpebiri

Mkpebiri

Mkpebiri Mgbasawanye Nkọwa
AF Ọrụ ngwa ngwa Onyonyo ngwa ngwa ngwa ngwa achịkọtara etinyere na mgbagha FPGA nke na-eme ngwa ngwa.
AFU Ngalaba na-arụ ngwa ngwa Akụrụngwa ngwaike emejuputa atumatu na FPGA mgbako nke na-ebuli ọrụ mgbako maka ngwa sitere na CPU iji kwalite arụmọrụ.
API Ngwa mmemme Interface Otu nkọwa nke subroutine, protocol, na ngwa ọrụ maka iwulite ngwa ngwanrọ.
CCI-P Interface cache isi CCI-P bụ ọkọlọtọ interface AFU na-eji na-ekwurịta okwu na onye ọbịa.
DFH Isi ihe njirimara ngwaọrụ Na-emepụta ndepụta ejikọrọ nke nkụnye eji isi mee iji nye ụzọ mgbakwụnye atụmatụ.
gara n'ihu…

Ụlọ ọrụ Intel. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Mkpebiri Mgbasawanye Nkọwa
FIM Onye njikwa interface FPGA Akụrụngwa FPGA nwere FPGA Interface Unit (FIU) na oghere mpụga maka ebe nchekwa, ịkparịta ụka n'Ịntanet, wdg.

Ọrụ Accelerator (AF) na FIM na-emekọrịta ihe n'oge ọsọ.

FIU Ngalaba Interface FPGA FIU bụ ikpo okwu interface oyi akwa nke na-eme dị ka àkwà mmiri n'etiti ikpo okwu interfaces dị ka PCIe *, UPI na AFU-n'akụkụ interfaces dị ka CCI-P.
MPF Ụlọ ọrụ Njirimara ebe nchekwa MPF bụ Basic Building Block (BBB) ​​nke AFU nwere ike iji nye ọrụ nhazi okporo ụzọ CCI-P maka azụmahịa na FIU.

Nkọwa okwu ngwa ngwa

Stack osooso maka Intel® Xeon® CPU nwere nkọwa nkọwa FPGA

Oge Mbiri Nkọwa
Stack Intel® Acceleration maka Intel Xeon® CPU nwere FPGA Ngwunye osooso Nchịkọta sọftụwia, ngwa ngwa, na ngwa ọrụ na-enye njikọ kachasị arụ ọrụ n'etiti Intel FPGA na ihe nrụpụta Intel Xeon.
Kaadị ngwa ngwa ngwa ngwa nke Intel FPGA Intel FPGA PAC kaadị PCIe FPGA ngwa ngwa.

Nwere FPGA Interface Manager (FIM) nke jikọtara ya na ihe nrụpụta Intel Xeon n'elu bọs PCIe.

  • Ntuziaka onye ọrụ nke otu DMA Accelerator na-arụ ọrụ: Kaadị nkwalite mmemme Intel FPGA D5005

Nkọwa DMA AFU

Okwu mmalite

The Direct Memory Access (DMA) AFU example na-egosi ka esi jikwaa ebe nchekwa na-enyefe n'etiti host processor na FPGA. Ị nwere ike itinye DMA AFU n'ime imewe gị iji bugharịa data n'etiti ebe nchekwa onye ọbịa na ebe nchekwa mpaghara FPGA. DMA AFU nwere submodules ndị a:

  • Ụlọ ọrụ Ngwongwo Nchekwa (MPF) Ngwongwo Ihe Nrụpụta (BBB)
  • Interface Cache Core (CCI-P) gaa na nkwụnye ebe nchekwa Avalon® ebe nchekwa (Avalon-MM)
  • Sistemụ ule DMA nke nwere DMA BBB

A kọwapụtara submodules ndị a n'ụzọ zuru ezu na isiokwu DMA AFU Hardware Components n'okpuru.

Ozi metụtara

  • Ngwa ngwaike DMA AFU na ibe 6
  • Nkọwapụta Interface Avalon

Maka ozi ndị ọzọ gbasara ụkpụrụ Avalon-MM, gụnyere eserese oge maka ịgụ na ide azụmahịa.

Ihe ngwugwu ngwanrọ DMA AFU

Stack Acceleration Intel maka Intel Xeon CPU nwere ngwugwu FPGA file (*.tar.gz), gụnyere DMA AFU example. Nke a example na-enye onye ọkwọ ụgbọ ala ohere ọrụ. Ngwa nnabata na-eji ọkwọ ụgbọ ala a nke na DMA na-ebugharị data n'etiti onye ọbịa na ebe nchekwa FPGA. ọnụọgụ abụọ ngwaike, isi mmalite na ọkwọ ụgbọ ala onye ọrụ dị na ndekọ na-esonụ: $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Tupu ịnwale DMA AFU, ị ga-etinyerịrị ngwugwu ngwanrọ Open Programmable Acceleration Engine (OPAE). Rụtụ aka na ịwụnye ngwugwu sọftụwia OPAE na ntuziaka mmalite ngwa ngwa Intel Acceleration Stack maka Intel FPGA Programmable Acceleration Card D5005 maka ntuziaka nwụnye. Ntuziaka mmalite ngwa ngwa a tinyekwara ozi bụ isi gbasara Open Programmable Acceleration Engine (OPAE) yana ịhazi AFU. Mgbe ị wụnye ngwugwu ngwanrọ Open Programmable Acceleration Engine (OPAE), dịkaampngwa le ọbịa na onye ọkwọ ụgbọ ala DMA AFU dị na ndekọ na-esonụ: $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Iji gbaa sample host ngwa, fpga_dma_test na ngwaike Intel FPGA PAC D5005 gị, rụtụ aka na usoro dị na ngalaba Na-agba ọsọ DMA AFU Ex.ample. Ụlọ ọrụ Intel. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Ozi metụtara

  • Ntuziaka mmalite ngwa ngwa nke Intel Acceleration Stack maka Intel FPGA Ngwa ngwa ngwa Kaadị D5005
  • Ịwụnye ngwugwu ngwanrọ OPAE

Ngwa ngwaike DMA AFU

Oghere DMA AFU nwere FPGA Interface Unit (FIU) na ebe nchekwa FPGA. Rụtụ aka na mpempe akwụkwọ data njikwa FPGA Interface maka Intel FPGA Programmable Acceleration Card D5005 maka nkọwa zuru ezu nke ebe nchekwa FPGA. Ngwaike dị ugbu a na-ekpebi nhazi ebe nchekwa a. Ngwaike n'ọdịnihu nwere ike ịkwado nhazi ebe nchekwa dị iche iche. Ị nwere ike iji DMA AFU idetu data n'etiti ebe ndị a na ebe ị ga-aga:

  • Onye ọbịa na ebe nchekwa FPGA ngwaọrụ
  • Ebe nchekwa FPGA ngwaọrụ nye onye ọbịa

Sistemụ nrụpụta Platform, $ OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys na-arụ ọtụtụ n'ime DMA

  • AFU. Akụkụ nke DMA AFU emejuputa atumatu na Platform Designer usoro nwere ike ịhụ na ndị a

ọnọdụ:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Ị nwere ike ịhụ DMA BBB na ebe a:

  • $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb

Ntuziaka onye ọrụ nke otu DMA Accelerator na-arụ ọrụ: Kaadị nkwalite mmemme Intel FPGA D5005

Ihe eserese nke DMA AFU Hardware Block

Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-1

DMA AFU gụnyere modul dị n'ime ndị a iji jiri FPGA Interface Unit (FIU):

  • Ebe nchekwa IO (MMIO) Decoder Logic: na-achọpụta MMIO ịgụ na dee azụmahịa wee kewapụ ha na ọwa CCI-P RX 0 nke ha rutere. Nke a na-achọpụta na okporo ụzọ MMIO anaghị erute MPF BBB yana ọwa iwu MMIO nọọrọ onwe ya na-arụ ya.
  • Ebe nchekwa Properties Factory (MPF): Modul a na-ahụ na ịgụ nzaghachi sitere na nloghachi DMA n'usoro e nyere ha. Usoro Avalon-MM chọrọ ịgụ nzaghachi iji laghachi n'usoro ziri ezi.
  • CCI-P na Avalon-MM Adapter: Modul a sụgharịrị n'etiti azụmahịa CCI-P na Avalon-MM, dịka ndị a:
  • CCI-P na Avalon-MMIO Adapter: Ụzọ a na-atụgharị azụmahịa CCI-P MMIO ka ọ bụrụ azụmahịa Avalon-MM.
  • Avalon to CCI-P Host Adapter: Ụzọ ndị a na-emepụta naanị ụzọ ọgụgụ na ide naanị maka DMA iji nweta ebe nchekwa nnabata.
  • Sistemụ ule DMA: Modul a na-eje ozi dị ka ihe mkpuchi gburugburu DMA BBB iji kpughee ndị isi DMA na mgbagha ndị ọzọ na AFU. Ọ na-enye interface n'etiti DMA BBB na CCI-P na Avalon Adapter. Ọ na-enyekwa ihu n'etiti DMA BBB na ụlọ akụ FPGA SDRAM mpaghara.

Ozi metụtara
Mpempe akwụkwọ data njikwa interface FPGA maka Kaadị ngwa ngwa ngwa ngwa nke Intel FPGA D5005

Sistemụ ule DMA

Usoro ule DMA na-ejikọta DMA BBB na ihe ndị ọzọ nke FPGA gụnyere mgbanwe CCI-P na ebe nchekwa FPGA mpaghara.

Eserese ngọngọ Sistemụ Nnwale DMA
Eserese ngọngọ a na-egosi ihe dị n'ime nke sistemu ule DMA. E gosipụtara usoro ule DMA dị ka ngọngọ monolithic na eserese 1 na ibe 7.Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-2

Usoro ule DMA gụnyere modul ime ndị a:

  • Far Reach Bridge/Pipeline Bridge: Akwa pipeline nke nwere ike imezigharị agụnyere iji chịkwaa topology ma melite imewe Fmax.
  • Isi ihe njiri mara ngwaọrụ DMA AFU (DFH): Nke a bụ DFH maka DMA AFU. DFH a na-atụ aka na DFH na-esote nke dị na nkwụsị 0x100 (DMA BBB DFH).
  • Ọ dịghị DFH: Akụkụ a na-akwụsị ndepụta njikọ DFH. Ọ bụrụ na ị gbakwunye DMA BBBs na imewe ahụ, hụ na adreesị ntọala DFH efu dị na njedebe nke ndepụta njikọ DFH.
  • MA Basic Building Block (BBB): Ihe mgbochi a na-akpali data n'etiti onye ọbịa na ebe nchekwa FPGA mpaghara. Ọ na-enwetakwa ebe nchekwa nnabata iji nweta ụdọ nkọwa.

DMA BBB

Sistemụ DMA BBB na-ebufe data site na isi iyi gaa na adreesị ebe aga site na iji azụmahịa Avalon-MM. Onye ọkwọ ụgbọ ala DMA na-ejikwa DMA BBB site na ịnweta njikwa na ndekọ ọkwa nke ihe dị iche iche dị n'ime sistemụ. Onye ọkwọ ụgbọ ala DMA na-ejikwa DMA BBB site na iji ebe nchekwa ekekọrịtara iji kparịta ndị nkọwa mbufe. DMA BBB na-enweta data na ebe nchekwa FPGA na nkwụsị 0x0. DMA BBB na-enweta data na nkọwa na ebe nchekwa nnabata na 0x1_0000_0000_0000.

DMA BBB Platform Designer Block Eserese
Eserese ngọngọ a na-ewepu ụfọdụ cores Pipeline Bridge IP.Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-6

Ntuziaka onye ọrụ nke otu DMA Accelerator na-arụ ọrụ: Kaadị nkwalite mmemme Intel FPGA D5005

Nkọwa DMA AFU

Ihe ndị dị na DMA BBB Platform Designer na-arụ ọrụ ndị a:

  • Akwa Far Reach Bridge/Pipeline Bridge: Àkwà mmiri pipeline nwere latency a na-agbanwe agbanwe gụnyere iji chịkwaa topology ma melite imewe Fmax.
  • MA BBB DFH: Nke a bụ nkụnye eji isi mee ihe maka DMA BBB. DFH a na-atụ aka na DFH na-esote nke dị na nkwụsị 0x100 (Null DFH).
  • Nkọwapụta Frontend: Ọ dịịrị maka ị nweta ndị nkọwa na ibufe ha na Dispatcher. Mgbe mbufe DMA mezuru, frontend na-enweta nhazi ọkwa site na Dispatcher wee degharịa nkọwa na ebe nchekwa nnabata.
  • Onye nzipu: Ihe mgbochi a na-ahazi nhazigharị DMA na-ebufe arịrịọ na Gụọ na dee Master.
  • Gụọ Nna-ukwu: Ihe mgbochi a na-ahụ maka ịgụ data sitere na ebe nchekwa FPGA nke onye ọbịa ma ọ bụ nke mpaghara wee ziga ya dị ka data nkwanye na Dee Master.
  • Dee Master: Ihe mgbochi a na-ahụ maka ịnata data nkwanye sitere na Read Master na ide ihe dị n'ime ya iji kwado ma ọ bụ ebe nchekwa FPGA mpaghara.

Debanye aha maapụ na oghere adreesị

DMA AFU na-akwado ebe nchekwa abụọ views: DMA view na onye ọbịa view. DMA view na-akwado oghere adreesị 49-bit. Ọkara ala nke DMA view maapụ gaa na ebe nchekwa FPGA mpaghara. Ọkara elu nke DMA view map iji kwado ebe nchekwa. Onye nnabata ọbịa view na-agụnye ndekọ niile a na-enweta site na ịnweta MMIO dị ka tebụl DFH, na ndekọ njikwa / ọnọdụ nke ụdị IP dị iche iche ejiri n'ime DMA AFU. MMIO debara aha na DMA BBB na AFU nkwado 32- na 64-bit ohere. DMA AFU anaghị akwado ohere MMIO 512-bit. Ịnweta na ndekọ Dispatcher n'ime DMA BBB ga-abụrịrị 32 bits (Descriptor frontend na-arụ ọrụ ndekọ 64-bit).

Map ndebanye aha DMA AFU

Map ndebanye aha DMA AFU na-enye adreesị zuru oke nke ebe niile dị n'ime ngalaba ahụ. Ndebanye aha ndị a dị na onye ọbịa view n'ihi na ọ bụ naanị onye ọbịa nwere ike ịnweta ha.

Map ebe nchekwa DMA AFU

Adreesị Byte kwụsịrị Aha Ogologo oge na Bytes Nkọwa
0x0 DMA AFU DFH 0x40 nkụnye eji isi mee ihe maka DMA AFU. Edere ID_L ka ọ bụrụ 0x9081f88b8f655caa na ID_H ka atọrọ ka 0x331db30c988541ea. Emebere DMA AFU DFH ka ọ rụtụ aka iji mebie 0x100 iji chọta DFH na-esote (DMA BBB DFH). Ị ga-agbanweghị isi adreesị nke DMA AFU DFH ebe ọ ga-adị na adreesị 0x0 dị ka CCIP nkọwapụta.
0x100 DMA BBB 0x100 Na-akọwapụta njikwa DMA BBB interface yana ndebanye aha ọkwa. Ị nwere ike ịtu aka na maapụ ndebanye aha DMA BBB maka ozi ndị ọzọ. N'ime DMA BBB na nkwụsị 0 DMA BBB gụnyere DFH nke ya. Edebere DFH a ka ọ chọta DFH na-esote na 0x100 (NULL DFH). Ọ bụrụ na ị gbakwunye DMA BBB ọzọ, debe ha 0x100 iche wee hụ na NULL DFH na-esote DMA ikpeazụ site na 0x100.
0x200 FULL DFH 0x40 Kwụsị ndepụta njikọ DFH. Edere ID_L ka ọ bụrụ 0x90fe6aab12a0132f na ID_H ka edobere 0xda1182b1b3444e23. Emebere NULL DFH ka ọ bụrụ DFH ikpeazụ na ngwaike. N'ihi nke a, NULL DFH dị na adreesị 0x200. Ọ bụrụ na ị gbakwunye DMA BBBs na sistemụ, ị ga-ebuli adreesị ntọala NULL DFH ka ọ nọrọ na adreesị kacha elu. Onye ọkwọ ụgbọ ala DMA na ngwa ule anaghị eji ngwaike a.

Ụlọ ọrụ Intel. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Debanye aha maapụ na oghere adreesị

DMA BBB Map ebe nchekwa
Adreesị byte ndị a bụ nkwụghachi ụgwọ sitere na adreesị ntọala DMA BBB na sistemụ DMA AFU (0x100).

Adreesị Byte kwụsịrị Aha Ogologo oge na Bytes Nkọwa
0x0 DMA BBB DFH 0x40 nkụnye eji isi mee ihe maka DMA AFU. Edere ID_L ka ọ bụrụ 0xa9149a35bace01ea yana ID_H ka edobere 0xef82def7f6ec40fc. Emebere DMA BBB DFH ka ọ tụọ aka na 0x100 maka nkwụghachi DFH na-esote. Nkwụghachi nke ọzọ nwere ike ịbụ DMA BBB ọzọ, DFH ọzọ (anaghị etinye ya na imewe a), ma ọ bụ NULL DFH.
0x40 Onye ozi 0x40 Ọdụ ụgbọ mmiri njikwa maka onye na-ezipụ ya. Onye ọkwọ ụgbọ ala DMA na-eji ebe a jikwaa DMA ma ọ bụ jụọ ọkwa ya.
0x80 Nkọwapụta Frontend 0x40 Nkọwapụta frontend bụ ngwa ọdịnala na-agụ nkọwa sitere na ebe nchekwa nnabata wee degharịa nkọwa mgbe mbufe DMA gwụchara. Onye ọkwọ ụgbọ ala na-eduzi frontend ebe onye nkọwa mbụ bi na ebe nchekwa nnabata wee na-agwa onye ọkwọ ụgbọ ala okwu n'ụzọ bụ isi n'agbanyeghị na echekwara nkọwa na ebe nchekwa nnabata.

Oghere adreesị DMA AFU

Onye ọbịa ahụ nwere ike ịnweta ndekọ ndị e depụtara na Tebụl 4 na ibe 12 na Tebụl 5 na ibe 13. Usoro DMA BBB nwere ohere ịnweta oghere adreesị 49-bit zuru ezu. Ọkara ala nke oghere adreesị a gụnyere ncheta FPGA mpaghara. Ọkara elu nke oghere adreesị a gụnyere ebe nchekwa adreesị nnabata 48-bit. Ọnụ ọgụgụ na-esonụ na-egosi onye ọbịa na DMA views nke ebe nchekwa.

DMA AFU na onye ọbịa Views nke ebe nchekwa

Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-3

Ihe ejikọrọ nkụnye eji isi mee ngwaọrụ

DMA AFU imewe example nwere atọ ngwaọrụ atụmatụ nkụnye eji isi mee (DFH) na-etolite a jikọtara ndepụta. Ndepụta njikọ a na-enye ohere sample ngwa iji chọpụta DMA AFU yana onye ọkwọ ụgbọ ala iji chọpụta DMA BBB. Ndepụta DFH gụnyere NULL DFH na njedebe. Ntinye nke DFH efu na njedebe nke ndepụta ejikọtara na-enye gị ohere itinyekwu DMA BBB na nhazi gị. Naanị ị ga-ebuga NULL DFH gaa na adreesị ma BBB ndị ọzọ gachara. DMA BBB ọ bụla na-atụ anya na DFH na-esote ga-adị 0x100 bytes site na adreesị ntọala nke BBB. Onu ogugu a na-egosi ndepụta ejikọtara maka imewe DMA AFU example.

Debanye aha maapụ na oghere adreesị

Njikere Njikere Ngwaọrụ DMA AFU (DFH).

Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-4

Ihe Nlereanya Mmemme Software

DMA AFU gụnyere onye ọkwọ ụgbọ ala ngwanrọ ị nwere ike iji na ngwa nnabata nke gị. Ihe fpga_dma.cpp na fpga_dma.h files dị na ebe a mejuputa onye ọkwọ ụgbọ ala:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Onye ọkwọ ụgbọ ala na-akwado ọrụ ndị a:

API Nkọwa
fpgaCountDMAChannels Na-enyocha yinye atụmatụ ngwaọrụ maka DMA BBB wee gụọ ọwa niile dị.
fpgaDMA mepere Mepee aka na ọwa DMA.
fpgaDMAC kwụsịrị Na-emechi aka na ọwa DMA.
fpgaDMATnsferInit Na-ebido ihe na-anọchi anya mbufe DMA.
fpgaDMAT na-emegharị nrụpụta Tọgharịa ihe nfefe DMA ka ọ bụrụ ụkpụrụ ndabara.
fpgaDMAT nwere ike ibibi Na-ebibi ihe njiri mara mbufe DMA.
fpgaDMATransferSetSrc Na-edozi adreesị isi iyi nke mbufe. Adreesị a ga-ahazirịrị 64 byte.
fpgaDMATnsferSetDst Hazie adreesị ebe mbufe ga-aga. Adreesị a ga-ahazirịrị 64 byte.
fpgaDMATnsferSetLen Na-edozi ogologo mbufe na bytes. Maka mbufe na-abụghị ngwugwu, ị ga-edobe ogologo mbufe ka ọ bụrụ ọnụọgụ nke 64 bytes. Maka mbufe ngwugwu, nke a abụghị ihe achọrọ.
fpgaDMATnsferSetTransferỤdị Na-ahazi ụdị mbufe. Ụkpụrụ iwu bụ:

• HOST_MM_TO_FPGA_MM = TX (Onye ọbịa na AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU ga-anabata)

fpgaDMATnsferSetTransferCallback Na-edebanye ahaghachi oku maka ọkwa maka mmecha mbufe asynchronous. Ọ bụrụ na ị kọwapụta oku azụ, fpgaDMATransfer ga-alaghachi ozugbo (nbufe na-ejikọtaghị ọnụ).

Ọ bụrụ na ị kọwapụtaghị oku alọghachi, fpgaDMATransfer ga-alaghachi mgbe mbufe zuru ezu (nfefe mekọrịta/ igbochi).

fpgaDMATnsferSet Ikpeazụ Na-egosi mbufe ikpeazụ ka DMA nwee ike ịmalite nhazi mbufe ewepụtara. Uru ndabara bụ 64 na-enyefe na pipeline tupu DMA amalite ịrụ ọrụ na nnyefe.
fpgaDMAT enyefe Na-eme mbufe DMA.

Maka ozi ndị ọzọ gbasara API, ntinye, na arụmụka mmepụta, rụtụ aka na nkụnye eji isi mee file dị $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Ihe Nlereanya Mmemme Software

Ka ịmatakwu maka ụdị eji ọkwọ ụgbọ ala sọftụwia, rụtụ aka na README file dị na $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Na-agba ọsọ DMA AFU Example

Tupu ịmalite:

  • Ị kwesịrị ịma na examples na Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005.
  • Ị ga-akọwarịrị mgbanwe gburugburu ebe obibi. Ngbanwe gburugburu ebe obibi dabere na ụdị Intel Acceleration Stack ị na-eji:
    • Maka ụdị dị ugbu a, tọọ mgbanwe gburugburu ka ọ bụrụ $OPAE_PLATFORM_ROOT
  • Ị ga-etinyerịrị ọba akwụkwọ Intel Threading Building Blocks (TBB) ebe ọ bụ na onye ọkwọ ụgbọ ala DMA dabere na ya.
  • Ị ga-edozikwa ibe abụọ 1 GB iji mee sample ngwa. $ sudo sh -c “echo 2> /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Mee usoro ndị a iji budata DMA Accelerator Function (AF) bitstream, iji wuo ngwa na ọkwọ ụgbọ ala, yana iji mee ihe ngosi ahụ.ampLe:

  1. Gbanwee na ngwa DMA na ndekọ ọkwọ ụgbọala: cd $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Mee onye ọkwọ ụgbọ ala na ngwa: mee
  3. Budata DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Mezue ngwa nnabata iji dee 100 MB na akụkụ 1 MB site na ebe nchekwa ngwaọrụ gaa na ebe nchekwa ngwaọrụ FPGA wee gụọ ya azụ: ./fpga_dma_test -s 104857600 -p 1048576 -r mtom

Ozi metụtara
Ntuziaka mmalite ngwa ngwa nke Intel Acceleration Stack maka Intel FPGA Programmable Acceleration Card D5005 Intel Corporation. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Na-achịkọta DMA AFU Example

Iji mepụta gburugburu ebe nrụpụta njikọ iji chịkọta AF, jiri iwu afu_synth_setup dị ka ndị a:

  1. Gbanwee na DMA AFU sampakwụkwọ ndekọ aha: $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Mepụta ndekọ ihe nrụpụta imewe: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. Site na nhazi ndekọ aha nke afu_synth_setup mepụtara, tinye iwu ndị a site na windo ọnụ iji mepụta AF maka ikpo okwu ngwaike ebumnuche: cd build_synth run.sh Edemede run.sh AF na-emepụta onyonyo AF nwere otu isi. fileaha dị ka nhazi ikpo okwu AFU file (.json) nwere suffix .gbs na ebe:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke ụlọ ọrụ Intel ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Na-eme ka AFU Example

Intel na-atụ aro ka ị rụtụ aka na ngalaba mmekọ nke Intel Accelerator Functional Unit (AFU) Environment Environment (ASE) Ntuziaka mmalite ngwa ngwa maka Intel FPGA PAC gị ka ị mara nke ọma ịme emume yiri nke ahụ.amples na hazie gburugburu gị. Tupu ịga n'ihu na usoro ndị a, chọpụta na edobere mgbanwe gburugburu OPAE_PLATFORM_ROOT na ndekọ nwụnye OPAE SDK. Mezue usoro ndị a iji dozie simulator ngwaike maka DMA AFU:

  1. Gbanwee na DMA AFU sampakwụkwọ ndekọ aha: cd $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Mepụta gburugburu ASE na ndekọ ọhụrụ wee hazie ya maka ịmegharị AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Gbanwee na ndekọ ihe wuo ASE: cd build_ase_dir
  4. Mee onye ọkwọ ụgbọ ala na ngwa: mee
  5. Mee ịme anwansị: mee sim

Sampmmepụta sitere na simulator ngwaike:

[SIM] ** AKWỤKWỌ : Tupu ịmee ngwa ngwanrọ ** [SIM] Tọọ env(ASE_WORKDIR) n'ọnụ ebe ngwa ga-agba ọsọ (copy-and-paste) => [SIM] $ SHELL | Gbaa:[SIM] ———+————————————————— [SIM] bash/zsh | mbupu ASE_WORKDIR=$ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/ọrụ [SIM] tcsh/csh | setenv ASE_WORKDIR $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Maka $SHELL ọ bụla ọzọ, kpọtụrụ onye nchịkwa Linux gị [SIM] [SIM] Dị njikere maka ịme anwansị… [SIM] Pịa CTRL-C iji mechie simulator…

Mezue usoro ndị a iji chịkọta ma mebie ngwa DMA AFU na gburugburu ịme anwansị:

  1. Mepee windo ọnụ ọhụrụ.
  2. Gbanwee ndekọ ka ọ bụrụ: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Ụlọ ọrụ Intel. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke Intel Corporation ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Na-eme ka AFU Example

  1. Detuo eriri ntọala gburugburu (họrọ eriri dabara adaba maka shei gị) site na usoro dị n'elu na ịme anwansị ngwaike gaa na windo ọnụ. Hụ ahịrị ndị a na sampmmepụta sitere na simulator ngwaike. [SIM] bash/zsh | mbupu ASE_WORKDIR=$ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/ọrụ [SIM] tcsh/csh | setenv ASE_WORKDIR $ OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/ọrụ
  2. Chịkọta ngwanro: $ mee US_ASE=1
  3. Mezue ngwa nnabata iji dee 4 KB na 1 KB akụkụ site na ebe nchekwa nnabata laghachi na ebe nchekwa ngwaọrụ FPGA na ọnọdụ loopback: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Ozi metụtara
Ngalaba na-arụ ọrụ ngwa ngwa nke Intel Accelerator (AFU) Environment Environment (ASE) Ntuziaka onye ọrụ mmalite ngwa ngwa

Nkwalite maka ịrụ ọrụ DMA emelitere

Mmejuputa NUMA (nnweta nchekwa nchekwa na-abụghị nke otu) na fpga_dma_test.cpp na-enye onye nrụpụta ohere ịnweta ebe nchekwa mpaghara ya ngwa ngwa karịa ịnweta ebe nchekwa na-abụghị nke mpaghara (ebe nchekwa mpaghara gaa na nhazi ọzọ). E gosipụtara nhazi NUMA na-ahụkarị na eserese dị n'okpuru. Oghere mpaghara na-anọchi anya ịnweta site na isi gaa na ebe nchekwa mpaghara gaa n'otu isi. Nnweta dịpụrụ adịpụ na-egosi ụzọ a na-eme mgbe isi na Node 0 na-enweta ebe nchekwa nke bi na ebe nchekwa dị na mpaghara 1.

Nhazi NUMA a na-ahụkarị

Intel.-FPGA-Mmemme-Kaadị-ngwa ngwa-D5005-fig-5

Jiri koodu na-esonụ iji mejuputa njikarịcha NUMA na ngwa ule gị:

// Tọọ mmekọrịta kwesịrị ekwesị ma ọ bụrụ na achọrọ ya ma ọ bụrụ (cpu_affinity || memory_affinity) {unsigned dom = 0, ụgbọ ala = 0, dev = 0, func = 0; fpga_properties props;int retval; # ma ọ bụrụ (FPGA_DMA_DEBUG) char str[4096]; #endifres = fpgaGetProperties(afc_token, & props); ON_ERR_GOTO(res, out_destroy_tok, "fpgaGetProperties"); res = fpgaPropertiesGetBus(props, (uint8_t *) & ụgbọ ala);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_GOTO (res, out_destroy_tok), // Chọta ngwaọrụ site na topology hwloc_topology_t topology; hwloc_topology_init (&topology); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke ụlọ ọrụ Intel ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ. * Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

Nkwalite maka ịrụ ọrụ DMA emelitere

hwloc_topology_load (topology); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topology, dom, bọs, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (topology, obj); #ma ọ bụrụ (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 bụ %s\n", str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2-> nodeset); printf("NODESET bụ %s\n", str);#endif ma ọ bụrụ (memory_affinity) {#ma ọ bụrụ na HWLOC_API_VERSION> 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THAD_TEMI YNODESET); # ọzọ retval = hwloc_set_membind_nodeset (topology, obj2-> nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } ma ọ bụrụ (cpu_affinity) {retval = hwloc_set_cpubind (topology, obj2-> cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }

Ebe nchekwa ntuziaka onye ọrụ DMA Accelerator na-arụ ọrụ

Intel Acceleration Stack Version Ntuziaka onye ọrụ (PDF)
2.0 Ntuziaka onye ọrụ DMA Accelerator Functional Unit (AFU).

Akụkọ Ndozigharị akwụkwọ maka ntuziaka onye ọrụ na-arụ ọrụ ngwa ngwa DMA

 

Ụdị akwụkwọ

Intel Acceleration Ụdị nchịkọta  

Mgbanwe

 

 

2020.08.03

2.0.1 (Intel kwadoro ya

Mbipụta Quartus® Prime Pro 19.2)

 

Emeziri onyonyo AF file aha na ngalaba Na-achịkọta DMA AFU Example.

 

 

2020.04.17

2.0.1 (Intel kwadoro ya

Mbipụta Quartus Prime Pro 19.2)

 

 

Emeziri nkwupụta na Ndị na-ege ntị e bu n'obi ngalaba.

 

 

2020.02.20

2.0.1 (Intel kwadoro ya

Mbipụta Quartus Prime Pro 19.2)

 

 

Edebere typo.

 

 

 

 

2019.11.04

 

 

2.0.1 (Intel kwadoro ya

Mbipụta Quartus Prime Pro 19.2)

• Dochie fpgaconf na fpgasupdate mgbe ị na-ahazi FPGA na prebuild AFU na ngalaba. Na-agba ọsọ DMA AFU Example.

• Ndepụta okwu agbakwunyere Kaadị ngwa ngwa ngwa ngwa nke Intel FPGA D5005 na aha akwụkwọ ahụ.

• agbanwere gburugburu $ OPAE_PLATFORM_ROOT.

• ngalaba agbanweela Ihe Nlereanya Mmemme Software maka obere ndezi.

• agbakwunyere ngalaba ọhụrụ Na-achịkọta DMA AFU Example.

• ngalaba agbanweela Nkwalite maka ịrụ ọrụ DMA emelitere maka obere ndezi.

 

 

2019.08.05

2.0 (Intel kwadoro ya

Mbipụta Quartus Prime Pro 18.1.2)

 

 

Ntọhapụ mbụ.

Ụlọ ọrụ Intel. Ikike niile echekwabara. Intel, akara Intel, na akara Intel ndị ọzọ bụ ụghalaahịa nke ụlọ ọrụ Intel ma ọ bụ ndị enyemaka ya. Intel nyere ikike ịrụ ọrụ nke FPGA na ngwaahịa semiconductor na nkọwapụta ugbu a dịka akwụkwọ ikike ọkọlọtọ Intel siri dị, mana nwere ikike ịme mgbanwe na ngwaahịa na ọrụ ọ bụla n'oge ọ bụla na-enweghị ọkwa. Intel anaghị ewere ọrụ ọ bụla ma ọ bụ ụgwọ sitere na ngwa ma ọ bụ iji ozi ọ bụla, ngwaahịa ma ọ bụ ọrụ akọwara n'ime ebe a belụsọ dị ka Intel kwetara na ederede. A dụrụ ndị ahịa Intel ọdụ ka ha nweta ụdị nkọwa ngwaọrụ kachasị ọhụrụ tupu ha adabere na ozi ọ bụla ebipụtara yana tupu ịnye iwu maka ngwaahịa ma ọ bụ ọrụ.

  • Enwere ike ịzọrọ aha na akara ndị ọzọ dị ka ihe onwunwe nke ndị ọzọ.

 

Akwụkwọ / akụrụngwa

Kaadị ngwa ngwa ngwa ngwa nke Intel FPGA D5005 [pdf] Ntuziaka onye ọrụ
Kaadị osooso nke mmemme FPGA, D5005, FPGA Programmable Acceleration Card D5005, DMA Accelerator Functional Unit

Ntụaka

Hapụ ikwu

Agaghị ebipụta adreesị ozi-e gị. Akara mpaghara achọrọ akara *