intel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-LOGO.

intel AN 829 PCI Express* Avalon MM DMA Reference Design

intel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-PRODUCT

AN 829: PCI Express* Avalon®-MM DMA საცნობარო დიზაინი

შესავალი

PCI Express* Avalon® Memory-Mapped (Avalon-MM) პირდაპირი მეხსიერების წვდომის (DMA) საცნობარო დიზაინი აჩვენებს Intel® Arria® 10, Intel Cyclone® 10 GX და Intel Stratix® 10 მყარი IP IP-ს PCIe* გამოყენებით Avalon-MM ინტერფეისი და ჩაშენებული, მაღალი ხარისხის DMA კონტროლერი.
დიზაინი მოიცავს Linux პროგრამული უზრუნველყოფის დრაივერს DMA გადარიცხვების დასაყენებლად. წაკითხული DMA გადააქვს მონაცემებს სისტემის მეხსიერებიდან ჩიპზე ან გარე მეხსიერებაში. ჩაწერის DMA გადააქვს მონაცემები ჩიპზე ან გარე მეხსიერებიდან სისტემის მეხსიერებაში. Linux-ის პროგრამული უზრუნველყოფის დრაივერი ასევე ზომავს სისტემის მუშაობას. ეს საცნობარო დიზაინი საშუალებას გაძლევთ შეაფასოთ PCIe პროტოკოლის მოქმედება Avalon-MM ინტერფეისის გამოყენებით ჩაშენებული, მაღალი ხარისხის DMA-ით.
სურათი 1: PCIe Avalon-MM DMA საცნობარო დიზაინის ბლოკის დიაგრამაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-1ეს ბლოკ-სქემა აჩვენებს როგორც ჩიპზე, ასევე გარე მეხსიერების ვარიანტებს.

შენიშვნები:

  1. Write Mover გადასცემს მონაცემებს ლოკალური დომენიდან მასპინძელ დომენში
  2. Read Mover გადასცემს მონაცემებს მასპინძელი დომენიდან ლოკალურ დომენში

ინტელის კორპორაცია. Ყველა უფლება დაცულია. Intel, Intel-ის ლოგო და სხვა Intel ნიშნები არის Intel Corporation-ის ან მისი შვილობილი კომპანიების სავაჭრო ნიშნები. Intel იძლევა გარანტიას მისი FPGA და ნახევარგამტარული პროდუქტების შესრულებაზე მიმდინარე სპეციფიკაციების შესაბამისად Intel-ის სტანდარტული გარანტიის შესაბამისად, მაგრამ იტოვებს უფლებას ნებისმიერ დროს შეიტანოს ცვლილებები ნებისმიერ პროდუქტსა და სერვისში შეტყობინების გარეშე. Intel არ იღებს პასუხისმგებლობას ან პასუხისმგებლობას, რომელიც წარმოიქმნება აქ აღწერილი ნებისმიერი ინფორმაციის, პროდუქტის ან სერვისის აპლიკაციის ან გამოყენების შედეგად, გარდა იმ შემთხვევისა, რაც წერილობით არის დათანხმებული Intel-ის მიერ. Intel-ის მომხმარებლებს ურჩევენ, მიიღონ მოწყობილობის სპეციფიკაციების უახლესი ვერსია, სანამ დაეყრდნონ რაიმე გამოქვეყნებულ ინფორმაციას და განათავსონ შეკვეთები პროდუქტებსა და სერვისებზე.

  • სხვა სახელები და ბრენდები შეიძლება მოითხოვონ, როგორც სხვების საკუთრება.

დაკავშირებული ინფორმაცია

  • Intel Stratix 10 Avalon-MM ინტერფეისი PCIe Solutions მომხმარებლის სახელმძღვანელო
  • Intel Arria 10 ან Intel Cyclone 10 Avalon-MM DMA ინტერფეისი PCIe Solutions მომხმარებლის სახელმძღვანელო
  • PCI Express Base Specification Revision 3.0

DMA Reference დიზაინის ტექნიკისა და პროგრამული უზრუნველყოფის მოთხოვნები

ტექნიკის მოთხოვნები
საცნობარო დიზაინი მუშაობს შემდეგი განვითარების კომპლექტებზე:

  • Intel Arria 10 GX FPGA განვითარების ნაკრები
  • Intel Cyclone 10 GX FPGA განვითარების ნაკრები
  • Intel Stratix 10 FPGA განვითარების ნაკრები
  • საცნობარო დიზაინს ორი კომპიუტერი სჭირდება:
  • კომპიუტერი PCIe Gen3 x8 ან x16 სლოტით, რომელიც მუშაობს Linux-ზე. ეს კომპიუტერი არის კომპიუტერის ნომერი 1.
  • დაინსტალირებულია მეორე კომპიუტერი Intel Quartus® Prime პროგრამული უზრუნველყოფის ვერსიით 18.0. ეს კომპიუტერი ჩამოტვირთავს FPGA SRAM ობიექტს File (.sof) განვითარების ნაკრების FPGA-ს. ეს კომპიუტერი არის კომპიუტერის ნომერი 2.

პროგრამული უზრუნველყოფის მოთხოვნები

  • კომპიუტერის ნომერ 1-ზე დაინსტალირებული საცნობარო დიზაინის პროგრამა. საცნობარო დიზაინები ხელმისაწვდომია Intel FPGA Design Store-ში. Intel Quartus Prime Pro Edition პლატფორმის არქივი File (.par) მოიცავს რეკომენდებულ სინთეზის, მორგების და დროის ანალიზის პარამეტრებს საცნობარო დიზაინებში მითითებული პარამეტრებისთვის.
  • Intel Quartus Prime პროგრამული უზრუნველყოფა დაინსტალირებულია კომპიუტერის ნომერ 2-ზე. შეგიძლიათ ჩამოტვირთოთ ეს პროგრამა Intel Quartus Prime Pro Edition პროგრამული უზრუნველყოფის მახასიათებლები/ჩამოტვირთვა web გვერდი.
  • Linux-ის დრაივერი კონფიგურირებულია სპეციალურად ამ საცნობარო დიზაინისთვის.

დაკავშირებული ინფორმაცია

  • Intel Arria 10 Reference Design
    • ჩამოტვირთეთ საცნობარო დიზაინი და დიზაინის პროგრამული უზრუნველყოფა Design Store-დან.
  • Intel Cyclone 10 GX Reference Design
    • ჩამოტვირთეთ საცნობარო დიზაინი და დიზაინის პროგრამული უზრუნველყოფა Design Store-დან.
  • Stratix 10 Reference Design
    • ჩამოტვირთეთ საცნობარო დიზაინი და დიზაინის პროგრამული უზრუნველყოფა Design Store-დან.
  • Intel Quartus Prime Pro Edition ჩამოტვირთვის ცენტრი

Avalon-MM DMA Bridge მოდულის აღწერა

Avalon-MM ინტერფეისი DMA-სთან მოიცავს შემდეგ მოდულებს:
სურათი 2. PCIe Avalon-MM DMA საცნობარო დიზაინის ბლოკის დიაგრამაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-2ეს ბოკის დიაგრამა აჩვენებს როგორც ჩიპზე, ასევე გარე მეხსიერების ვარიანტებს.

შენიშვნები:

  1. Write Mover გადასცემს მონაცემებს ლოკალური დომენიდან მასპინძელ დომენში
  2. Read Mover გადასცემს მონაცემებს მასპინძელი დომენიდან ლოკალურ დომენში

წაიკითხეთ მონაცემთა გადამყვანი
Read Data Mover აგზავნის მეხსიერების წაკითხულ Transaction Layer Packet-ს (TLPs) ზემოთ. მას შემდეგ, რაც Read Data Mover მიიღებს Completion-ს, Read Data Mover წერს მიღებულ მონაცემებს ჩიპზე ან გარე მეხსიერებაში.
ჩაწერეთ მონაცემთა გადამყვანი
Write Data Mover კითხულობს მონაცემებს ჩიპზე ან გარე მეხსიერებიდან და აგზავნის მონაცემებს ზემოთ, მეხსიერების ჩაწერის TLP-ების გამოყენებით PCIe ბმულზე.
DMA აღწერის კონტროლერი
Descriptor Controller მოდული მართავს DMA წაკითხვის და ჩაწერის ოპერაციებს. მასპინძელი პროგრამული უზრუნველყოფის პროგრამების შიდა რეგისტრები აღწერის კონტროლერში აღწერის ცხრილის მდებარეობით და ზომით, რომელიც მდებარეობს ჰოსტის სისტემის მეხსიერებაში Avalon-MM RX ძირითადი პორტის მეშვეობით. ამ ინფორმაციის საფუძველზე, Descriptor Controller ხელმძღვანელობს Read Data Mover-ს, რომ დააკოპიროს მთელი ცხრილი ადგილობრივ FIFO-ებში შესასრულებლად. Descriptor Controller აგზავნის დასრულების სტატუსს ზემოთ Avalon TX slave (TXS) პორტის მეშვეობით.
თქვენ ასევე შეგიძლიათ გამოიყენოთ თქვენი საკუთარი გარე აღწერის კონტროლერი წაკითხვის და ჩაწერის მონაცემთა გადამყვანების სამართავად. თუმცა, თქვენ არ შეგიძლიათ შეცვალოთ ინტერფეისი თქვენს გარე კონტროლერსა და საცნობარო დიზაინში ჩაშენებულ წაკითხვისა და ჩაწერის მონაცემთა გადამტანებს შორის.
TX Slave
TX Slave მოდული ავრცელებს Avalon-MM კითხვას და წერას ზემოთ. გარე Avalon-MM მასტერებს, მათ შორის DMA კონტროლის მასტერს, შეუძლიათ სისტემის მეხსიერებაზე წვდომა TX Slave-ის გამოყენებით. DMA კონტროლერი იყენებს ამ გზას DMA სტატუსის ზემოთ ნაკადის გასაახლებლად, შეტყობინებების სიგნალიზაციის შეწყვეტის (MSI) TLP-ების გამოყენებით. RX Master (შიდა პორტი BAR0 კონტროლისთვის) RX Master მოდული ავრცელებს ერთჯერადი dword წაკითხვისა და ჩაწერის TLP-ებს Root პორტიდან Avalon-MM დომენამდე 32-ბიტიანი Avalon-MM ძირითადი პორტის მეშვეობით. პროგრამული უზრუნველყოფა ავალებს RX Master-ს გაუგზავნოს კონტროლის, სტატუსის და აღწერის ინფორმაცია Avalon-MM სლავებს, მათ შორის DMA კონტროლის მონას. RX Master პორტი არის შიდა პორტი, რომელიც არ ჩანს პლატფორმის დიზაინერში.

Reference Design-თან მუშაობა

პროექტის იერარქია

საცნობარო დიზაინი იყენებს შემდეგ დირექტორიას სტრუქტურას:

  • ზედა - უმაღლესი დონის მოდული.
  • top_hw — პლატფორმის დიზაინერი უმაღლესი დონის fileს. თუ თქვენ შეცვლით დიზაინს პლატფორმის დიზაინერის გამოყენებით, თქვენ უნდა განაახლოთ სისტემა, რომ ცვლილებები ძალაში შევიდეს.

პარამეტრის პარამეტრები PCI Express მყარი IP ვარიაციებისთვის

ეს საცნობარო დიზაინი მხარს უჭერს 256 ბაიტი მაქსიმალური დატვირთვის ზომას. შემდეგ ცხრილებში ჩამოთვლილია ყველა პარამეტრის მნიშვნელობა.
ცხრილი 1. სისტემის პარამეტრები

პარამეტრი ღირებულება
ზოლების რაოდენობა Intel Cyclone 10 GX: x4

Intel Arria 10, Intel Stratix 10: x8

ზოლის განაკვეთი Intel Cyclone 10 GX: Gen2 (5.0 Gbps)

Intel Arria 10 Intel Stratix 10: Gen3 (8.0 Gbps)

RX ბუფერული კრედიტის განაწილება – შესრულება მიღებული მოთხოვნისთვის Intel Arria 10, Intel Cyclone 10 GX: დაბალი Intel Stratix 10: მიუწვდომელია

ცხრილი 2. საბაზისო მისამართების რეგისტრის (BAR) პარამეტრები

პარამეტრი ღირებულება
BAR0 64-ბიტიანი წინასწარ გადმოტვირთვა
BAR1 გამორთულია
BAR2 64-ბიტიანი წინასწარ გადმოტვირთვა

BAR2 გამორთულია Intel Stratix 10-ისთვის

განაგრძო…
პარამეტრი ღირებულება
BAR3 გამორთულია
BAR4 64-ბიტიანი წინასწარ გადმოტვირთვა

BAR4 გამორთულია Intel Arria 10-ისთვის და Intel Cyclone 10 GX-ისთვის

BAR5 გამორთულია

ცხრილი 3. მოწყობილობის იდენტიფიკაციის რეესტრის პარამეტრები

პარამეტრი ღირებულება
გამყიდველი ID 0x00001172
მოწყობილობის ID 0x0000E003
გადასინჯვის ID 0x00000001
კლასის კოდი 0x00000000
ქვესისტემის გამყიდველი ID 0x00000000
ქვესისტემის მოწყობილობის ID 0x00000000

ცხრილი 4. PCI Express/PCI* შესაძლებლობები

პარამეტრი ღირებულება
დატვირთვის მაქსიმალური ზომა 256 ბაიტი
დასრულების ვადის დიაპაზონი არცერთი
იმპლემენტაციის დასრულების ვადის გათიშვა ჩართულია

ცხრილი 5. შეცდომის მოხსენების პარამეტრები

პარამეტრი ღირებულება
გაფართოებული შეცდომის მოხსენება (AER) ჩართულია
ECRC შემოწმება გამორთულია
ECRC თაობა გამორთულია

ცხრილი 6.ბმულის პარამეტრები

პარამეტრი ღირებულება
დააკავშირეთ პორტის ნომერი 1
სლოტის საათის კონფიგურაცია ჩართულია

ცხრილი 7. შეტყობინებების სიგნალიზაცია (MSI) და MSI-XSettings

პარამეტრი ღირებულება
მოთხოვნილი MSI შეტყობინებების რაოდენობა 4
განახორციელეთ MSI-X გამორთულია
მაგიდის ზომა 0
მაგიდის ოფსეტური 0x0000000000000000
განაგრძო…
პარამეტრი ღირებულება
ცხრილის BAR მაჩვენებელი 0
მომლოდინე ბიტების მასივის (PBA) ოფსეტური 0x0000000000000000
PBA BAR ინდიკატორი 0

ცხრილი 8. ენერგიის მენეჯმენტი

პარამეტრი ღირებულება
საბოლოო წერტილი L0s მისაღები შეყოვნება მაქსიმუმ 64 ns
საბოლოო წერტილი L1 მისაღები შეყოვნება მაქსიმუმ 1 ჩვენგანი

ცხრილი 9.PCIe მისამართის სივრცის პარამეტრი

პარამეტრი ღირებულება
მისამართების სიგანე ხელმისაწვდომი PCIe მეხსიერების სივრცეში 40

PCIe Avalon-MM DMA საცნობარო დიზაინის პლატფორმის დიზაინერის სისტემები

შემდეგი სურათები აჩვენებს პლატფორმის დიზაინერის სისტემებს Intel Arria 10, Intel Cyclone 10 GX და Intel Stratix 10 მოწყობილობებისთვის.
სურათი 3. Intel Arria 10 GX DMA Reference Design Platform Platform Designer Systemintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-3

სურათი 4.Intel Cyclone 10 GX GX DMA Reference Design Platform Platform Designer Systemintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-4

სურათი 5. Intel Stratix 10 GX DMA Reference Design Platform Platform Designer Systemintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-5Intel Stratix 10 დიზაინი მოიცავს მილსადენის კომპონენტებს და საათის გადაკვეთის ლოგიკას, რომლებიც არ არის წარმოდგენილი სხვა მოწყობილობებში.

ცხრილი 10. პლატფორმის დიზაინერის პორტის აღწერილობები

პორტი ფუნქცია აღწერა
rxm_bar2

or

rxm_bar4

Avalon-MM პორტი ეს არის Avalon-MM სამაგისტრო პორტი. PCIe ჰოსტი წვდება მეხსიერებას PCIe BAR2-ის მეშვეობით Intel Arria 10 და Intel Cyclone 10 GX მოწყობილობებისთვის. მასპინძელი წვდება მეხსიერებას PCIe BAR4-ის მეშვეობით Intel Stratix 10 მოწყობილობებისთვის. ეს ბარები უკავშირდება როგორც ჩიპზე, ასევე გარე მეხსიერებას.

ტიპიურ აპლიკაციაში, სისტემური პროგრამული უზრუნველყოფა აკონტროლებს ამ ბარს, რათა მოხდეს შემთხვევითი მონაცემების ინიციალიზაცია გარე მეხსიერებაში. პროგრამული უზრუნველყოფა ასევე კითხულობს მონაცემებს, რათა შეამოწმოს სწორი ოპერაცია.

tx TX Avalon-MM Slave ეს არის Avalon-MM slave პორტი. ტიპიურ აპლიკაციაში, Avalon-MM მასტერი აკონტროლებს ამ პორტს მეხსიერების წაკითხვისა და ჩაწერის გასაგზავნად PCIe დომენში.

როდესაც DMA დაასრულებს ოპერაციას, Descriptor Controller იყენებს ამ პორტს DMA სტატუსის დასაწერად PCIe დომენის აღწერის ცხრილში. Descriptor Controller ასევე იყენებს ამ პორტს MSI შეფერხებების გასაგზავნად ზემოთ.

dma_rd_master წაიკითხეთ მონაცემთა გადამყვანი ეს არის Avalon-MM სამაგისტრო პორტი. Read Data Mover იყენებს ამ Avalon-MM მასტერს PCIe დომენიდან მონაცემების გადასატანად ჩიპზე ან გარე მეხსიერებაში. Read Data Mover ასევე იყენებს ამ პორტს PCIe დომენიდან აღწერის მოსატანად და FIFO-ში ჩასაწერად Descriptor Controller-ში.

დიზაინი მოიცავს ცალკეულ აღწერის ცხრილებს წაკითხვისა და ჩაწერის აღწერებისთვის. შესაბამისად, dma_rd_master პორტი უერთდება wr_dts_slave-ს ჩაწერის DMA აღწერისთვის FIFO და rd_dts_slave-ს წაკითხული DMA აღწერისთვის FIFO.

dma_wr_master ჩაწერეთ მონაცემთა გადამყვანი ეს არის Avalon-MM სამაგისტრო პორტი. Write Data Mover იყენებს ამ Avalon-MM მასტერს, რათა წაიკითხოს მონაცემები ჩიპზე ან გარე მეხსიერებიდან და შემდეგ ჩაწეროს მონაცემები PCIe დომენში.

გარე მეხსიერების კონტროლერი არის ერთპორტიანი ოპერატიული მეხსიერება. შესაბამისად, Write Data Mover და Read Data Mover უნდა გაიზიარონ ეს პორტი გარე მეხსიერების შესაფასებლად.

wr_dts_slave rd_dts_slave FIFO აღწერის კონტროლერში ეს არის Avalon-MM slave პორტები FIFO-ებისთვის აღწერის კონტროლერში. როდესაც Read Data Mover იღებს აღწერებს სისტემის მეხსიერებიდან, Read Data Mover წერს აღწერებს FIFO-ში wr_dts_slave და rd_dts_slave პორტების გამოყენებით.
wr_dcm_master rd_dcm_master საკონტროლო მოდული Descriptor Controller-ში Descriptor Controller-ის მართვის მოდული მოიცავს ერთ გადაცემის და ერთი მიღების პორტს წაკითხვისა და ჩაწერის DMA-ებისთვის. მიმღების პორტი უკავშირდება RXM_BAR0-ს. გადაცემის პორტი უკავშირდება txs-ს.

RXM_BAR0-დან მიღების გზა შიგნიდან უკავშირდება. RXM_BAR0 არ არის ნაჩვენები პლატფორმის დიზაინერის კავშირების პანელში. გადაცემის გზისთვის, წაკითხვის და ჩაწერის DMA პორტები გარედან უკავშირდება txs-ს. ეს პორტები ჩანს პლატფორმის დიზაინერის კავშირების პანელში.

შიდა კავშირი, არ არის ნაჩვენები Avalon-MM პორტი ეს Avalon-MM ძირითადი პორტი გადასცემს მეხსიერების წვდომას PCIe ჰოსტიდან PCIe BAR0-ზე. ჰოსტი იყენებს ამ პორტს Descriptor Controller-ის დასაპროგრამებლად. იმის გამო, რომ ეს საცნობარო დიზაინი მოიცავს Descriptor Controller-ს, როგორც შიდა მოდულს, პლატფორმის დიზაინერი არ აჩვენებს ამ პორტს ზედა დონის კავშირების პანელზე.
onchip_memory2_0 64 KB ორმაგი პორტის ოპერატიული მეხსიერება ეს არის 64 KB ორმაგი პორტიანი ჩიპური მეხსიერება. მისამართის დიაპაზონი არის 0x0800_0000-0x0800_FFFF Avalon-MM ავტობუსში. ეს მისამართი არის DMA-ების ჩაწერის წყაროს მისამართი ან წაკითხული DMA-ების დანიშნულების მისამართი.

მონაცემთა კორუფციის თავიდან ასაცილებლად, პროგრამული უზრუნველყოფა მეხსიერებას ყოფს ცალკეულ რეგიონებად წაკითხვისა და ჩაწერისთვის. რეგიონები ერთმანეთს არ ემთხვევა.

Intel DDR3 ან DDR4 კონტროლერი DDR3 ან DDR4 კონტროლერი ეს არის ერთპორტიანი DDR3 ან DDR4 კონტროლერი.

DMA პროცედურის საფეხურები

ჰოსტზე გაშვებული პროგრამული უზრუნველყოფა ასრულებს შემდეგ ნაბიჯებს DMA-ს დასაწყებად და შედეგების დასადასტურებლად:

  1. პროგრამული უზრუნველყოფა გამოყოფს სისტემის მეხსიერებას აღწერის ცხრილისთვის.
  2. პროგრამული უზრუნველყოფა გამოყოფს სისტემის მეხსიერებას DMA მონაცემთა გადაცემისთვის.
  3. პროგრამული უზრუნველყოფა წერს დესკრიპტორებს სისტემის მეხსიერების აღწერის ცხრილში. DMA მხარს უჭერს 128 წაკითხვის და 128 ჩაწერის აღწერს. აღწერის ცხრილი აღწერს შემდეგ ინფორმაციას:
    1. აღწერის ID, 0-127 დიაპაზონში
    2. წყაროს მისამართი
    3. დანიშნულების მისამართი
    4. ზომა
  4.  წაკითხული DMA-სთვის, პროგრამული უზრუნველყოფა ახდენს სისტემის მეხსიერების სივრცის ინიციალიზებას შემთხვევითი მონაცემებით. Read Data Mover ამ მონაცემებს სისტემის მეხსიერებიდან გადააქვს ჩიპზე ან გარე მეხსიერებაში. ჩაწერის DMA-სთვის, პროგრამული უზრუნველყოფა ახდენს ჩიპზე ან გარე მეხსიერების ინიციალიზებას შემთხვევითი მონაცემებით. Write Data Mover გადააქვს მონაცემები ჩიპზე ან გარე მეხსიერებიდან სისტემის მეხსიერებაში.
  5. პროგრამული უზრუნველყოფა აპროგრამებს რეგისტრებს Descriptor Controller-ის მართვის მოდულში BAR0-ის საშუალებით. პროგრამირება განსაზღვრავს აღწერის ცხრილის საბაზისო მისამართს სისტემის მეხსიერებაში და FIFO-ს საბაზისო მისამართს, რომელიც ინახავს დესკრიპტორებს FPGA-ში.
  6. DMA-ის დასაწყებად, პროგრამული უზრუნველყოფა წერს ბოლო აღმწერის ID-ს აღწერის კონტროლერის საკონტროლო ლოგიკაში. DMA იწყებს აღწერების მიღებას. DMA იწყება დესკრიპტორის ID 0-ით და სრულდება ბოლო აღმწერის ID-ით.
  7. ბოლო აღმწერისთვის მონაცემთა გადაცემის დასრულების შემდეგ, Descriptor Controller წერს 1'b1 Done ბიტზე დესკრიპტორის ცხრილის ჩანაწერში, რომელიც შეესაბამება PCIe დომენის ბოლო დესკრიპტორს txs პორტის გამოყენებით.
  8. პროგრამული უზრუნველყოფა გამოკითხავს Done ბიტს აღწერის ცხრილის ჩანაწერში, რომელიც შეესაბამება ბოლო აღმწერს. მას შემდეგ, რაც DMA Controller ჩაწერს Done bit-ს, DMA Controller ითვლის გამტარუნარიანობას. პროგრამული უზრუნველყოფა ადარებს მონაცემებს სისტემის მეხსიერებაში ჩიპზე ან გარე მეხსიერებასთან. ტესტი გადის, თუ შეცდომები არ არის.
  9. ერთდროული წაკითხვისა და ჩაწერისთვის, პროგრამა იწყებს წაკითხვის DMA ოპერაციას ჩაწერის DMA ოპერაციამდე. DMA სრულდება, როდესაც ყველა წაკითხვისა და ჩაწერის DMA დასრულდება.

აპარატურის დაყენება

  1. გამორთეთ კომპიუტერი ნომერი 1.
  2. შეაერთეთ FPGA განვითარების ნაკრების ბარათი PCIe სლოტში, რომელიც მხარს უჭერს Gen2 x4 ან Gen3 x8.
  3. Intel Stratix 10 10 FPGA განვითარების ნაკრებისთვის, კონექტორები J26 და J27 აძლიერებენ ბარათს. ბარათის ხელმისაწვდომ PCIe სლოტში ჩასმის შემდეგ, შეაერთეთ 2×4- და 2×3-პინიანი PCIe კვების კაბელები 1-ლი კომპიუტერის კვების წყაროდან, შესაბამისად, PCIe ბარათის J26 და J27.
  4. შეაერთეთ USB კაბელი კომპიუტერის ნომერი 2-დან FPGA განვითარების კომპლექტთან. განვითარების ნაკრები მოიცავს Intel FPGA ჩამოტვირთვის კაბელს FPGA პროგრამირებისთვის.
  5. PCIe სლოტის მეშვეობით FPGA განვითარების ნაკრების გასააქტიურებლად, ჩართეთ კომპიუტერის ნომერი 1. ალტერნატიულად, შეგიძლიათ ჩართოთ FPGA განვითარების ნაკრები გარე კვების ადაპტერის გამოყენებით, რომელიც მიეწოდება კომპლექტს.
  6. Intel Cyclone 10 GX FPGA განვითარების ნაკრებისთვის, ბორტზე პროგრამირებადი ოსცილატორი არის საათის წყარო ტექნიკის კომპონენტებისთვის. მიჰყევით ინსტრუქციას Intel Cyclone 10 GX FPGA პროგრამირებადი ოსცილატორის დაყენებაში ამ ოსცილატორის დასაპროგრამებლად.
  7. კომპიუტერის ნომერი 2-ზე აიღეთ Intel Quartus Prime პროგრამისტი და დააკონფიგურირეთ FPGA Intel FPGA ჩამოტვირთვის კაბელის მეშვეობით.
    შენიშვნა: თქვენ უნდა ხელახლა დააკონფიგურიროთ FPGA, როდესაც FPGA განვითარების ნაკრები კარგავს ენერგიას.
  8. იმისათვის, რომ აიძულოთ სისტემის ჩამოთვლა PCIe მოწყობილობის აღმოჩენის მიზნით, გადატვირთეთ კომპიუტერი 1. თუ იყენებთ Intel Stratix 10 GX FPGA განვითარების კომპლექტს, შეგიძლიათ მიიღოთ შემდეგი შეცდომის შეტყობინება BIOS-ის ინიციალიზაციის დროს, თუ მეხსიერების შედგენილი I/O არის მხოლოდ 4 GB: არასაკმარისი. აღმოჩენილია PCI რესურსები. ამ პრობლემის გადასაჭრელად, ჩართეთ 4G ზემოთ დეკოდირება BIOS ჩატვირთვის მენიუში.
დაკავშირებული ინფორმაცია

Intel Cyclone 10 GX FPGA ოსცილატორის დაპროგრამება მე-12 გვერდზე

  • Intel Cyclone 10 GX FPGA Oscillator-ის პროგრამირება
  • Intel Cyclone 10 GX განვითარების ნაკრები მოიცავს პროგრამირებად ოსცილატორს, რომელიც უნდა დააყენოთ, სანამ შეძლებთ საცნობარო დიზაინის გაშვებას Intel Cyclone 10 GX მოწყობილობებისთვის. ClockController GUI გაძლევთ საშუალებას შემოიტანოთ სწორი პარამეტრები.
  1. იპოვნეთ ნაკრების გირაოს (zip) ბმული Intel Cyclone 10 GX FPGA განვითარების ნაკრების დოკუმენტაციის არეში web გვერდი.
  2. გამოიყენეთ ეს ბმული cyclone-10-gx-kit-collateral.zip-ის ჩამოსატვირთად
  3. გახსენით cyclone-10-gx-kit-collateral.zip სამუშაო დირექტორიაში კომპიუტერის ნომერი 2-ზე.
  4. საათის კონტროლერის დიალოგური ფანჯრის გასახსნელად, აკრიფეთ შემდეგი ბრძანებები: % cd /ციკლონი-10-გხ-გირაო/ექსamples/board_test_system/ % ./ClockController.sh
    სურათი 6. საათის კონტროლერის GUI საწყის მდგომარეობაშიintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-6
  5. საათის კონტროლერის GUI-ში დააჭირეთ იმპორტს.
  6. დაათვალიერეთ /ციკლონი-10-გხ-გირაო/ექსamples/board_test_system/ დირექტორია და აირჩიეთ U64-Registers.txt.
  7. რეესტრის პარამეტრების იმპორტისთვის დააჭირეთ ღილაკს გახსნა.
    გამოჩნდება შეტყობინება, Si5332 Register Map is imported წარმატებით. თქვენ უნდა ნახოთ ქვემოთ ნაჩვენები საათის პარამეტრები.

სურათი 7. საათის პარამეტრები Intel Cyclone 10 GX FPGA განვითარების ნაკრებისთვისintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-7

დაკავშირებული ინფორმაცია

აპარატურის დაყენება მე-11 გვერდზე

DMA ტესტის დრაივერის ინსტალაცია და Linux DMA პროგრამული უზრუნველყოფის გაშვება
  1. კომპიუტერის 1-ის ტერმინალის ფანჯარაში გადადით DMA დრაივერის დირექტორიაში და ამოიღეთ AN829_driver.tar შემდეგი ბრძანებების აკრეფით: cd % / /_PCIe DMA_ _project/driver% tar -xvf AN829_driver.tar
  2. Linux-ის დრაივერის დასაყენებლად შესაბამისი მოწყობილობების ოჯახისთვის, აკრიფეთ ბრძანება:% sudo./install მოქმედი მნიშვნელობები არის arria10, cyclone10 და stratix10.
  3. DMA აპლიკაციის გასაშვებად, აკრიფეთ შემდეგი ბრძანება: %./run აპლიკაცია ბეჭდავს ხელმისაწვდომ ბრძანებებს DMA ტრაფიკის დასაზუსტებლად. ნაგულისხმევად, პროგრამული უზრუნველყოფა საშუალებას აძლევს DMA კითხვას, DMA წერს და ერთდროული DMA კითხულობს და წერს. შემდეგ ცხრილში მოცემულია ხელმისაწვდომი ბრძანებები:

ცხრილი 11.DMA ტესტის ბრძანებები

ბრძანების ნომერი ფუნქცია
1 დაიწყეთ DMA.
2 ჩართეთ ან გამორთეთ წაკითხული DMA.
3 ჩაწერის DMA ჩართვა ან გამორთვა.
4 ჩართეთ ან გამორთეთ ერთდროულად წაკითხვისა და ჩაწერის DMA.
5 დააყენეთ dwords-ის რაოდენობა თითო აღმწერზე. სამართლებრივი დიაპაზონი არის 256-4096 დვორდი.
6 დააყენეთ აღწერების რაოდენობა. სამართლებრივი დიაპაზონი არის 1-127 აღმწერი.
7 ნაგულისხმევად, საცნობარო დიზაინი ირჩევს ჩიპზე არსებულ მეხსიერებას. თუ აირჩევთ ამ ბრძანებას, თანმიმდევრული გაშვებები გადართეთ ჩიპსა და გარე მეხსიერებას შორის.
8 გაუშვით DMA უწყვეტ ციკლში.
10 გასვლა

მაგample, აკრიფეთ შემდეგი ბრძანებები, რათა მიუთითოთ 4096 dword თითო დესკრიპტორზე და 127 აღმწერი: % 5 4096 % 6 127 % 8

შემდეგი ფიგურები აჩვენებს გამტარუნარიანობას DMA წაკითხვისთვის, DMA ჩაწერისთვის და ერთდროული DMA წაკითხვისა და ჩაწერისთვის:

სურათი 8. Intel Arria 10 DMA გამტარუნარიანობაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-8

სურათი 9. Intel Cyclone 10 GX DMA გამტარუნარიანობაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-9სურათი 10. Intel Stratix 10 DMA გამტარუნარიანობაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-10

PCI Express გამტარუნარიანობის გაგება

PCI Express სისტემაში გამტარუნარიანობა დამოკიდებულია შემდეგ ფაქტორებზე:

  • პროტოკოლის ზედნადები
  • დატვირთვის ზომა
  • დასრულების შეყოვნება
  • ნაკადის კონტროლის განახლების შეყოვნება
  • მოწყობილობები, რომლებიც ქმნიან ბმულს

პროტოკოლის ზედნადები
პროტოკოლის ზედნადები მოიცავს შემდეგ სამ კომპონენტს:

  • 128b/130b კოდირება და გაშიფვრა — Gen3 ბმულები იყენებენ 128b/130b დაშიფვრას. ეს კოდირება ამატებს ორ სინქრონიზაციის (სინქრონიზაციის) ბიტს თითოეულ 128-ბიტიან მონაცემთა გადაცემას. შესაბამისად, კოდირების და დეკოდირების ზედნადები ძალიან მცირეა 1.56%. Gen3 x8 ბმულის მონაცემთა ეფექტური სიჩქარე არის დაახლოებით 8 გიგაბაიტი წამში (GBps).
  • მონაცემთა ბმული ფენის პაკეტები (DLLP) და ფიზიკური ფენის პაკეტები (PLPs) — აქტიური ბმული ასევე გადასცემს DLLP-ებსა და PLP-ებს. PLP-ები შედგება SKP შეკვეთილი კომპლექტებისგან, რომლებიც არიან
    16-24 ბაიტი. DLLP არის ორი dword. DLLP-ები ახორციელებენ ნაკადის კონტროლს და ACK/NAK პროტოკოლს.
  • TLP პაკეტის ზედნადები — ერთ TLP-თან დაკავშირებული ზედნადები მერყეობს 5-7 დვორდის ფარგლებში, თუ არჩევითი ECRC არ შედის. ზედნადები მოიცავს შემდეგ ველებს:
    • დაწყების და დასრულების კადრების სიმბოლოები
    • თანმიმდევრობის ID
    • 3 ან 4 სიტყვიანი TLP სათაური
    • ბმულის ციკლური სიჭარბის შემოწმება (LCRC)
    • მონაცემთა დატვირთვის 0-1024 დვორდი
  • სურათი 11. TLP პაკეტის ფორმატი
დაწყება

1 ბაიტი

თანმიმდევრობა

2 ბაიტი

TLP სათაური

3-4 DW

მონაცემთა დატვირთვა

0-1024 DW

ICRC

1 DW

LCRC

1 DW

დასასრული

1 ბაიტი

გამტარუნარიანობა გამოქვეყნებული ნაწერებისთვის

მაქსიმალური გამტარუნარიანობის თეორიული გაანგარიშება იყენებს შემდეგ ფორმულას: გამტარუნარიანობა = დატვირთვის ზომა / (გადატვირთვის ზომა + ზედნადები) * ბმულის მონაცემთა სიჩქარე

სურათი 12. მეხსიერების ჩაწერის მაქსიმალური გამტარუნარიანობაintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-11

გრაფიკი აჩვენებს მაქსიმალურ გამტარუნარიანობას სხვადასხვა TLP სათაურის და დატვირთვის ზომით. DLLP და PLP გამორიცხულია ამ გაანგარიშებიდან. 256 ბაიტიანი მაქსიმალური დატვირთვის ზომისა და 3 დვორდის სათაურისთვის ზედნადები არის ხუთი დვორდი. იმის გამო, რომ ინტერფეისი არის 256 ბიტი, 5-dword სათაური მოითხოვს ერთ ავტობუსის ციკლს. 256 ბაიტიანი დატვირთვა მოითხოვს 8 ავტობუსის ციკლს.

თეორიული l M ax im um გამტარუნარიანობა მ ემ ო რი რიტებისთვის (x1 )

შემდეგი განტოლება აჩვენებს მაქსიმალურ თეორიულ გამტარუნარიანობას: მაქსიმალური გამტარუნარიანობა = 8 ციკლი/9 ციკლი = 88.88% * 8 GBps = 7.2 GBps

მაქსიმალური დატვირთვის ზომის მითითება

მოწყობილობის კონტროლის რეგისტრი, ბიტები [7:5], განსაზღვრავს მიმდინარე სისტემის TLP დატვირთვის მაქსიმალურ ზომას. მოწყობილობის შესაძლებლობების რეგისტრის Maximum Payload Size ველი, ბიტები [2:0], განსაზღვრავს დატვირთვის მაქსიმალურ დასაშვებ მნიშვნელობას. თქვენ მიუთითებთ მხოლოდ წაკითხვის პარამეტრს, რომელსაც ეწოდება მაქსიმალური დატვირთვის ზომა, პარამეტრის რედაქტორის გამოყენებით. მიმდინარე სისტემისთვის მაქსიმალური TLP დატვირთვის განსაზღვრის შემდეგ, პროგრამული უზრუნველყოფა აღრიცხავს ამ მნიშვნელობას მოწყობილობის კონტროლის რეესტრში. ეს მნიშვნელობა ნაკლები უნდა იყოს მაქსიმალურ დატვირთვაზე, რომელიც მითითებულია მოწყობილობის შესაძლებლობების რეესტრის მაქსიმალური დატვირთვის ზომა ველში.
ნაკადის კონტროლის გაგება PCI Express-ისთვის
ნაკადის კონტროლი იძლევა გარანტიას, რომ TLP არ გადაიცემა, თუ მიმღებს არ აქვს საკმარისი ბუფერული სივრცე TLP-ის მისაღებად. არსებობს ცალკეული კრედიტები სათაურებისა და დატვირთვის მონაცემებისთვის. მოწყობილობას სჭირდება საკმარისი სათაური და დატვირთვის კრედიტები TLP-ის გაგზავნამდე. როდესაც აპლიკაციის ფენა სრულყოფილში იღებს TLP-ს, ის ათავისუფლებს RX ბუფერულ სივრცეს შემსრულებლის ტრანზაქციის ფენაში. შემსრულებელი უგზავნის ნაკადის კონტროლის განახლების პაკეტს (FC Update DLLP) მოხმარებული კრედიტების შესავსებად ინიციატორისთვის. როდესაც მოწყობილობა მოიხმარს ყველა თავის კრედიტს, FC განახლების DLLP-ების სიჩქარე სათაურისა და დატვირთვის კრედიტების შესავსებად ზღუდავს გამტარუნარიანობას. ნაკადის კონტროლის განახლებები დამოკიდებულია ტვირთის მაქსიმალურ ზომაზე და ორი დაკავშირებული მოწყობილობის შეყოვნებაზე.

გამტარუნარიანობა წაკითხვისთვის

PCI Express იყენებს გაყოფილი ტრანზაქციის მოდელს წაკითხვისთვის. წაკითხული ტრანზაქცია მოიცავს შემდეგ ნაბიჯებს:

  1. მომთხოვნი აგზავნის მეხსიერების წაკითხვის მოთხოვნას.
  2. შემსრულებელი აგზავნის ACK DLLP-ს, რათა დაადასტუროს მეხსიერების წაკითხვის მოთხოვნა.
  3. შემსრულებელი აბრუნებს დასრულებას მონაცემებით. შემსრულებელს შეუძლია დაყოს დასრულება მრავალ დასრულებულ პაკეტად.

წაკითხვის გამტარუნარიანობა ჩვეულებრივ უფრო დაბალია, ვიდრე ჩაწერის გამტარუნარიანობა, რადგან წაკითხვისთვის საჭიროა ორი ტრანზაქცია ერთი ჩაწერის ნაცვლად ერთი და იგივე რაოდენობის მონაცემებისთვის. წაკითხვის გამტარუნარიანობა ასევე დამოკიდებულია ორმხრივი მოგზაურობის შეფერხებაზე იმ დროს, როდესაც Application Layer გამოსცემს მეხსიერების წაკითხვის მოთხოვნას და მოთხოვნილი მონაცემების დაბრუნების დროს. გამტარუნარიანობის მაქსიმალური გასაზრდელად, აპლიკაციამ უნდა გასცეს საკმარისი წაკითხვის მოთხოვნა ამ შეფერხების დასაფარად.

სურათი 13. წაიკითხეთ მოთხოვნის დროintel-AN-829-PCI-Express-Avalon-MM-DMA-Reference-Design-FIG-12

ქვემოთ მოყვანილი ფიგურები გვიჩვენებს მეხსიერების წაკითხვის მოთხოვნის (MRD) და მონაცემებით დასრულებების (CplD) დროებს. პირველ სურათზე ნაჩვენებია მომთხოვნი, რომელიც ელოდება დასრულებას შემდგომი მოთხოვნების გაცემამდე. ლოდინი იწვევს დაბალ გამტარუნარიანობას. მეორე ფიგურა გვიჩვენებს, რომ მომთხოვნი აკეთებს რამდენიმე გამოჩენილ წაკითხვის მოთხოვნას, რათა აღმოფხვრას დაგვიანება პირველი მონაცემების დაბრუნების შემდეგ. შეფერხებების აღმოფხვრა იწვევს უფრო მაღალ გამტარუნარიანობას.

მონაცემთა სრული პაკეტებისთვის მაქსიმალური გამტარუნარიანობის შესანარჩუნებლად, მომთხოვნმა უნდა მოახდინოს შემდეგი პარამეტრების ოპტიმიზაცია:

  • დასრულებების რაოდენობა RX ბუფერში
  • ტემპი, რომლითაც აპლიკაციის ფენა გასცემს წაკითხვის მოთხოვნას და ამუშავებს დასრულების მონაცემებს

წაიკითხეთ მოთხოვნის ზომა
კიდევ ერთი ფაქტორი, რომელიც გავლენას ახდენს გამტარუნარიანობაზე, არის წაკითხვის მოთხოვნის ზომა. თუ მთხოვნელს ესაჭიროება 4 კბაიტი მონაცემები, მომთხოვნს შეუძლია გასცეს ოთხი, 1 კბ წაკითხვის მოთხოვნა ან ერთი 4 კბ წაკითხვის მოთხოვნა. 4 KB მოთხოვნა იწვევს უფრო მაღალ გამტარუნარიანობას, ვიდრე ოთხი, 1 KB წაკითხვა. მაქსიმალური წაკითხვის მოთხოვნის ზომის მნიშვნელობა მოწყობილობის კონტროლის რეესტრში, ბიტები [14:12], განსაზღვრავს წაკითხვის მოთხოვნის ზომას.
გამოჩენილი წაკითხვის მოთხოვნები
საბოლოო ფაქტორი, რომელსაც შეუძლია გავლენა მოახდინოს გამტარუნარიანობაზე, არის წაკითხული მოთხოვნების რაოდენობა. თუ მომთხოვნი აგზავნის რამდენიმე წაკითხვის მოთხოვნას გამტარუნარიანობის გასაუმჯობესებლად, ხელმისაწვდომი სათაურის რაოდენობა tags ზღუდავს წაკითხვის გამოჩენილი მოთხოვნების რაოდენობას. უფრო მაღალი შესრულების მისაღწევად, Intel Arria 10 და Intel Cyclone 10 GX read DMA შეუძლიათ გამოიყენონ 16-მდე სათაური tags. Intel Stratix 10 წაკითხული DMA-ს შეუძლია გამოიყენოს 32-მდე სათაური tags.

გამტარუნარიანობის გაზომვის გაგება

გამტარუნარიანობის გასაზომად პროგრამული უზრუნველყოფის დრაივერი ორჯერ სჭირდებაampს. პროგრამული უზრუნველყოფა იღებს პირველ ჯერსamp ცოტა ხნის შემდეგ თქვენ აკრიფეთ ./run ბრძანება. პროგრამული უზრუნველყოფა იღებს მეორე ჯერსamp მას შემდეგ, რაც DMA დაასრულებს და დააბრუნებს საჭირო დასრულების სტატუსს, EPLAST. თუ DMA-ს წაკითხვა, DMA-ს ჩაწერა და ერთდროული წაკითხვისა და ჩაწერის DMA-ები ჩართულია, დრაივერს ექვსჯერ სჭირდებაampსამი გაზომვის გაკეთება.

გამტარუნარიანობის განსხვავებები ჩიპზე და გარე მეხსიერებისთვის

ეს საცნობარო დიზაინი უზრუნველყოფს არჩევანს ჩიპზე დაყენებულ FPGA ქსოვილში და გარე მეხსიერებას შორის, რომელიც ხელმისაწვდომია PCB-ზე. ჩიპზე განთავსებული მეხსიერება მხარს უჭერს ცალკე წაკითხვისა და ჩაწერის პორტებს. შესაბამისად, ეს მეხსიერება მხარს უჭერს ერთდროულად წაკითხვისა და ჩაწერის DMA-ებს. გარე მეხსიერება მხარს უჭერს ერთ პორტს. შესაბამისად, გარე მეხსიერება არ უჭერს მხარს ერთდროულად წაკითხვის DMA და ჩაწერის DMA წვდომას. გარდა ამისა, გარე მეხსიერების დაყოვნება უფრო მაღალია, ვიდრე ჩიპზე არსებული მეხსიერების შეყოვნება. ეს ორი განსხვავება ჩიპსა და გარე მეხსიერებას შორის იწვევს დაბალ გამტარუნარიანობას გარე მეხსიერების განხორციელებისთვის. ჩიპზე და გარე მეხსიერების გამტარუნარიანობის შესადარებლად, აირჩიეთ ბრძანება 7 თანმიმდევრული გაშვებისთვის ჩიპზე და გარე მეხსიერებას შორის გადასართავად.

დოკუმენტის შესწორების ისტორია AN 829-ისთვის: PCI Express Avalon-MM DMA საცნობარო დიზაინი

დოკუმენტის ვერსია Intel Quartus Prime ვერსია ცვლილებები
2018.06.11 18.0 თავდაპირველი გამოშვება.

AN 829: PCI Express* Avalon®-MM DMA Reference Design 22

დოკუმენტები / რესურსები

intel AN 829 PCI Express* Avalon MM DMA Reference Design [pdf] მომხმარებლის სახელმძღვანელო
AN 829 PCI Express Avalon MM DMA საცნობარო დიზაინი, AN 829, PCI Express Avalon MM DMA საცნობარო დიზაინი, Express Avalon MM DMA საცნობარო დიზაინი, Avalon MM DMA საცნობარო დიზაინი, DMA საცნობარო დიზაინი

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *