Intel-logo

Intel FPGA Programmable Acceleration Card D5005

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

Tungkol sa Dokumentong ito

Inilalarawan ng dokumentong ito ang pagpapatupad ng direktang pag-access sa memorya (DMA) Accelerator Functional Unit (AFU) at kung paano buuin ang disenyo upang tumakbo sa hardware o sa simulation.

Sinasadyang Madla

Ang nilalayong madla ay binubuo ng mga developer ng hardware o software na nangangailangan ng Accelerator Function (AF) na mag-buffer ng data nang lokal sa memorya na nakakonekta sa Intel FPGA device.

Mga kombensiyon

Mga Kumbensyon ng Dokumento

Convention Paglalarawan
# Nauuna ang isang utos na nagpapahiwatig na ang utos ay ilalagay bilang ugat.
$ Isinasaad ang isang utos na dapat ipasok bilang isang user.
Ang font na ito Fileang mga pangalan, utos, at keyword ay naka-print sa font na ito. Mahabang command line ang naka-print sa font na ito. Bagama't ang mahahabang linya ng utos ay maaaring bumabalot sa susunod na linya, ang pagbabalik ay hindi bahagi ng utos; huwag pindutin ang enter.
Isinasaad ang teksto ng placeholder na lumilitaw sa pagitan ng mga anggulong bracket ay dapat mapalitan ng naaangkop na halaga. Huwag ipasok ang mga angle bracket.

Mga acronym

Mga acronym

Mga acronym Pagpapalawak Paglalarawan
AF Function ng Accelerator Compiled Hardware Accelerator image ipinatupad sa FPGA logic na nagpapabilis sa isang application.
AFU Yunit na Functional ng Accelerator Ang Hardware Accelerator ay ipinatupad sa FPGA logic na nag-aalis ng computational operation para sa isang application mula sa CPU upang mapabuti ang performance.
API Application Programming Interface Isang set ng mga subroutine na kahulugan, protocol, at tool para sa pagbuo ng mga software application.
CCI-P Core Cache Interface Ang CCI-P ay ang karaniwang interface na ginagamit ng mga AFU upang makipag-usap sa host.
DFH Header ng Feature ng Device Lumilikha ng isang naka-link na listahan ng mga header ng tampok upang magbigay ng isang napapalawak na paraan ng pagdaragdag ng mga tampok.
nagpatuloy...

Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiyahan ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Mga acronym Pagpapalawak Paglalarawan
FIM FPGA Interface Manager Ang FPGA hardware na naglalaman ng FPGA Interface Unit (FIU) at mga panlabas na interface para sa memorya, networking, atbp.

Ang Accelerator Function (AF) ay nakikipag-ugnayan sa FIM sa oras ng pagtakbo.

FIU Yunit ng Interface ng FPGA Ang FIU ay isang platform interface layer na nagsisilbing tulay sa pagitan ng mga interface ng platform tulad ng PCIe*, UPI at AFU-side interface gaya ng CCI-P.
MPF Pabrika ng Mga Katangian ng Memorya Ang MPF ay isang Basic Building Block (BBB) ​​na magagamit ng mga AFU upang magbigay ng mga operasyon sa paghubog ng trapiko ng CCI-P para sa mga transaksyon sa FIU.

Glossary ng Acceleration

Acceleration Stack para sa Intel® Xeon® CPU na may FPGAs Glossary

Termino Pagpapaikli Paglalarawan
Intel® Acceleration Stack para sa Intel Xeon® CPU na may mga FPGA Acceleration Stack Isang koleksyon ng software, firmware, at mga tool na nagbibigay ng performance-optimized na koneksyon sa pagitan ng isang Intel FPGA at isang Intel Xeon processor.
Intel FPGA Programmable Acceleration Card Intel FPGA PAC PCIe FPGA accelerator card.

Naglalaman ng FPGA Interface Manager (FIM) na ipinares sa isang Intel Xeon processor sa PCIe bus.

  • Gabay sa Gumagamit ng Unit ng Paggana ng DMA Accelerator: Intel FPGA Programmable Acceleration Card D5005

Paglalarawan ng DMA AFU

Panimula

Ang Direct Memory Access (DMA) AFU halampIpinapakita nito kung paano pamahalaan ang mga paglilipat ng memorya sa pagitan ng host processor at ng FPGA. Maaari mong isama ang DMA AFU sa iyong disenyo upang ilipat ang data sa pagitan ng memorya ng host at ng lokal na memorya ng FPGA. Binubuo ng DMA AFU ang mga sumusunod na submodules:

  • Memory Properties Factory (MPF) Basic Building Block (BBB)
  • Core Cache Interface (CCI-P) sa Avalon® Memory-Mapped (Avalon-MM) Adapter
  • DMA Test System na naglalaman ng DMA BBB

Ang mga submodules na ito ay inilalarawan nang mas detalyado sa paksa ng DMA AFU Hardware Components sa ibaba.

Kaugnay na Impormasyon

  • Ang DMA AFU Hardware Components sa pahina 6
  • Mga Detalye ng Avalon Interface

Para sa higit pang impormasyon tungkol sa Avalon-MM protocol, kabilang ang mga timing diagram para sa read at write na mga transaksyon.

Ang DMA AFU Software Package

Ang Intel Acceleration Stack para sa Intel Xeon CPU na may FPGAs package file (*.tar.gz), kasama ang DMA AFU example. Itong exampNagbibigay ang le ng isang user space driver. Ginagamit ng host application ang driver na ito upang ang DMA ay naglilipat ng data sa pagitan ng host at FPGA memory. Ang mga binary ng hardware, source, at ang user space driver ay available sa sumusunod na direktoryo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Bago mag-eksperimento sa DMA AFU, dapat mong i-install ang Open Programmable Acceleration Engine (OPAE) software package. Sumangguni sa Pag-install ng OPAE Software Package sa Intel Acceleration Stack Quick Start Guide para sa Intel FPGA Programmable Acceleration Card D5005 para sa mga tagubilin sa pag-install. Kasama rin sa Quick Start Guide na ito ang pangunahing impormasyon tungkol sa Open Programmable Acceleration Engine (OPAE) at pag-configure ng AFU. Pagkatapos i-install ang Open Programmable Acceleration Engine (OPAE) software package, bilangampAng host application at ang DMA AFU user space driver ay available sa sumusunod na direktoryo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Upang patakbuhin ang sample host application, fpga_dma_test sa iyong Intel FPGA PAC D5005 hardware, sumangguni sa mga hakbang sa seksyong Pagpapatakbo ng DMA AFU Example. Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Kaugnay na Impormasyon

  • Gabay sa Mabilis na Pagsisimula ng Intel Acceleration Stack para sa Intel FPGA Programmable Acceleration Card D5005
  • Pag-install ng OPAE Software Package

Ang DMA AFU Hardware Components

Ang DMA AFU ay nakikipag-ugnayan sa FPGA Interface Unit (FIU) at FPGA memory. Sumangguni sa FPGA Interface Manager Data Sheet para sa Intel FPGA Programmable Acceleration Card D5005 para sa mga detalyadong detalye ng FPGA memory. Ang kasalukuyang magagamit na hardware ay nagdidikta sa pagsasaayos ng memorya na ito. Maaaring suportahan ng hinaharap na hardware ang iba't ibang configuration ng memorya. Maaari mong gamitin ang DMA AFU upang kumopya ng data sa pagitan ng mga sumusunod na lokasyon ng pinagmulan at patutunguhan:

  • Ang host sa device na FPGA memory
  • Device FPGA memory sa host

Isang Platform Designer system, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ Ang /dma_test_system.qsys ay nagpapatupad ng karamihan sa DMA

  • AFU. Ang bahagi ng DMA AFU na ipinatupad sa sistema ng Platform Designer ay matatagpuan sa sumusunod

lokasyon:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Mahahanap mo ang DMA BBB sa sumusunod na lokasyon:

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

Gabay sa Gumagamit ng Unit ng Paggana ng DMA Accelerator: Intel FPGA Programmable Acceleration Card D5005

DMA AFU Hardware Block Diagram

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

Ang DMA AFU ay kinabibilangan ng mga sumusunod na panloob na module upang mag-interface sa FPGA Interface Unit (FIU):

  • Memory-Mapped IO (MMIO) Decoder Logic: nakakakita ng MMIO read and write transactions at ihihiwalay ang mga ito sa CCI-P RX channel 0 kung saan sila nanggagaling. Tinitiyak nito na ang trapiko ng MMIO ay hindi kailanman makakarating sa MPF BBB at sineserbisyuhan ng isang independiyenteng MMIO command channel.
  • Memory Properties Factory (MPF): Tinitiyak ng module na ito na ang mga read response mula sa DMA ay babalik sa pagkakasunud-sunod na ibinigay ang mga ito. Ang Avalon-MM protocol ay nangangailangan ng mga read response upang bumalik sa tamang pagkakasunod-sunod.
  • CCI-P sa Avalon-MM Adapter: Ang module na ito ay nagsasalin sa pagitan ng CCI-P at Avalon-MM na mga transaksyon, tulad ng sumusunod:
  • CCI-P to Avalon-MMIO Adapter: Isinasalin ng path na ito ang mga transaksyon ng CCI-P MMIO sa mga transaksyon ng Avalon-MM.
  • Avalon sa CCI-P Host Adapter: Lumilikha ang mga path na ito ng hiwalay na read-only at write-only na mga path para sa DMA na ma-access ang memory ng host.
  • DMA Test System: Ang module na ito ay nagsisilbing wrapper sa paligid ng DMA BBB upang ilantad ang DMA masters sa natitirang logic sa AFU. Nagbibigay ito ng interface sa pagitan ng DMA BBB at ng CCI-P sa Avalon Adapter. Nagbibigay din ito ng interface sa pagitan ng DMA BBB at ng mga lokal na bangko ng FPGA SDRAM.

Kaugnay na Impormasyon
FPGA Interface Manager Data Sheet para sa Intel FPGA Programmable Acceleration Card D5005

DMA Test System

Ang sistema ng pagsubok ng DMA ay nagkokonekta sa DMA BBB sa natitirang disenyo ng FPGA kasama ang CCI-P adaptation at ang lokal na memorya ng FPGA.

Block Diagram ng DMA Test System
Ipinapakita ng block diagram na ito ang mga panloob ng sistema ng pagsubok ng DMA. Ang sistema ng pagsubok ng DMA ay ipinapakita bilang isang monolitikong bloke sa Figure 1 sa pahina 7.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

Kasama sa sistema ng pagsubok ng DMA ang mga sumusunod na panloob na module:

  • Far Reach Bridge/Pipeline Bridge: Isang pipeline bridge na may adjustable latency na kasama para kontrolin ang topology at pahusayin ang disenyo na Fmax.
  • DMA AFU Device Feature Header (DFH): Ito ay isang DFH para sa DMA AFU. Ang DFH na ito ay tumuturo sa susunod na DFH na matatagpuan sa offset 0x100 (DMA BBB DFH).
  • Null DFH: Tinatapos ng component na ito ang DFH linked-list. Kung magdaragdag ka ng higit pang mga DMA BBB sa disenyo, tiyaking ang null DFH base address ay matatagpuan sa dulo ng DFH linked-list.
  • MA Basic Building Block (BBB): Ang bloke na ito ay naglilipat ng data sa pagitan ng host at ng lokal na memorya ng FPGA. Ina-access din nito ang memorya ng host upang ma-access ang mga chain ng descriptor.

DMA BBB

Ang DMA BBB subsystem ay naglilipat ng data mula sa pinagmulan patungo sa mga patutunguhang address gamit ang mga transaksyon sa Avalon-MM. Kinokontrol ng DMA driver ang DMA BBB sa pamamagitan ng pag-access sa control at status register ng iba't ibang bahagi sa loob ng system. Kinokontrol din ng DMA driver ang DMA BBB sa pamamagitan ng paggamit ng shared memory upang makipag-usap sa mga transfer descriptor. Ang DMA BBB ay nag-a-access ng data sa FPGA memory sa offset na 0x0. Ina-access ng DMA BBB ang data at mga deskriptor sa memorya ng host sa offset na 0x1_0000_0000_0000.

Block Diagram ng DMA BBB Platform Designer
Ang block diagram na ito ay hindi kasama ang ilang panloob na Pipeline Bridge IP core.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

Gabay sa Gumagamit ng Unit ng Paggana ng DMA Accelerator: Intel FPGA Programmable Acceleration Card D5005

Paglalarawan ng DMA AFU

Ang mga bahagi sa DMA BBB Platform Designer ay nagpapatupad ng mga sumusunod na function:

  • Far Reach Bridge/Pipeline Bridge: Isang pipeline bridge na may adjustable latency na kasama para kontrolin ang topology at pagbutihin ang disenyo na Fmax.
  • MA BBB DFH: Isa itong header ng feature ng device para sa DMA BBB. Ang DFH na ito ay tumuturo sa susunod na DFH na matatagpuan sa offset 0x100 (Null DFH).
  • Descriptor Frontend: Responsable sa pagkuha ng mga descriptor at paglilipat ng mga ito sa Dispatcher. Kapag nakumpleto ang paglipat ng DMA, natatanggap ng frontend ang pagbuo ng status mula sa Dispatcher at ino-overwrite ang descriptor sa memorya ng host.
  • Dispatcher: Ang block na ito ay nag-iskedyul ng mga kahilingan sa paglilipat ng DMA sa Read and Write Master.
  • Basahin Master: Ang block na ito ay responsable para sa pagbabasa ng data mula sa host o lokal na FPGA memory at ipadala ito bilang streaming data sa Write Master.
  • Sumulat ng Master: Ang block na ito ay responsable para sa pagtanggap ng streaming data mula sa Read Master at pagsulat ng mga nilalaman sa host o lokal na FPGA memory.

Magrehistro ng Mapa at Address Spaces

Ang DMA AFU ay sumusuporta sa dalawang memorya views: Ang DMA view at ang host view. Ang DMA view sumusuporta sa isang 49-bit address space. Ang mas mababang kalahati ng DMA view mga mapa sa lokal na memorya ng FPGA. Ang itaas na kalahati ng DMA view mga mapa upang mag-host ng memorya. Ang nagpadaos view kasama ang lahat ng mga rehistro na naa-access sa pamamagitan ng mga access ng MMIO tulad ng mga talahanayan ng DFH, at ang mga rehistro ng kontrol/status ng iba't ibang mga IP core na ginagamit sa loob ng DMA AFU. Ang MMIO ay nagrerehistro sa DMA BBB at AFU na sumusuporta sa 32- at 64-bit na pag-access. Ang DMA AFU ay hindi sumusuporta sa 512-bit MMIO access. Ang mga pag-access sa mga rehistro ng Dispatcher sa loob ng DMA BBB ay dapat na 32 bits (Ang frontend ng Descriptor ay nagpapatupad ng mga 64-bit na rehistro).

DMA AFU Register Map

Ang DMA AFU register map ay nagbibigay ng ganap na mga address ng lahat ng lokasyon sa loob ng unit. Ang mga rehistrong ito ay nasa host view dahil ang host lang ang makaka-access sa kanila.

Mapa ng Memorya ng DMA AFU

Mga Offset ng Byte Address Pangalan Span sa Bytes Paglalarawan
0x0 DMA AFU DFH 0x40 Header ng feature ng device para sa DMA AFU. Ang ID_L ay nakatakda sa 0x9081f88b8f655caa at ID_H ay nakatakda sa 0x331db30c988541ea. Ang DMA AFU DFH ay na-parameter upang ituro upang i-offset ang 0x100 upang mahanap ang susunod na DFH (DMA BBB DFH). Hindi mo dapat baguhin ang base address ng DMA AFU DFH dahil dapat itong matatagpuan sa address na 0x0 gaya ng tinukoy ng detalye ng CCIP.
0x100 DMA BBB 0x100 Tinutukoy ang DMA BBB control at status register interface. Maaari kang sumangguni sa mapa ng rehistro ng DMA BBB para sa karagdagang impormasyon. Sa loob ng DMA BBB sa offset 0, kasama sa DMA BBB ang sarili nitong DFH. Ang DFH na ito ay itinakda upang mahanap ang susunod na DFH sa offset 0x100 (NULL DFH). Kung magdadagdag ka ng higit pang mga DMA BBB, ihiwalay ang mga ito nang 0x100 at tiyaking sumusunod ang NULL DFH sa huling DMA nang 0x100.
0x200 NULL DFH 0x40 Tinatanggal ang naka-link na listahan ng DFH. Ang ID_L ay nakatakda sa 0x90fe6aab12a0132f at ID_H ay nakatakda sa 0xda1182b1b3444e23. Ang NULL DFH ay na-parameter upang maging huling DFH sa hardware. Para sa kadahilanang ito ang NULL DFH ay matatagpuan sa address na 0x200. Kung magdaragdag ka ng mga karagdagang DMA BBB sa system, kailangan mong dagdagan ang NULL DFH base address nang naaayon upang manatili ito sa pinakamataas na address. Hindi ginagamit ng DMA driver at test application ang hardware na ito.

Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiyahan ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Magrehistro ng Mapa at Address Spaces

DMA BBB Memory Map
Ang mga sumusunod na byte address ay mga relatibong offset mula sa DMA BBB base address sa DMA AFU system (0x100).

Mga Offset ng Byte Address Pangalan Span sa Bytes Paglalarawan
0x0 DMA BBB DFH 0x40 Header ng feature ng device para sa DMA AFU. Ang ID_L ay nakatakda sa 0xa9149a35bace01ea at ang ID_H ay nakatakda sa 0xef82def7f6ec40fc . Ang DMA BBB DFH ay na-parameter upang tumuro sa 0x100 para sa susunod na DFH offset. Ang susunod na offset na ito ay maaaring isa pang DMA BBB, isa pang DFH (hindi kasama sa disenyong ito), o ang NULL DFH.
0x40 Dispatcher 0x40 Control port para sa dispatcher. Ginagamit ng DMA driver ang lokasyong ito para kontrolin ang DMA o i-query ang status nito.
0x80 Descriptor Frontend 0x40 Ang descriptor frontend ay isang custom na bahagi na nagbabasa ng mga descriptor mula sa memorya ng host at ino-overwrite ang descriptor kapag nakumpleto ang paglipat ng DMA. Ang driver ay nagtuturo sa frontend kung saan nakatira ang unang descriptor sa host memory at pagkatapos ay ang frontend hardware ay nakikipag-ugnayan sa driver lalo na kahit na ang mga descriptor ay naka-imbak sa host memory.

Space ng Address ng DMA AFU

Maa-access ng host ang mga register na nakalista sa Talahanayan 4 sa pahina 12 at ang Talahanayan 5 sa pahina 13. Ang DMA BBB subsystem ay may access sa buong 49-bit address space. Ang mas mababang kalahati ng puwang ng address na ito ay kinabibilangan ng mga lokal na alaala ng FPGA. Kasama sa itaas na kalahati ng address space na ito ang 48-bit na host address memory. Ipinapakita ng sumusunod na figure ang host at DMA views ng memorya.

Ang DMA AFU at Host Views ng Memorya

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

Naka-link na Listahan ng Header ng Feature ng Device

Ang disenyo ng DMA AFU halampAng le ay naglalaman ng tatlong device feature header (DFH) na bumubuo ng isang naka-link na listahan. Ang naka-link na listahang ito ay nagpapahintulot sa sample application para kilalanin ang DMA AFU pati na rin ang driver para kilalanin ang DMA BBB. Ang listahan ng DFH ay may kasamang NULL DFH sa dulo. Ang pagsasama ng null DFH sa dulo ng naka-link na listahan ay nagbibigay-daan sa iyong magdagdag ng higit pang mga DMA BBB sa iyong disenyo. Kailangan mo lang ilipat ang NULL DFH sa isang address pagkatapos ng iba pang mga BBB. Inaasahan ng bawat DMA BBB na ang susunod na DFH ay matatagpuan 0x100 bytes mula sa base address ng BBB. Inilalarawan ng sumusunod na figure ang linked-list para sa DMA AFU na disenyo halample.

Magrehistro ng Mapa at Address Spaces

DMA AFU Device Feature Header (DFH) Chaining

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

Modelo ng Software Programming

Ang DMA AFU ay may kasamang software driver na magagamit mo sa iyong sariling host application. Ang fpga_dma.cpp at fpga_dma.h files matatagpuan sa sumusunod na lokasyon ipatupad ang software driver:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Sinusuportahan ng driver na ito ang mga sumusunod na function:

API Paglalarawan
fpgaCountDMACnannels Ini-scan ang chain ng feature ng device para sa mga DMA BBB at binibilang ang lahat ng available na channel.
fpgaDMABuksan Nagbubukas ng handle sa DMA channel.
fpgaDMAClose Isinasara ang isang hawakan sa DMA channel.
fpgaDMATransferInit Nagsisimula ng isang bagay na kumakatawan sa paglipat ng DMA.
fpgaDMATransferReset Nire-reset ang DMA transfer attribute object sa mga default na value.
fpgaDMATransferDestroy Sinisira ang DMA transfer attribute object.
fpgaDMATransferSetSrc Itinatakda ang pinagmulang address ng paglilipat. Ang address na ito ay dapat na 64 byte na nakahanay.
fpgaDMATransferSetDst Itinatakda ang patutunguhang address ng paglilipat. Ang address na ito ay dapat na 64 byte na nakahanay.
fpgaDMATransferSetLen Itinatakda ang mga haba ng paglilipat sa mga byte. Para sa mga paglilipat na hindi packet, dapat mong itakda ang haba ng paglilipat sa maramihang 64 byte. Para sa mga packet transfer, hindi ito kinakailangan.
fpgaDMATransferSetTransferType Itinatakda ang uri ng paglilipat. Ang mga legal na halaga ay:

• HOST_MM_TO_FPGA_MM = TX (Host sa AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU sa host)

fpgaDMATransferSetTransferCallback Nagrerehistro ng callback para sa abiso sa pagkumpleto ng asynchronous na paglipat. Kung tumukoy ka ng callback, babalik kaagad ang fpgaDMATransfer (asynchronous transfer).

Kung hindi ka tumukoy ng callback, babalik ang fpgaDMATransfer pagkatapos makumpleto ang paglilipat (kasabay/pag-block ng paglilipat).

fpgaDMATransferSetLast Isinasaad ang huling paglipat upang masimulan ng DMA ang pagproseso ng mga na-prefetch na paglilipat. Ang default na halaga ay 64 na paglilipat sa pipeline bago magsimulang gumana ang DMA sa mga paglilipat.
fpgaDMATransfer Nagsasagawa ng paglipat ng DMA.

Para sa higit pang impormasyon tungkol sa mga argumento ng API, input, at output, sumangguni sa header file matatagpuan ang $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. Maaaring i-claim ang ibang mga pangalan at brand bilang pag-aari ng iba.

Modelo ng Software Programming

Upang malaman ang higit pa tungkol sa modelo ng paggamit ng driver ng software, sumangguni sa README file matatagpuan sa $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Pagpapatakbo ng DMA AFU Halample

Bago ka magsimula:

  • Dapat pamilyar ka sa examples sa Intel Acceleration Stack Quick Start Guide para sa Intel FPGA Programmable Acceleration Card D5005.
  • Dapat mong tukuyin ang isang variable ng kapaligiran. Ang variable ng kapaligiran ay nakasalalay sa bersyon ng Intel Acceleration Stack na iyong ginagamit:
    • Para sa kasalukuyang bersyon, itakda ang environment variable sa $OPAE_PLATFORM_ROOT
  • Dapat mong i-install ang library ng Intel Threading Building Blocks (TBB) dahil umaasa dito ang driver ng DMA.
  • Dapat ka ring mag-set up ng dalawang 1 GB na malalaking pahina upang patakbuhin ang sampang aplikasyon. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Gawin ang mga sumusunod na hakbang para i-download ang bitstream ng DMA Accelerator Function (AF), para buuin ang application at driver, at para patakbuhin ang design example:

  1. Palitan sa DMA application at direktoryo ng driver: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Buuin ang driver at application: gumawa
  3. I-download ang DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Isagawa ang host application para magsulat ng 100 MB sa 1 MB na bahagi mula sa host memory hanggang sa FPGA device memory at basahin itong muli: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Kaugnay na Impormasyon
Intel Acceleration Stack Quick Start Guide para sa Intel FPGA Programmable Acceleration Card D5005 Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago mag-order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Pagsasama-sama ng DMA AFU Halample

Para makabuo ng synthesis build environment para mag-compile ng AF, gamitin ang afu_synth_setup command bilang sumusunod:

  1. Palitan sa DMA AFU sampang direktoryo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Bumuo ng direktoryo ng pagbuo ng disenyo: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. Mula sa synthesis build directory na binuo ng afu_synth_setup, ilagay ang mga sumusunod na command mula sa isang terminal window para bumuo ng AF para sa target na hardware platform: cd build_synth run.sh Ang run.sh AF generation script ay lumilikha ng AF image na may parehong base filepangalanan bilang configuration ng platform ng AFU file (.json) na may .gbs suffix sa lokasyon:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago mag-order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Ginagaya ang AFU Halample

Inirerekomenda ng Intel na sumangguni ka sa Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Guide para sa iyong Intel FPGA PAC na maging pamilyar sa pagtulad sa katulad na examples at upang i-setup ang iyong kapaligiran. Bago ka magpatuloy sa mga sumusunod na hakbang, i-verify na ang OPAE_PLATFORM_ROOT environment variable ay nakatakda sa OPAE SDK installation directory. Kumpletuhin ang mga sumusunod na hakbang para i-setup ang hardware simulator para sa DMA AFU:

  1. Palitan sa DMA AFU sampang direktoryo: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Lumikha ng isang ASE na kapaligiran sa isang bagong direktoryo at i-configure ito para sa pagtulad sa isang AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Baguhin sa direktoryo ng build ng ASE: cd build_ase_dir
  4. Buuin ang driver at application: gumawa
  5. Gumawa ng simulation: gumawa ng sim

Sampang output mula sa hardware simulator:

[SIM] ** PANSIN : BAGO patakbuhin ang software application ** [SIM] Itakda ang env(ASE_WORKDIR) sa terminal kung saan tatakbo ang application (copy-and-paste) => [SIM] $SHELL | Run:[SIM] ———+————————————————— [SIM] bash/zsh | i-export ang 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] Para sa anumang iba pang $SHELL, kumonsulta sa iyong Linux administrator [SIM] [SIM] Handa na para sa simulation... [SIM] Pindutin ang CTRL-C para isara ang simulator...

Kumpletuhin ang mga sumusunod na hakbang upang i-compile at isagawa ang DMA AFU software sa simulation environment:

  1. Magbukas ng bagong terminal window.
  2. Baguhin ang direktoryo sa: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiyahan ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Ginagaya ang AFU Halample

  1. Kopyahin ang string ng pag-setup ng kapaligiran (piliin ang string na naaangkop para sa iyong shell) mula sa mga hakbang sa itaas sa simulation ng hardware patungo sa terminal window. Tingnan ang mga sumusunod na linya sa sampang output mula sa hardware simulator. [SIM] bash/zsh | i-export ang ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
  2. I-compile ang software: $ make USE_ASE=1
  3. Isagawa ang application ng host upang magsulat ng 4 KB sa 1 KB na mga bahagi mula sa memorya ng host pabalik sa memorya ng FPGA device sa loopback mode: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Kaugnay na Impormasyon
Gabay sa Mabilis na Pagsisimula ng Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE).

Pag-optimize para sa Pinahusay na Pagganap ng DMA

Ang pagpapatupad ng NUMA (non-uniform memory access) optimization sa fpga_dma_test.cpp ay nagbibigay-daan sa processor na ma-access ang sarili nitong lokal na memorya nang mas mabilis kaysa sa pag-access ng hindi lokal na memorya (memory na lokal sa isa pang processor). Ang isang karaniwang configuration ng NUMA ay ipinapakita sa diagram sa ibaba. Ang lokal na pag-access ay kumakatawan sa pag-access mula sa isang core hanggang sa memorya ng lokal hanggang sa parehong core. Ang malayuang pag-access ay naglalarawan ng landas na tinahak kapag ang isang core sa Node 0 ay nag-access ng memorya na naninirahan sa memorya na lokal sa Node 1.

Karaniwang NUMA Configuration

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

Gamitin ang sumusunod na code upang ipatupad ang NUMA optimization sa iyong pansubok na application:

// I-set up ang wastong affinity kung hihilingin kung (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 *) & function);ON_ERR_GOTOS // Hanapin ang aparato mula sa topology hwloc_topology_t topology; hwloc_topology_init(&topology); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiyahan ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo. *Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

Pag-optimize para sa Pinahusay na Pagganap ng DMA

hwloc_topology_load(topology); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topology, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topology, 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("Ang CPUSET ay %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET is %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREMED_MBIND | DESET); #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”); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }

DMA Accelerator Functional Unit User Guide Archives

Bersyon ng Intel Acceleration Stack Gabay sa Gumagamit (PDF)
2.0 Gabay sa Gumagamit ng DMA Accelerator Functional Unit (AFU).

Kasaysayan ng Pagbabago ng Dokumento para sa Gabay sa Gumagamit ng DMA Accelerator Functional Unit

 

Bersyon ng Dokumento

Intel Acceleration Stack na Bersyon  

Mga pagbabago

 

 

2020.08.03

2.0.1 (sinusuportahan ng Intel

Quartus® Prime Pro Edition Edition 19.2)

 

Itinama ang AF na imahe file pangalan sa seksyon Pagsasama-sama ng DMA AFU Halample.

 

 

2020.04.17

2.0.1 (sinusuportahan ng Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

Nagwasto ng pahayag sa Sinasadyang Madla seksyon.

 

 

2020.02.20

2.0.1 (sinusuportahan ng Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

Inayos ang typo.

 

 

 

 

2019.11.04

 

 

2.0.1 (sinusuportahan ng Intel

Quartus Prime Pro Edition Edition 19.2)

• Pinalitan ang fpgaconf ng fpgasupdate kapag kino-configure ang FPGA gamit ang prebuild AFU sa seksyon Pagpapatakbo ng DMA AFU Halample.

• Nagdagdag ng subtitle Intel FPGA Programmable Acceleration Card D5005 sa pamagat ng dokumento.

• Nagdagdag ng environment variable na $OPAE_PLATFORM_ROOT.

• Binagong seksyon Modelo ng Software Programming para sa maliliit na pag-edit.

• Nagdagdag ng bagong seksyon Pagsasama-sama ng DMA AFU Halample.

• Binagong seksyon Pag-optimize para sa Pinahusay na Pagganap ng DMA para sa maliliit na pag-edit.

 

 

2019.08.05

2.0 (sinusuportahan ng Intel

Quartus Prime Pro Edition 18.1.2)

 

 

Paunang paglabas.

Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago mag-order para sa mga produkto o serbisyo.

  • Maaaring i-claim ang ibang mga pangalan at brand bilang pag-aari ng iba.

 

Mga Dokumento / Mga Mapagkukunan

Intel FPGA Programmable Acceleration Card D5005 [pdf] Gabay sa Gumagamit
FPGA Programmable Acceleration Card, D5005, FPGA Programmable Acceleration Card D5005, DMA Accelerator Functional Unit

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *