การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ Intel FPGA D5005
เกี่ยวกับเอกสารนี้
เอกสารนี้อธิบายการใช้งาน Direct Memory Access (DMA) Accelerator Functional Unit (AFU) และวิธีการสร้างการออกแบบให้ทำงานบนฮาร์ดแวร์หรือในการจำลอง
กลุ่มเป้าหมาย
กลุ่มเป้าหมายประกอบด้วยนักพัฒนาฮาร์ดแวร์หรือซอฟต์แวร์ที่ต้องการ Accelerator Function (AF) เพื่อบัฟเฟอร์ข้อมูลในหน่วยความจำที่เชื่อมต่อกับอุปกรณ์ Intel FPGA
อนุสัญญา
อนุสัญญาเอกสาร
อนุสัญญา | คำอธิบาย |
# | นำหน้าคำสั่งที่ระบุว่าต้องป้อนคำสั่งเป็นรูท |
$ | ระบุว่าต้องป้อนคำสั่งในฐานะผู้ใช้ |
ฟอนต์นี้ | Fileชื่อ คำสั่ง และคำสำคัญจะพิมพ์ออกมาในรูปแบบฟอนต์นี้ มีการพิมพ์บรรทัดคำสั่งแบบยาวในแบบอักษรนี้ แม้ว่าบรรทัดคำสั่งแบบยาวอาจตัดไปยังบรรทัดถัดไป การส่งคืนไม่ได้เป็นส่วนหนึ่งของคำสั่ง อย่ากดเข้าไป |
ระบุข้อความตัวแทนที่ปรากฏระหว่างวงเล็บมุมต้องถูกแทนที่ด้วยค่าที่เหมาะสม ห้ามเข้าวงเล็บเหลี่ยม |
คำย่อ
คำย่อ
คำย่อ | การขยายตัว | คำอธิบาย |
AF | ฟังก์ชั่นคันเร่ง | อิมเมจ Hardware Accelerator ที่คอมไพล์แล้วถูกนำไปใช้ในลอจิก FPGA ที่ช่วยเร่งความเร็วของแอปพลิเคชัน |
อาฟยู | หน่วยการทำงานของคันเร่ง | Hardware Accelerator ใช้ในตรรกะ FPGA ซึ่งจะลดการดำเนินการคำนวณสำหรับแอปพลิเคชันจาก CPU เพื่อปรับปรุงประสิทธิภาพ |
เอพีไอ | อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน | ชุดคำจำกัดความของรูทีนย่อย โปรโตคอล และเครื่องมือสำหรับการสร้างแอปพลิเคชันซอฟต์แวร์ |
CCI-พี | อินเทอร์เฟซแคชหลัก | CCI-P คือ AFU อินเทอร์เฟซมาตรฐานที่ใช้สื่อสารกับโฮสต์ |
ดีเอฟเอช | ส่วนหัวคุณสมบัติของอุปกรณ์ | สร้างรายการที่เชื่อมโยงของส่วนหัวของคุณลักษณะเพื่อให้มีวิธีเพิ่มคุณลักษณะที่ขยายได้ |
ต่อเนื่อง… |
อินเทล คอร์ปอเรชั่น สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้า Intel ขอรับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
คำย่อ | การขยายตัว | คำอธิบาย |
เอฟไอเอ็ม | ผู้จัดการส่วนต่อประสาน FPGA | ฮาร์ดแวร์ FPGA ที่มี FPGA Interface Unit (FIU) และอินเทอร์เฟซภายนอกสำหรับหน่วยความจำ เครือข่าย ฯลฯ
Accelerator Function (AF) เชื่อมต่อกับ FIM ในขณะใช้งาน |
เอฟไอยู | หน่วยเชื่อมต่อ FPGA | FIU เป็นเลเยอร์อินเทอร์เฟซของแพลตฟอร์มที่ทำหน้าที่เป็นสะพานเชื่อมระหว่างอินเทอร์เฟซของแพลตฟอร์ม เช่น PCIe*, UPI และอินเทอร์เฟซด้าน AFU เช่น CCI-P |
เอ็มพีเอฟ | โรงงานคุณสมบัติหน่วยความจำ | MPF คือ Basic Building Block (BBB) ที่ AFU สามารถใช้เพื่อจัดเตรียมการดำเนินการกำหนดรูปแบบการรับส่งข้อมูล CCI-P สำหรับธุรกรรมกับ FIU |
อภิธานศัพท์การเร่งความเร็ว
Acceleration Stack สำหรับ Intel® Xeon® CPU ที่มี FPGAs อภิธานศัพท์
ภาคเรียน | คำย่อ | คำอธิบาย |
Intel® Acceleration Stack สำหรับ Intel Xeon® CPU พร้อม FPGAs | กองเร่ง | ชุดซอฟต์แวร์ เฟิร์มแวร์ และเครื่องมือที่มอบการเชื่อมต่อที่ปรับให้เหมาะสมระหว่าง Intel FPGA และโปรเซสเซอร์ Intel Xeon |
การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ของ Intel FPGA | อินเทล FPGA PAC | การ์ดคันเร่ง PCIe FPGA
ประกอบด้วย FPGA Interface Manager (FIM) ที่จับคู่กับโปรเซสเซอร์ Intel Xeon บนบัส PCIe |
- คู่มือผู้ใช้หน่วยการทำงานของตัวเร่ง DMA: การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ของ Intel FPGA D5005
คำอธิบาย DMA AFU
การแนะนำ
Direct Memory Access (DMA) AFU exampไฟล์แสดงวิธีจัดการการถ่ายโอนหน่วยความจำระหว่างโฮสต์โปรเซสเซอร์และ FPGA คุณสามารถรวม DMA AFU เข้ากับการออกแบบของคุณเพื่อย้ายข้อมูลระหว่างหน่วยความจำโฮสต์และหน่วยความจำภายใน FPGA DMA AFU ประกอบด้วยโมดูลย่อยต่อไปนี้:
- โรงงานคุณสมบัติหน่วยความจำ (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) กับอแด็ปเตอร์ Avalon® Memory-Mapped (Avalon-MM)
- ระบบทดสอบ DMA ซึ่งมี DMA BBB
โมดูลย่อยเหล่านี้มีรายละเอียดเพิ่มเติมในหัวข้อส่วนประกอบฮาร์ดแวร์ DMA AFU ด้านล่าง
ข้อมูลที่เกี่ยวข้อง
- ส่วนประกอบฮาร์ดแวร์ DMA AFU ในหน้า 6
- ข้อมูลจำเพาะอินเทอร์เฟซของ Avalon
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรโตคอล Avalon-MM รวมถึงไดอะแกรมเวลาสำหรับธุรกรรมการอ่านและเขียน
แพ็คเกจซอฟต์แวร์ DMA AFU
Intel Acceleration Stack สำหรับ Intel Xeon CPU พร้อมแพ็คเกจ FPGA file (*.tar.gz) รวมถึง DMA AFU exampเลอ อดีตนี้ample ให้ไดรเวอร์พื้นที่ผู้ใช้ แอปพลิเคชันโฮสต์ใช้ไดรเวอร์นี้เพื่อให้ DMA ย้ายข้อมูลระหว่างโฮสต์และหน่วยความจำ FPGA ไบนารีของฮาร์ดแวร์ แหล่งที่มา และไดรเวอร์พื้นที่ผู้ใช้มีอยู่ในไดเร็กทอรีต่อไปนี้: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . ก่อนทำการทดลองกับ DMA AFU คุณต้องติดตั้งแพ็คเกจซอฟต์แวร์ Open Programmable Acceleration Engine (OPAE) โปรดดูที่การติดตั้งแพ็คเกจซอฟต์แวร์ OPAE ในคู่มือการเริ่มต้นอย่างรวดเร็วของ Intel Acceleration Stack สำหรับ Intel FPGA Programmable Acceleration Card D5005 สำหรับคำแนะนำในการติดตั้ง คู่มือการเริ่มต้นฉบับย่อนี้ยังประกอบด้วยข้อมูลพื้นฐานเกี่ยวกับ Open Programmable Acceleration Engine (OPAE) และการกำหนดค่า AFU หลังจากติดตั้งแพ็คเกจซอฟต์แวร์ Open Programmable Acceleration Engine (OPAE) แล้ว asampแอปพลิเคชันโฮสต์และไดรเวอร์พื้นที่ผู้ใช้ DMA AFU มีอยู่ในไดเรกทอรีต่อไปนี้: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. เพื่อเรียกใช้ sampแอปพลิเคชันโฮสต์ fpga_dma_test บนฮาร์ดแวร์ Intel FPGA PAC D5005 ของคุณ โปรดดูขั้นตอนในหัวข้อ การเรียกใช้ DMA AFU Exampเลอ อินเทล คอร์ปอเรชั่น สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
ข้อมูลที่เกี่ยวข้อง
- คู่มือการเริ่มต้นอย่างรวดเร็วของ Intel Acceleration Stack สำหรับ Intel FPGA Programmable Acceleration Card D5005
- การติดตั้งแพ็คเกจซอฟต์แวร์ OPAE
ส่วนประกอบฮาร์ดแวร์ DMA AFU
อินเทอร์เฟซ DMA AFU กับ FPGA Interface Unit (FIU) และหน่วยความจำ FPGA โปรดดูเอกสารข้อมูล FPGA Interface Manager สำหรับ Intel FPGA Programmable Acceleration Card D5005 สำหรับข้อมูลจำเพาะโดยละเอียดของหน่วยความจำ FPGA ฮาร์ดแวร์ที่มีอยู่ในปัจจุบันเป็นตัวกำหนดการกำหนดค่าหน่วยความจำนี้ ฮาร์ดแวร์ในอนาคตอาจรองรับการกำหนดค่าหน่วยความจำที่แตกต่างกัน คุณสามารถใช้ DMA AFU เพื่อคัดลอกข้อมูลระหว่างตำแหน่งต้นทางและปลายทางต่อไปนี้:
- โฮสต์ไปยังหน่วยความจำ FPGA ของอุปกรณ์
- อุปกรณ์หน่วยความจำ FPGA ไปยังโฮสต์
ระบบ Platform Designer $OPAE_PLATFORM_ROOT/hw/sampไฟล์/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys ใช้ DMA . ส่วนใหญ่
- เอเอฟยู ส่วนหนึ่งของ DMA AFU ที่ใช้งานในระบบ Platform Designer สามารถพบได้ในต่อไปนี้
ตำแหน่ง:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ คุณสามารถค้นหา DMA BBB ในตำแหน่งต่อไปนี้:
- $OPAE_PLATFORM_ROOT/hw/sampเล/dma_afu/hw/rtl/dma_bbb
คู่มือผู้ใช้หน่วยการทำงานของตัวเร่ง DMA: การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ของ Intel FPGA D5005
ไดอะแกรมบล็อกฮาร์ดแวร์ DMA AFU
DMA AFU ประกอบด้วยโมดูลภายในต่อไปนี้เพื่อเชื่อมต่อกับ FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) Decoder Logic: ตรวจจับธุรกรรมการอ่านและเขียน MMIO และแยกรายการออกจากช่อง CCI-P RX 0 ที่มาจาก สิ่งนี้ทำให้แน่ใจได้ว่าทราฟฟิก MMIO ไม่เคยไปถึง MPF BBB และให้บริการโดยช่องคำสั่ง MMIO อิสระ
- โรงงานคุณสมบัติหน่วยความจำ (MPF): โมดูลนี้ช่วยให้แน่ใจว่าการอ่านการตอบสนองจาก DMA ส่งคืนในลำดับที่ออก โปรโตคอล Avalon-MM ต้องการการตอบสนองการอ่านเพื่อส่งคืนในลำดับที่ถูกต้อง
- CCI-P เป็นอะแดปเตอร์ Avalon-MM: โมดูลนี้แปลระหว่างธุรกรรม CCI-P และ Avalon-MM ดังนี้:
- CCI-P เป็นอแด็ปเตอร์ Avalon-MMIO: เส้นทางนี้แปลธุรกรรม CCI-P MMIO เป็นธุรกรรม Avalon-MM
- Avalon to CCI-P Host Adapter: พาธเหล่านี้สร้างพาธแบบอ่านอย่างเดียวและเขียนอย่างเดียวแยกต่างหากสำหรับ DMA เพื่อเข้าถึงหน่วยความจำของโฮสต์
- ระบบทดสอบ DMA: โมดูลนี้ทำหน้าที่เป็นตัวห่อหุ้มรอบ DMA BBB เพื่อแสดงต้นแบบ DMA ต่อตรรกะที่เหลือใน AFU มีอินเทอร์เฟซระหว่าง DMA BBB และ CCI-P ไปยังอแด็ปเตอร์ Avalon นอกจากนี้ยังมีอินเทอร์เฟซระหว่าง DMA BBB และธนาคาร FPGA SDRAM ในพื้นที่
ข้อมูลที่เกี่ยวข้อง
เอกสารข้อมูล FPGA Interface Manager สำหรับ Intel FPGA Programmable Acceleration Card D5005
ระบบทดสอบ DMA
ระบบทดสอบ DMA เชื่อมต่อ DMA BBB กับส่วนที่เหลือของการออกแบบ FPGA รวมถึงการปรับ CCI-P และหน่วยความจำ FPGA ในเครื่อง
ไดอะแกรมบล็อกระบบทดสอบ DMA
บล็อกไดอะแกรมนี้แสดงข้อมูลภายในของระบบทดสอบ DMA ระบบทดสอบ DMA แสดงเป็นบล็อกเสาหินในรูปที่ 1 ในหน้า 7
ระบบทดสอบ DMA ประกอบด้วยโมดูลภายในดังต่อไปนี้:
- Far Reach Bridge/Pipeline Bridge: ไปป์ไลน์บริดจ์ที่มีความหน่วงแฝงที่ปรับได้รวมอยู่ในการควบคุมโทโพโลยีและปรับปรุงการออกแบบ Fmax
- ส่วนหัวคุณสมบัติอุปกรณ์ DMA AFU (DFH): นี่คือ DFH สำหรับ DMA AFU DFH นี้ชี้ไปที่ DFH ถัดไป ซึ่งอยู่ที่ออฟเซ็ต 0x100 (DMA BBB DFH)
- Null DFH: ส่วนประกอบนี้ยุติ DFH linked-list หากคุณเพิ่ม DMA BBB ให้กับการออกแบบ ตรวจสอบให้แน่ใจว่าที่อยู่ฐาน null DFH อยู่ที่ส่วนท้ายของรายการเชื่อมโยง DFH
- MA Basic Building Block (BBB): บล็อกนี้ย้ายข้อมูลระหว่างโฮสต์และหน่วยความจำ FPGA ในเครื่อง นอกจากนี้ยังเข้าถึงหน่วยความจำของโฮสต์เพื่อเข้าถึงสายอธิบาย
ดีเอ็มเอ บีบี
ระบบย่อย DMA BBB จะถ่ายโอนข้อมูลจากต้นทางไปยังที่อยู่ปลายทางโดยใช้ธุรกรรม Avalon-MM ไดรเวอร์ DMA ควบคุม DMA BBB โดยเข้าถึงการควบคุมและการลงทะเบียนสถานะของส่วนประกอบต่างๆ ภายในระบบ ไดรเวอร์ DMA ยังควบคุม DMA BBB โดยใช้หน่วยความจำที่ใช้ร่วมกันเพื่อสื่อสารตัวบอกการถ่ายโอน DMA BBB เข้าถึงข้อมูลในหน่วยความจำ FPGA ที่ออฟเซ็ต 0x0 DMA BBB เข้าถึงข้อมูลและตัวอธิบายในหน่วยความจำโฮสต์ที่ออฟเซ็ต 0x1_0000_0000_0000
DMA BBB Platform Designer บล็อกไดอะแกรม
บล็อกไดอะแกรมนี้ไม่รวมแกน IP ของ Pipeline Bridge ภายในบางส่วน
คู่มือผู้ใช้หน่วยการทำงานของตัวเร่ง DMA: การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ของ Intel FPGA D5005
คำอธิบาย DMA AFU
ส่วนประกอบใน DMA BBB Platform Designer ใช้ฟังก์ชันต่อไปนี้:
- สะพานไกล/สะพานท่อ: ไปป์ไลน์บริดจ์ที่มีความหน่วงแฝงที่ปรับได้รวมอยู่ในการควบคุมโทโพโลยีและปรับปรุงการออกแบบ Fmax
- แม่ BBB DFH: นี่คือส่วนหัวคุณลักษณะของอุปกรณ์สำหรับ DMA BBB DFH นี้ชี้ไปที่ DFH ถัดไป ซึ่งอยู่ที่ออฟเซ็ต 0x100 (Null DFH)
- ส่วนหน้าของคำอธิบาย: รับผิดชอบในการเรียก descriptor และโอนไปยัง Dispatcher เมื่อการถ่ายโอน DMA เสร็จสิ้น ส่วนหน้าจะได้รับการสร้างสถานะจาก Dispatcher และเขียนทับ descriptor ในหน่วยความจำของโฮสต์
- ผู้จัดส่ง: บล็อกนี้กำหนดเวลาส่งคำขอ DMA ไปยัง Read and Write Master
- อ่านปริญญาโท: บล็อกนี้มีหน้าที่ในการอ่านข้อมูลจากโฮสต์หรือหน่วยความจำ FPGA ในเครื่อง และส่งข้อมูลเป็นสตรีมไปยัง Write Master
- เขียนปริญญาโท: บล็อกนี้มีหน้าที่รับข้อมูลสตรีมมิ่งจาก Read Master และเขียนเนื้อหาไปยังโฮสต์หรือหน่วยความจำ FPGA ในเครื่อง
ลงทะเบียนแผนที่และช่องว่างที่อยู่
DMA AFU รองรับหน่วยความจำสองตัว views: DMA view และเจ้าภาพ view. DMA view รองรับพื้นที่ที่อยู่ 49 บิต ครึ่งล่างของ DMA view แมปไปยังหน่วยความจำ FPGA ในเครื่อง ครึ่งบนของ DMA view แผนที่ไปยังหน่วยความจำโฮสต์ เจ้าภาพ view รวมรีจิสเตอร์ทั้งหมดที่เข้าถึงได้ผ่านการเข้าถึง MMIO เช่น ตาราง DFH และรีจิสเตอร์การควบคุม/สถานะของ IP คอร์ต่างๆ ที่ใช้ภายใน DMA AFU MMIO ลงทะเบียนใน DMA BBB และ AFU รองรับการเข้าถึงแบบ 32- และ 64- บิต DMA AFU ไม่รองรับการเข้าถึง MMIO 512 บิต การเข้าถึง Dispatcher registers ภายใน DMA BBB ต้องเป็น 32 บิต (ส่วนหน้าของคำอธิบายใช้การลงทะเบียน 64 บิต)
แผนที่ลงทะเบียน DMA AFU
แผนที่ลงทะเบียน DMA AFU ให้ที่อยู่ที่แน่นอนของตำแหน่งทั้งหมดภายในหน่วย ทะเบียนเหล่านี้อยู่ในโฮสต์ view เพราะเป็นเพียงโฮสต์ที่เข้าถึงได้
แผนที่หน่วยความจำ DMA AFU
การชดเชยที่อยู่ไบต์ | ชื่อ | สแปนเป็นไบต์ | คำอธิบาย |
ขนาด 0x0 | DMA AFU ดีเอฟเอช | ขนาด 0x40 | ส่วนหัวของคุณสมบัติอุปกรณ์สำหรับ DMA AFU ID_L ถูกตั้งค่าเป็น 0x9081f88b8f655caa และ ID_H ถูกตั้งค่าเป็น 0x331db30c988541ea DMA AFU DFH ได้รับการกำหนดพารามิเตอร์ให้ชี้ไปที่ออฟเซ็ต 0x100 เพื่อค้นหา DFH ถัดไป (DMA BBB DFH) คุณต้องไม่แก้ไขที่อยู่พื้นฐานของ DMA AFU DFH เนื่องจากต้องอยู่ที่ที่อยู่ 0x0 ตามที่กำหนดโดยข้อกำหนด CCIP |
ขนาด 0x100 | ดีเอ็มเอ บีบี | ขนาด 0x100 | ระบุการควบคุม DMA BBB และอินเทอร์เฟซการลงทะเบียนสถานะ คุณสามารถดูแผนที่การลงทะเบียน DMA BBB สำหรับข้อมูลเพิ่มเติม ภายใน DMA BBB ที่ออฟเซ็ต 0 DMA BBB จะรวม DFH ของตัวเองไว้ด้วย DFH นี้ได้รับการตั้งค่าให้ค้นหา DFH ถัดไปที่ offset 0x100 (NULL DFH) หากคุณเพิ่ม DMA BBB ให้เว้นระยะห่าง 0x100 และตรวจสอบว่า NULL DFH ติดตาม DMA สุดท้าย 0x100 |
ขนาด 0x200 | ค่า NULL DFH | ขนาด 0x40 | ยุติรายการที่เชื่อมโยง DFH ID_L ถูกตั้งค่าเป็น 0x90fe6aab12a0132f และ ID_H ถูกตั้งค่าเป็น 0xda1182b1b3444e23 NULL DFH ได้รับการตั้งค่าให้เป็น DFH สุดท้ายในฮาร์ดแวร์ ด้วยเหตุนี้ NULL DFH จึงอยู่ที่ที่อยู่ 0x200 หากคุณเพิ่ม DMA BBB เพิ่มเติมในระบบ คุณจะต้องเพิ่มที่อยู่ฐาน NULL DFH ตามลำดับ เพื่อให้อยู่ที่ที่อยู่สูงสุด ไดรเวอร์ DMA และแอปพลิเคชันทดสอบไม่ได้ใช้ฮาร์ดแวร์นี้ |
อินเทล คอร์ปอเรชั่น สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้า Intel ขอรับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
ลงทะเบียนแผนที่และช่องว่างที่อยู่
แผนที่หน่วยความจำ DMA BBB
ที่อยู่ไบต์ต่อไปนี้เป็นการชดเชยแบบสัมพัทธ์จากที่อยู่ฐาน DMA BBB ในระบบ DMA AFU (0x100)
การชดเชยที่อยู่ไบต์ | ชื่อ | สแปนเป็นไบต์ | คำอธิบาย |
ขนาด 0x0 | DMA BBB ดีเอฟเอช | ขนาด 0x40 | ส่วนหัวของคุณสมบัติอุปกรณ์สำหรับ DMA AFU ID_L ถูกตั้งค่าเป็น 0xa9149a35bace01ea และ ID_H ถูกตั้งค่าเป็น 0xef82def7f6ec40fc DMA BBB DFH ได้รับการกำหนดพารามิเตอร์ให้ชี้ไปที่ 0x100 สำหรับออฟเซ็ต DFH ถัดไป ออฟเซ็ตถัดไปนี้สามารถเป็น DMA BBB อื่น DFH อื่น (ไม่รวมอยู่ในการออกแบบนี้) หรือ NULL DFH |
ขนาด 0x40 | ผู้จัดส่ง | ขนาด 0x40 | พอร์ตควบคุมสำหรับผู้มอบหมายงาน ไดรเวอร์ DMA ใช้ตำแหน่งนี้เพื่อควบคุม DMA หรือสอบถามสถานะ |
ขนาด 0x80 | ส่วนหน้าของคำอธิบาย | ขนาด 0x40 | ส่วนหน้า descriptor เป็นส่วนประกอบแบบกำหนดเองที่อ่าน descriptor จากหน่วยความจำโฮสต์และเขียนทับ descriptor เมื่อการถ่ายโอน DMA เสร็จสิ้น ไดรเวอร์จะสั่งฟรอนท์เอนด์ที่ซึ่งตัวบอกรายละเอียดแรกอยู่ในหน่วยความจำของโฮสต์ จากนั้นฮาร์ดแวร์ส่วนหน้าจะสื่อสารกับไดรเวอร์เป็นหลัก แม้ว่าตัวอธิบายจะจัดเก็บไว้ในหน่วยความจำของโฮสต์ |
พื้นที่ที่อยู่ DMA AFU
โฮสต์สามารถเข้าถึงรีจิสเตอร์ที่แสดงในตารางที่ 4 ในหน้า 12 และตารางที่ 5 ในหน้า 13 ระบบย่อย DMA BBB สามารถเข้าถึงพื้นที่แอดเดรส 49 บิตแบบเต็มได้ ครึ่งล่างของพื้นที่ที่อยู่นี้รวมถึงหน่วยความจำ FPGA ในเครื่อง ครึ่งบนของพื้นที่ที่อยู่นี้มีหน่วยความจำที่อยู่โฮสต์ 48 บิต รูปต่อไปนี้แสดงโฮสต์และ DMA viewของหน่วยความจำ
DMA AFU และโฮสต์ Viewของหน่วยความจำ
ส่วนหัวคุณสมบัติของอุปกรณ์ที่เชื่อมโยงรายการ
การออกแบบ DMA AFU เช่นampไฟล์มีส่วนหัวคุณสมบัติของอุปกรณ์ (DFH) สามรายการที่สร้างรายการเชื่อมโยง รายการที่เชื่อมโยงนี้ช่วยให้ sampแอปพลิเคชันเพื่อระบุ DMA AFU เช่นเดียวกับไดรเวอร์เพื่อระบุ DMA BBB รายการ DFH จะรวม NULL DFH ไว้ที่ส่วนท้าย การรวมค่า null DFH ไว้ที่ส่วนท้ายของรายการที่เชื่อมโยงทำให้คุณสามารถเพิ่ม DMA BBB ให้กับการออกแบบของคุณได้ คุณเพียงแค่ต้องย้าย NULL DFH ไปยังที่อยู่หลังจาก BBB อื่นๆ DMA BBB แต่ละรายการคาดว่า DFH ถัดไปจะอยู่ที่ 0x100 ไบต์จากที่อยู่พื้นฐานของ BBB รูปต่อไปนี้แสดงรายชื่อที่เชื่อมโยงสำหรับการออกแบบ DMA AFU เช่นampเล.
ลงทะเบียนแผนที่และช่องว่างที่อยู่
การเชื่อมโยงส่วนหัวของคุณลักษณะอุปกรณ์ DMA AFU (DFH)
โมเดลการเขียนโปรแกรมซอฟต์แวร์
DMA AFU มีไดรเวอร์ซอฟต์แวร์ที่คุณสามารถใช้ได้ในแอปพลิเคชันโฮสต์ของคุณเอง fpga_dma.cpp และ fpga_dma.h fileที่ตำแหน่งต่อไปนี้ใช้ไดรเวอร์ซอฟต์แวร์:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw ไดรเวอร์นี้รองรับฟังก์ชันต่อไปนี้:
เอพีไอ | คำอธิบาย |
fpgaCountDMAช่อง | สแกนห่วงโซ่คุณลักษณะของอุปกรณ์สำหรับ DMA BBB และนับช่องที่มีทั้งหมด |
fpgaDMAเปิด | เปิดแฮนเดิลไปที่ช่อง DMA |
fpgaDMAปิด | ปิดแฮนเดิลไปยังแชนเนล DMA |
fpgaDMATransferInit | เริ่มต้นวัตถุที่แสดงถึงการถ่ายโอน DMA |
fpgaDMAโอนรีเซ็ต | รีเซ็ตออบเจ็กต์แอตทริบิวต์การถ่ายโอน DMA เป็นค่าเริ่มต้น |
fpgaDMATransferDestroy | ทำลายอ็อบเจ็กต์แอตทริบิวต์การถ่ายโอน DMA |
fpgaDMATransferSetSrc | ตั้งค่าที่อยู่ต้นทางของการโอน ที่อยู่นี้ต้องจัดตำแหน่ง 64 ไบต์ |
fpgaDMATransferSetDst | ตั้งค่าที่อยู่ปลายทางของการโอน ที่อยู่นี้ต้องจัดตำแหน่ง 64 ไบต์ |
fpgaDMATransferSetLen | ตั้งค่าความยาวการถ่ายโอนเป็นไบต์ สำหรับการถ่ายโอนที่ไม่ใช่แพ็กเก็ต คุณต้องตั้งค่าความยาวการถ่ายโอนเป็นทวีคูณของ 64 ไบต์ สำหรับการถ่ายโอนแพ็กเก็ต นี่ไม่ใช่ข้อกำหนด |
fpgaDMATransferSetTransferType | ตั้งค่าประเภทการโอน ค่านิยมทางกฎหมายคือ:
• HOST_MM_TO_FPGA_MM = TX (โฮสต์ไปยัง AFU) • FPGA_MM_TO_HOST_MM = RX (AFU ไปยังโฮสต์) |
fpgaDMATransferSetTransferCallback | ลงทะเบียนการโทรกลับเพื่อรับการแจ้งเตือนเมื่อการถ่ายโอนแบบอะซิงโครนัสเสร็จสิ้น หากคุณระบุการเรียกกลับ fpgaDMATransfer จะส่งคืนทันที (การถ่ายโอนแบบอะซิงโครนัส)
หากคุณไม่ระบุการโทรกลับ fpgaDMATransfer จะส่งคืนหลังจากการถ่ายโอนเสร็จสิ้น (การถ่ายโอนแบบซิงโครนัส/การบล็อก) |
fpgaDMATransferSetLast | ระบุการโอนครั้งล่าสุดเพื่อให้ DMA สามารถเริ่มประมวลผลการโอนที่ดึงข้อมูลล่วงหน้าได้ ค่าเริ่มต้นคือ 64 การโอนในไปป์ไลน์ก่อนที่ DMA จะเริ่มทำงานกับการโอน |
fpgaDMAโอน | ดำเนินการถ่ายโอน DMA |
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอาร์กิวเมนต์ API อินพุตและเอาต์พุต โปรดดูที่ส่วนหัว file ตั้งอยู่ $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ ชื่อและตราสินค้าอื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
โมเดลการเขียนโปรแกรมซอฟต์แวร์
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการใช้ไดรเวอร์ซอฟต์แวร์ โปรดดูที่ README file ตั้งอยู่ที่ $OPAE_PLATFORM_ROOT/hw/sampเลส์/dma_afu/README.md
เรียกใช้ DMA AFU Example
ก่อนที่คุณจะเริ่มต้น:
- คุณควรจะคุ้นเคยกับอดีตampใน Intel Acceleration Stack Quick Start Guide สำหรับ Intel FPGA Programmable Acceleration Card D5005
- คุณต้องกำหนดตัวแปรสภาพแวดล้อม ตัวแปรสภาพแวดล้อมขึ้นอยู่กับรุ่น Intel Acceleration Stack ที่คุณใช้:
- สำหรับเวอร์ชันปัจจุบัน ตั้งค่าตัวแปรสภาพแวดล้อมเป็น $OPAE_PLATFORM_ROOT
- คุณต้องติดตั้งไลบรารี่ Intel Threading Building Blocks (TBB) เนื่องจากไดรเวอร์ DMA จะใช้ไลบรารีนี้
- คุณต้องตั้งค่า hugepages ขนาด 1 GB สองหน้าเพื่อเรียกใช้ sampแอปพลิเคชัน $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
ทำตามขั้นตอนต่อไปนี้เพื่อดาวน์โหลดบิตสตรีม DMA Accelerator Function (AF) เพื่อสร้างแอปพลิเคชันและไดรเวอร์ และเรียกใช้การออกแบบ เช่นampเลอ:
- เปลี่ยนเป็นไดเร็กทอรีแอปพลิเคชันและไดรเวอร์ DMA: cd $OPAE_PLATFORM_ROOT/hw/sampเลส/dma_afu/sw
- สร้างไดรเวอร์และแอปพลิเคชัน: make
- ดาวน์โหลดบิตสตรีม DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- ดำเนินการโฮสต์แอปพลิเคชันเพื่อเขียน 100 MB ในส่วน 1 MB จากหน่วยความจำโฮสต์ไปยังหน่วยความจำอุปกรณ์ FPGA และอ่านกลับ: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
ข้อมูลที่เกี่ยวข้อง
คู่มือการเริ่มต้นอย่างรวดเร็วของ Intel Acceleration Stack สำหรับ Intel FPGA Programmable Acceleration Card D5005 Intel Corporation สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
การรวบรวม DMA AFU Example
ในการสร้างสภาพแวดล้อมการสร้างการสังเคราะห์เพื่อคอมไพล์ AF ให้ใช้คำสั่ง afu_synth_setup ดังต่อไปนี้:
- เปลี่ยนเป็น DMA AFU sampไฟล์ไดเรกทอรี: $OPAE_PLATFORM_ROOT/hw/sampเลส์/dma_afu
- สร้างไดเร็กทอรีบิลด์การออกแบบ: afu_synth_setup –source hw/rtl/fileรายการ.txt build_synth
- จากไดเร็กทอรีบิลด์การสังเคราะห์ที่สร้างโดย afu_synth_setup ให้ป้อนคำสั่งต่อไปนี้จากหน้าต่างเทอร์มินัลเพื่อสร้าง AF สำหรับแพลตฟอร์มฮาร์ดแวร์เป้าหมาย: cd build_synth run.sh สคริปต์การสร้าง AF run.sh จะสร้างอิมเมจ AF ที่มีฐานเดียวกัน fileตั้งชื่อเป็นการกำหนดค่าแพลตฟอร์มของ AFU file (.json) โดยมีนามสกุล .gbs อยู่ที่ตำแหน่ง:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs บริษัท Intel สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
การจำลอง AFU Example
Intel แนะนำให้คุณอ้างอิงถึง Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Guide สำหรับ Intel FPGA PAC ของคุณเพื่อทำความคุ้นเคยกับการจำลองสถานการณ์ที่คล้ายกันampไฟล์และการตั้งค่าสภาพแวดล้อมของคุณ ก่อนที่คุณจะดำเนินการตามขั้นตอนต่อไปนี้ ให้ตรวจสอบว่าตัวแปรสภาพแวดล้อม OPAE_PLATFORM_ROOT ถูกตั้งค่าเป็นไดเร็กทอรีการติดตั้ง OPAE SDK ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าตัวจำลองฮาร์ดแวร์สำหรับ DMA AFU:
- เปลี่ยนเป็น DMA AFU sampไฟล์ไดเรกทอรี: cd $OPAE_PLATFORM_ROOT/hw/sampเลส์/dma_afu
- สร้างสภาพแวดล้อม ASE ในไดเร็กทอรีใหม่และกำหนดค่าสำหรับการจำลอง AFU: afu_sim_setup –source hw/rtl/fileรายการ.txt build_ase_dir
- เปลี่ยนเป็นไดเร็กทอรี ASE build: cd build_ase_dir
- สร้างไดรเวอร์และแอปพลิเคชัน: make
- ทำการจำลอง: ทำซิม
Sampออกจากเครื่องจำลองฮาร์ดแวร์:
[SIM] ** ข้อควรระวัง : ก่อนเรียกใช้ซอฟต์แวร์แอปพลิเคชัน ** [SIM] ตั้งค่า env(ASE_WORKDIR) ในเทอร์มินัลที่แอปพลิเคชันจะทำงาน (คัดลอกและวาง) => [SIM] $SHELL | เรียกใช้:[SIM] ———+————————————————— [SIM] bash/zsh | export ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/ทำงาน [ซิม] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] สำหรับ $SHELL อื่นๆ โปรดปรึกษาผู้ดูแลระบบ Linux ของคุณ [SIM] [SIM] พร้อมสำหรับการจำลอง… [SIM] กด CTRL-C เพื่อปิดโปรแกรมจำลอง...ทำตามขั้นตอนต่อไปนี้เพื่อคอมไพล์และรันซอฟต์แวร์ DMA AFU ในสภาพแวดล้อมการจำลอง:
- เปิดหน้าต่างเทอร์มินอลใหม่
- เปลี่ยนไดเร็กทอรีเป็น: cd $OPAE_PLATFORM_ROOT/hw/sampเลส/dma_afu/sw
อินเทล คอร์ปอเรชั่น สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้า Intel ขอรับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
การจำลอง AFU Example
- คัดลอกสตริงการตั้งค่าสภาพแวดล้อม (เลือกสตริงที่เหมาะสมกับเชลล์ของคุณ) จากขั้นตอนด้านบนในการจำลองฮาร์ดแวร์ไปยังหน้าต่างเทอร์มินัล ดูบรรทัดต่อไปนี้ใน sampออกจากเครื่องจำลองฮาร์ดแวร์ [ซิม] bash/zsh | export ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/งาน [ซิม] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- รวบรวมซอฟต์แวร์: $ make USE_ASE=1
- เรียกใช้งานแอปพลิเคชันโฮสต์เพื่อเขียน 4 KB ในส่วน 1 KB จากหน่วยความจำโฮสต์กลับไปยังหน่วยความจำอุปกรณ์ FPGA ในโหมดลูปแบ็ค: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
ข้อมูลที่เกี่ยวข้อง
คู่มือผู้ใช้เริ่มต้นอย่างรวดเร็วของ Intel Accelerator Functional Unit (AFU) สภาพแวดล้อมการจำลอง (ASE)
การเพิ่มประสิทธิภาพเพื่อประสิทธิภาพ DMA ที่ได้รับการปรับปรุง
การใช้การเพิ่มประสิทธิภาพ NUMA (การเข้าถึงหน่วยความจำที่ไม่สม่ำเสมอ) ใน fpga_dma_test.cpp ช่วยให้โปรเซสเซอร์เข้าถึงหน่วยความจำภายในของตัวเองได้เร็วกว่าการเข้าถึงหน่วยความจำที่ไม่ใช่ในเครื่อง (หน่วยความจำภายในไปยังโปรเซสเซอร์อื่น) การกำหนดค่า NUMA ทั่วไปจะแสดงในแผนภาพด้านล่าง การเข้าถึงภายในแสดงถึงการเข้าถึงจากคอร์ไปยังหน่วยความจำภายในไปยังคอร์เดียวกัน การเข้าถึงระยะไกลแสดงเส้นทางที่ใช้เมื่อแกนหลักบนโหนด 0 เข้าถึงหน่วยความจำที่อยู่ในหน่วยความจำภายในโหนด 1
การกำหนดค่า NUMA ทั่วไป
ใช้รหัสต่อไปนี้เพื่อใช้การเพิ่มประสิทธิภาพ NUMA ในแอปพลิเคชันทดสอบของคุณ:
// ตั้งค่าความสัมพันธ์ที่เหมาะสมหากมีการร้องขอหาก (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; อุปกรณ์ประกอบฉาก fpga_properties; retval int; #if(FPGA_DMA_DEBUG)ถ่าน str [4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(อุปกรณ์ประกอบฉาก, (uint8_t *) & บัส);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, outpga) // ค้นหาอุปกรณ์จากโทโพโลยี hwloc_topology_t โทโพโลยี; hwloc_topology_init(&โทโพโลยี); hwloc_topology_set_flags(โทโพโลยี, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ *ชื่อและแบรนด์อื่น ๆ อาจเป็นทรัพย์สินของผู้อื่น
การเพิ่มประสิทธิภาพเพื่อประสิทธิภาพ DMA ที่ได้รับการปรับปรุง
hwloc_topology_load(โทโพโลยี); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (โทโพโลยี, dom, บัส, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (โทโพโลยี, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf(“CPUSET คือ %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET คือ %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind (โทโพโลยี, obj2->nodeset,HWLOC_MEMBIND_TH_READ, HWLOC_MEMBIND_WIND); #else retval =hwloc_set_membind_nodeset (โทโพโลยี, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } ถ้า (cpu_affinity) { retval = hwloc_set_cpubind (โทโพโลยี, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }
คลังเอกสารคู่มือผู้ใช้หน่วยการทำงานของ DMA Accelerator
เวอร์ชัน Intel Acceleration Stack | คู่มือผู้ใช้ (PDF) |
2.0 | คู่มือผู้ใช้ DMA Accelerator Functional Unit (AFU) |
ประวัติการแก้ไขเอกสารสำหรับคู่มือผู้ใช้หน่วยฟังก์ชัน DMA Accelerator
เวอร์ชันเอกสาร |
การเร่งความเร็วของ Intel เวอร์ชันสแต็ค |
การเปลี่ยนแปลง |
2020.08.03 |
2.0.1 (รองรับกับ Intel
Quartus® Prime Pro Edition รุ่น 19.2) |
แก้ไขภาพ AF file ชื่อในส่วน การรวบรวม DMA AFU Example. |
2020.04.17 |
2.0.1 (รองรับกับ Intel
Quartus Prime Pro Edition รุ่น 19.2) |
แก้ไขข้อความใน กลุ่มเป้าหมาย ส่วน. |
2020.02.20 |
2.0.1 (รองรับกับ Intel
Quartus Prime Pro Edition รุ่น 19.2) |
แก้ไขคำพิมพ์ผิดแล้ว |
2019.11.04 |
2.0.1 (รองรับกับ Intel Quartus Prime Pro Edition รุ่น 19.2) |
• แทนที่ fpgaconf ด้วย fpgasupdate เมื่อกำหนดค่า FPGA ด้วย AFU ที่สร้างไว้ล่วงหน้าในส่วน การเรียกใช้ DMA AFU Example.
• เพิ่มคำบรรยาย การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ Intel FPGA D5005 ไปที่ชื่อเอกสาร • เพิ่มตัวแปรสภาพแวดล้อม $OPAE_PLATFORM_ROOT • แก้ไขมาตรา โมเดลการเขียนโปรแกรมซอฟต์แวร์ สำหรับการแก้ไขเล็กน้อย • เพิ่มส่วนใหม่ การรวบรวม DMA AFU Example. • แก้ไขมาตรา การเพิ่มประสิทธิภาพเพื่อประสิทธิภาพ DMA ที่ได้รับการปรับปรุง สำหรับการแก้ไขเล็กน้อย |
2019.08.05 |
2.0 (รองรับกับ Intel
Quartus Prime Pro รุ่น 18.1.2) |
การเปิดตัวครั้งแรก |
อินเทล คอร์ปอเรชั่น สงวนลิขสิทธิ์. Intel, โลโก้ Intel และเครื่องหมายอื่นๆ ของ Intel เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ Intel รับประกันประสิทธิภาพของ FPGA และผลิตภัณฑ์เซมิคอนดักเตอร์ตามข้อกำหนดปัจจุบันตามการรับประกันมาตรฐานของ Intel แต่ขอสงวนสิทธิ์ในการเปลี่ยนแปลงผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ Intel จะไม่รับผิดชอบหรือรับผิดใด ๆ ที่เกิดขึ้นจากแอปพลิเคชันหรือการใช้ข้อมูล ผลิตภัณฑ์ หรือบริการใด ๆ ที่อธิบายไว้ในที่นี้ ยกเว้นตามที่ตกลงไว้อย่างชัดแจ้งเป็นลายลักษณ์อักษรโดย Intel ขอแนะนำให้ลูกค้าของ Intel รับข้อมูลจำเพาะของอุปกรณ์เวอร์ชันล่าสุดก่อนที่จะใช้ข้อมูลที่เผยแพร่และก่อนทำการสั่งซื้อผลิตภัณฑ์หรือบริการ
- ชื่อและยี่ห้ออื่น ๆ อาจถูกอ้างสิทธิ์โดยถือเป็นทรัพย์สินของผู้อื่น
เอกสาร / แหล่งข้อมูล
![]() |
การ์ดเร่งความเร็วแบบตั้งโปรแกรมได้ Intel FPGA D5005 [พีดีเอฟ] คู่มือการใช้งาน การ์ดเร่งความเร็วที่ตั้งโปรแกรมได้ FPGA, D5005, การ์ดเร่งความเร็วที่ตั้งโปรแกรมได้ FPGA D5005, ยูนิตการทำงานส่วนเร่ง DMA |