لوگوی اینتل

کارت شتاب قابل برنامه ریزی FPGA اینتل D5005

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

درباره این سند

این سند پیاده سازی واحد عملکردی شتاب دهنده (AFU) دسترسی مستقیم به حافظه (DMA) و نحوه ساخت طرح برای اجرا بر روی سخت افزار یا شبیه سازی را شرح می دهد.

مخاطب مورد نظر

مخاطب مورد نظر شامل توسعه دهندگان سخت افزار یا نرم افزاری است که برای بافر کردن داده ها به صورت محلی در حافظه متصل به دستگاه FPGA اینتل، به یک عملکرد شتاب دهنده (AF) نیاز دارند.

کنوانسیون ها

کنوانسیون های سند

کنوانسیون توضیحات
# قبل از دستوری قرار می گیرد که نشان می دهد دستور باید به عنوان root وارد شود.
$ نشان می دهد که دستوری باید به عنوان کاربر وارد شود.
این فونت Fileنام ها، دستورات و کلمات کلیدی در این فونت چاپ می شوند. خطوط فرمان طولانی در این فونت چاپ شده است. اگرچه خطوط فرمان طولانی ممکن است به خط بعدی بپیچد، بازگشت بخشی از دستور نیست. اینتر را فشار ندهید
نشان می دهد که متن مکان نگهدار که بین پرانتزهای زاویه ظاهر می شود باید با مقدار مناسب جایگزین شود. وارد براکت های زاویه نشوید.

کلمات اختصاری

کلمات اختصاری

کلمات اختصاری گسترش توضیحات
AF عملکرد شتاب دهنده تصویر شتاب دهنده سخت افزار کامپایل شده در منطق FPGA پیاده سازی شده است که یک برنامه را تسریع می کند.
AFU واحد عملکردی شتاب دهنده شتاب دهنده سخت افزار پیاده سازی شده در منطق FPGA که یک عملیات محاسباتی را برای یک برنامه از CPU برای بهبود عملکرد تخلیه می کند.
API رابط برنامه نویسی کاربردی مجموعه ای از تعاریف زیر روال، پروتکل ها و ابزار برای ساخت برنامه های نرم افزاری.
CCI-P رابط حافظه پنهان هسته CCI-P رابط استانداردی است که AFUها برای برقراری ارتباط با میزبان استفاده می کنند.
DFH سربرگ ویژگی های دستگاه یک لیست پیوندی از سرصفحه های ویژگی ایجاد می کند تا روشی قابل گسترش برای افزودن ویژگی ها ارائه دهد.
ادامه …

شرکت اینتل تمامی حقوق محفوظ است. اینتل، آرم اینتل و سایر علائم اینتل علائم تجاری شرکت اینتل یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان بدون اطلاع قبلی، در هر محصول و خدماتی تغییراتی ایجاد کند. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، بر عهده نمی گیرد، مگر اینکه صراحتاً به صورت کتبی توسط اینتل موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

کلمات اختصاری گسترش توضیحات
FIM مدیر رابط FPGA سخت افزار FPGA حاوی واحد رابط FPGA (FIU) و رابط های خارجی برای حافظه، شبکه و غیره.

عملکرد شتاب دهنده (AF) در زمان اجرا با FIM ارتباط برقرار می کند.

FIU واحد رابط FPGA FIU یک لایه رابط پلتفرم است که به عنوان پلی بین رابط های پلتفرم مانند PCIe*، UPI و رابط های سمت AFU مانند CCI-P عمل می کند.
MPF کارخانه خواص حافظه MPF یک بلوک ساختمانی پایه (BBB) ​​است که AFUها می توانند از آن برای ارائه عملیات شکل دهی ترافیک CCI-P برای تراکنش با FIU استفاده کنند.

واژه نامه شتاب

Acceleration Stack برای Intel® Xeon® CPU با واژه نامه FPGA

مدت مخفف توضیحات
Intel® Acceleration Stack برای پردازنده Intel Xeon® با FPGA پشته شتاب مجموعه‌ای از نرم‌افزار، سفت‌افزار و ابزارهایی که اتصال بهینه‌سازی عملکرد را بین یک FPGA اینتل و یک پردازنده Intel Xeon فراهم می‌کند.
کارت شتاب قابل برنامه ریزی FPGA اینتل اینتل FPGA PAC کارت شتاب دهنده PCIe FPGA.

حاوی یک مدیر رابط FPGA (FIM) است که با یک پردازنده Intel Xeon از طریق گذرگاه PCIe جفت می شود.

  • راهنمای کاربر واحد عملکردی شتاب دهنده DMA: کارت شتاب قابل برنامه ریزی Intel FPGA D5005

توضیحات DMA AFU

مقدمه

دسترسی مستقیم به حافظه (DMA) AFU example نحوه مدیریت انتقال حافظه بین پردازنده میزبان و FPGA را نشان می دهد. شما می توانید DMA AFU را در طراحی خود ادغام کنید تا داده ها را بین حافظه میزبان و حافظه محلی FPGA منتقل کنید. DMA AFU شامل زیر ماژول های زیر است:

  • Memory Properties Factory (MPF) Basic Building Block (BBB)
  • رابط حافظه پنهان هسته (CCI-P) به آداپتور Avalon® Memory-Mapped (Avalon-MM)
  • سیستم تست DMA که حاوی DMA BBB است

این زیر ماژول ها با جزئیات بیشتر در مبحث اجزای سخت افزاری DMA AFU در زیر توضیح داده شده اند.

اطلاعات مرتبط

  • اجزای سخت افزار DMA AFU در صفحه 6
  • مشخصات رابط آوالون

برای اطلاعات بیشتر در مورد پروتکل Avalon-MM، از جمله نمودارهای زمان بندی برای خواندن و نوشتن تراکنش ها.

بسته نرم افزاری DMA AFU

اینتل Acceleration Stack برای پردازنده Intel Xeon با بسته 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 برای کارت شتاب‌پذیر برنامه‌پذیر FPGA Intel D5005 مراجعه کنید. این راهنمای شروع سریع همچنین شامل اطلاعات اولیه در مورد باز کردن موتور شتاب‌پذیر قابل برنامه‌ریزی (OPAE) و پیکربندی یک AFU است. پس از نصب بسته نرم افزاری Open Programmable Acceleration Engine (OPAE) به عنوانampبرنامه میزبان le و درایور فضای کاربر DMA AFU در دایرکتوری زیر موجود است: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. برای اجرای sampبرنامه میزبانی le، fpga_dma_test بر روی سخت افزار Intel FPGA PAC D5005، به مراحل در بخش اجرای DMA AFU Ex مراجعه کنید.ampله شرکت اینتل تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان بدون اطلاع قبلی، در هر محصول و خدماتی تغییراتی ایجاد کند. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، بر عهده نمی گیرد، مگر اینکه صراحتاً به صورت کتبی توسط اینتل موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

اطلاعات مرتبط

  • Intel Acceleration Stack راهنمای شروع سریع برای Intel FPGA قابل برنامه ریزی Acceleration Card D5005
  • نصب بسته نرم افزاری OPAE

اجزای سخت افزاری DMA AFU

DMA AFU با واحد رابط FPGA (FIU) و حافظه FPGA ارتباط دارد. برای مشخصات دقیق حافظه FPGA به برگه داده مدیر رابط FPGA برای کارت شتاب قابل برنامه ریزی Intel FPGA D5005 مراجعه کنید. سخت افزار موجود در حال حاضر این پیکربندی حافظه را دیکته می کند. سخت افزار آینده ممکن است از پیکربندی های مختلف حافظه پشتیبانی کند. می‌توانید از DMA AFU برای کپی کردن داده‌ها بین مکان‌های منبع و مقصد زیر استفاده کنید:

  • میزبان حافظه FPGA دستگاه
  • حافظه FPGA دستگاه به میزبان

یک سیستم طراح پلت فرم، $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys بیشتر DMA را پیاده سازی می کند

  • AFU. بخشی از DMA AFU پیاده سازی شده در سیستم Platform Designer را می توانید در زیر بیابید

مکان:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ می توانید DMA BBB را در مکان زیر پیدا کنید:

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

راهنمای کاربر واحد عملکردی شتاب دهنده DMA: کارت شتاب قابل برنامه ریزی Intel FPGA D5005

دیاگرام بلوک سخت افزاری DMA AFU

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

DMA AFU شامل ماژول های داخلی زیر برای ارتباط با واحد رابط FPGA (FIU) است:

  • منطق رمزگشای IO (MMIO) با نقشه حافظه: تراکنش های خواندن و نوشتن MMIO را شناسایی کرده و آنها را از کانال CCI-P RX 0 که از آن وارد می شوند جدا می کند. این تضمین می کند که ترافیک MMIO هرگز به MPF BBB نمی رسد و توسط یک کانال فرمان مستقل MMIO سرویس می شود.
  • Memory Properties Factory (MPF): این ماژول تضمین می کند که پاسخ ها از DMA به ترتیبی که صادر شده اند، خوانده شوند. پروتکل Avalon-MM برای بازگشت به ترتیب صحیح به پاسخ های خوانده شده نیاز دارد.
  • CCI-P به آداپتور Avalon-MM: این ماژول بین تراکنش های CCI-P و Avalon-MM به صورت زیر ترجمه می شود:
  • CCI-P به آداپتور Avalon-MMIO: این مسیر تراکنش های CCI-P MMIO را به تراکنش های Avalon-MM تبدیل می کند.
  • آداپتور میزبان Avalon به CCI-P: این مسیرها مسیرهای جداگانه فقط خواندنی و فقط نوشتنی را برای DMA ایجاد می کنند تا به حافظه میزبان دسترسی داشته باشد.
  • سیستم تست DMA: این ماژول به عنوان یک پوشش در اطراف DMA BBB عمل می کند تا استادان DMA را در معرض بقیه منطق در AFU قرار دهد. این رابط بین DMA BBB و CCI-P به آداپتور Avalon را فراهم می کند. همچنین رابط بین DMA BBB و بانک های محلی FPGA SDRAM را فراهم می کند.

اطلاعات مرتبط
برگه داده مدیر رابط FPGA برای کارت شتاب قابل برنامه ریزی FPGA اینتل D5005

سیستم تست DMA

سیستم تست DMA DMA BBB را به بقیه طراحی FPGA از جمله سازگاری CCI-P و حافظه محلی FPGA متصل می کند.

دیاگرام بلوک سیستم تست DMA
این بلوک دیاگرام اجزای داخلی سیستم تست DMA را نشان می دهد. سیستم تست DMA به صورت یک بلوک یکپارچه در شکل 1 در صفحه 7 نشان داده شده است.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

سیستم تست 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 های بیشتری به طرح اضافه می کنید، مطمئن شوید که آدرس پایه DFH پوچ در انتهای لیست پیوندی DFH قرار دارد.
  • MA Basic Building Block (BBB): این بلوک داده ها را بین میزبان و حافظه محلی FPGA منتقل می کند. همچنین برای دسترسی به زنجیره های توصیفگر به حافظه میزبان دسترسی دارد.

DMA BBB

زیرسیستم DMA BBB با استفاده از تراکنش های Avalon-MM داده ها را از آدرس های مبدا به مقصد منتقل می کند. درایور DMA با دسترسی به کنترل و ثبت وضعیت اجزای مختلف داخل سیستم، DMA BBB را کنترل می کند. درایور DMA همچنین DMA BBB را با استفاده از حافظه مشترک برای برقراری ارتباط با توصیفگرهای انتقال کنترل می کند. DMA BBB به داده های موجود در حافظه FPGA با آفست 0x0 دسترسی دارد. DMA BBB به داده ها و توصیفگرها در حافظه میزبان در افست 0x1_0000_0000_0000 دسترسی دارد.

دیاگرام بلوک طراح پلتفرم DMA BBB
این بلوک دیاگرام برخی از هسته های IP داخلی Pipeline Bridge را حذف می کند.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

راهنمای کاربر واحد عملکردی شتاب دهنده DMA: کارت شتاب قابل برنامه ریزی Intel FPGA D5005

توضیحات DMA AFU

اجزای موجود در DMA BBB Platform Designer عملکردهای زیر را اجرا می کنند:

  • پل دوردست/پل خط لوله: یک پل خط لوله با تأخیر قابل تنظیم برای کنترل توپولوژی و بهبود طراحی Fmax.
  • MA BBB DFH: این یک هدر ویژگی دستگاه برای DMA BBB است. این DFH به DFH بعدی که در افست 0x100 قرار دارد (DFH تهی) اشاره می کند.
  • پیشانی توصیفگر: مسئول واکشی توصیفگرها و انتقال آنها به Dispatcher. هنگامی که یک انتقال DMA کامل می شود، قسمت ظاهری شکل وضعیت را از Dispatcher دریافت می کند و توصیفگر را در حافظه میزبان بازنویسی می کند.
  • دیسپچر: این بلوک درخواست‌های انتقال DMA را به Master Read و Write زمان‌بندی می‌کند.
  • استاد بخوانید: این بلوک وظیفه خواندن داده ها از حافظه میزبان یا محلی 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 در داخل DMA BBB باید 32 بیتی باشد (Descriptor frontend رجیسترهای 64 بیتی را پیاده سازی می کند).

نقشه ثبت DMA AFU

نقشه رجیستر DMA AFU آدرس های مطلق تمام مکان های داخل واحد را ارائه می دهد. این رجیسترها در هاست هستند view زیرا فقط میزبان است که می تواند به آنها دسترسی داشته باشد.

نقشه حافظه DMA AFU

آفست آدرس بایت نام دهانه به بایت توضیحات
0x0 DMA AFU DFH 0x40 هدر ویژگی دستگاه برای DMA AFU. ID_L روی 0x9081f88b8f655caa و ID_H روی 0x331db30c988541ea تنظیم شده است. DMA AFU DFH به گونه‌ای پارامتر شده است که برای یافتن DFH بعدی (DMA BBB DFH) به 0x100 آفست اشاره کند. شما نباید آدرس پایه DMA AFU DFH را تغییر دهید زیرا باید در آدرس 0x0 که توسط مشخصات CCIP تعریف شده است قرار گیرد.
0x100 DMA BBB 0x100 کنترل DMA BBB و رابط ثبت وضعیت را مشخص می کند. برای اطلاعات بیشتر می توانید به نقشه ثبت DMA BBB مراجعه کنید. در DMA BBB در افست 0، DMA BBB شامل DFH خود است. این DFH طوری تنظیم شده است که DFH بعدی را در افست 0x100 (NULL DFH) پیدا کند. اگر تعداد BBB های DMA بیشتری اضافه کنید، آنها را 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 و برنامه آزمایشی از این سخت افزار استفاده نمی کنند.

شرکت اینتل تمامی حقوق محفوظ است. اینتل، آرم اینتل و سایر علائم اینتل علائم تجاری شرکت اینتل یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان بدون اطلاع قبلی، در هر محصول و خدماتی تغییراتی ایجاد کند. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، بر عهده نمی گیرد، مگر اینکه صراحتاً به صورت کتبی توسط اینتل موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

فضاهای نقشه و آدرس را ثبت کنید

نقشه حافظه DMA BBB
آدرس‌های بایت زیر از آدرس پایه DMA BBB در سیستم DMA AFU (0x100) فاصله نسبی دارند.

آفست آدرس بایت نام دهانه به بایت توضیحات
0x0 DMA BBB DFH 0x40 هدر ویژگی دستگاه برای DMA AFU. ID_L روی 0xa9149a35bace01ea و ID_H روی 0xef82def7f6ec40fc تنظیم شده است. DMA BBB DFH پارامتری شده است تا برای افست بعدی DFH به 0x100 اشاره کند. این افست بعدی می تواند یک DMA BBB دیگر، یک DFH دیگر (در این طرح گنجانده نشده است) یا NULL DFH باشد.
0x40 دیسپچر 0x40 پورت کنترل برای دیسپچر. درایور DMA از این مکان برای کنترل DMA یا پرس و جو از وضعیت آن استفاده می کند.
0x80 پیشانی توصیفگر 0x40 پیشانی توصیفگر یک جزء سفارشی است که توصیفگرها را از حافظه میزبان می خواند و هنگامی که انتقال DMA کامل شد، توصیفگر را بازنویسی می کند. درایور به جلویی دستور می دهد که در آن اولین توصیفگر در حافظه میزبان زندگی می کند و سپس سخت افزار frontend عمدتاً از طریق توصیفگرهای ذخیره شده در حافظه میزبان با درایور ارتباط برقرار می کند.

فضای آدرس DMA AFU

میزبان می تواند به ثبت های فهرست شده در جدول 4 در صفحه 12 و جدول 5 در صفحه 13 دسترسی داشته باشد. زیرسیستم DMA BBB به فضای آدرس کامل 49 بیتی دسترسی دارد. نیمه پایینی این فضای آدرس شامل حافظه های محلی FPGA است. نیمه بالایی این فضای آدرس شامل حافظه آدرس میزبان 48 بیتی است. شکل زیر میزبان و DMA را نشان می دهد viewاس حافظه

DMA AFU و میزبان ViewS of Memory

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

فهرست پیوندی سرصفحه ویژگی های دستگاه

طراحی سابق DMA AFUample شامل سه سرصفحه ویژگی دستگاه (DFH) است که یک لیست پیوندی را تشکیل می دهند. این لیست پیوندی به s اجازه می دهدampبرنامه برای شناسایی DMA AFU و همچنین راننده برای شناسایی DMA BBB. لیست DFH شامل یک DFH NULL در پایان است. گنجاندن DFH پوچ در انتهای لیست پیوندی به شما امکان می دهد DMA BBB های بیشتری را به طرح خود اضافه کنید. شما فقط باید NULL DFH را به آدرسی بعد از سایر BBBها منتقل کنید. هر DMA BBB انتظار دارد که DFH بعدی در فاصله 0x100 بایت از آدرس پایه BBB قرار گیرد. شکل زیر لیست پیوندی را برای طراحی سابق DMA AFU نشان می دهدampله

فضاهای نقشه و آدرس را ثبت کنید

زنجیر هدر ویژگی دستگاه DMA AFU (DFH).

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

مدل برنامه نویسی نرم افزار

DMA AFU شامل یک درایور نرم افزاری است که می توانید در برنامه میزبان خود استفاده کنید. fpga_dma.cpp و fpga_dma.h files واقع در مکان زیر، درایور نرم افزار را پیاده سازی کنید:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw این درایور از توابع زیر پشتیبانی می کند:

API توضیحات
fpgaCountDMACchannels زنجیره ویژگی های دستگاه را برای DMA BBB اسکن می کند و همه کانال های موجود را شمارش می کند.
fpgaDMAOpen دسته ای را به کانال DMA باز می کند.
fpgaDMAClose یک دسته را به کانال DMA می بندد.
fpgaDMATtransferInit یک شی را که نشان دهنده انتقال DMA است راه اندازی می کند.
fpgaDMATtransferReset شیء ویژگی انتقال DMA را به مقادیر پیش فرض بازنشانی می کند.
fpgaDMATtransferDestroy شیء ویژگی انتقال DMA را از بین می برد.
fpgaDMATtransferSetSrc آدرس منبع انتقال را تنظیم می کند. این آدرس باید 64 بایت تراز باشد.
fpgaDMATtransferSetDst آدرس مقصد انتقال را تنظیم می کند. این آدرس باید 64 بایت تراز باشد.
fpgaDMATtransferSetLen طول انتقال را بر حسب بایت تنظیم می کند. برای انتقال غیر بسته، باید طول انتقال را روی مضربی از 64 بایت تنظیم کنید. برای انتقال بسته، این یک الزام نیست.
fpgaDMATtransferSetTransferType نوع انتقال را تنظیم می کند. ارزش های قانونی عبارتند از:

• HOST_MM_TO_FPGA_MM = TX (میزبان AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU به میزبان)

fpgaDMATransferSetTransferCallback پاسخ تماس را برای اطلاع رسانی در مورد تکمیل انتقال ناهمزمان ثبت می کند. اگر پاسخ تماس را مشخص کنید، fpgaDMATransfer فوراً برمی‌گردد (انتقال ناهمزمان).

اگر پاسخ تماس را مشخص نکنید، fpgaDMATransfer پس از تکمیل انتقال (انتقال همزمان/مسدود کننده) برمی گردد.

fpgaDMATtransferSetLast آخرین انتقال را نشان می دهد تا DMA بتواند پردازش انتقال های از پیش واکشی شده را شروع کند. مقدار پیش فرض 64 انتقال در خط لوله است قبل از اینکه DMA شروع به کار بر روی انتقال کند.
fpgaDMATtransfer انتقال DMA را انجام می دهد.

برای اطلاعات بیشتر در مورد آرگومان های API، ورودی و خروجی، به هدر مراجعه کنید file واقع در $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، هر محصول و خدماتی را تغییر دهد. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، ندارد، مگر اینکه صراحتاً توسط اینتل به صورت کتبی با آن موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. نام ها و مارک های دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

مدل برنامه نویسی نرم افزار

برای اطلاعات بیشتر در مورد مدل استفاده از درایور نرم افزار، به README مراجعه کنید file واقع در $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

اجرای DMA AFU Example

قبل از شروع:

  • شما باید با سابق آشنا باشیدampدر راهنمای استارت سریع Intel Acceleration Stack برای کارت شتاب قابل برنامه ریزی Intel FPGA D5005.
  • شما باید یک متغیر محیطی تعریف کنید. متغیر محیطی به نسخه Intel Acceleration Stack که استفاده می کنید بستگی دارد:
    • برای نسخه فعلی، متغیر محیط را روی $OPAE_PLATFORM_ROOT تنظیم کنید
  • شما باید کتابخانه Intel Threading Building Blocks (TBB) را نصب کنید زیرا درایور DMA به آن متکی است.
  • همچنین باید دو صفحه عظیم ۱ گیگابایتی برای اجرای s راه اندازی کنیدampبرنامه کاربردی $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"

مراحل زیر را برای دانلود بیت استریم تابع شتاب دهنده (AF) DMA، ساخت برنامه و درایور و اجرای طرح پیشین انجام دهید.ampدر:

  1. تغییر به برنامه DMA و فهرست راهنمای درایور: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. ساخت درایور و برنامه: make
  3. دانلود جریان بیت DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. برنامه میزبان را برای نوشتن 100 مگابایت در بخش های 1 مگابایتی از حافظه میزبان به حافظه دستگاه FPGA اجرا کنید و آن را دوباره بخوانید: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

اطلاعات مرتبط
Intel Acceleration Stack راهنمای شروع سریع برای Intel FPGA قابل برنامه ریزی Acceleration Card D5005 Intel Corporation. تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، هر محصول و خدماتی را تغییر دهد. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، ندارد، مگر اینکه صراحتاً توسط اینتل به صورت کتبی با آن موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

کامپایل DMA AFU Example

برای ایجاد یک محیط ساخت سنتز برای کامپایل یک AF، از دستور afu_synth_setup به صورت زیر استفاده کنید:

  1. به DMA AFU s تغییر دهیدampدایرکتوری: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. دایرکتوری ساخت طراحی را ایجاد کنید: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. از دایرکتوری ساخت سنتز تولید شده توسط afu_synth_setup، دستورات زیر را از یک پنجره ترمینال وارد کنید تا یک AF برای پلت فرم سخت افزاری مورد نظر ایجاد شود: cd build_synth run.sh اسکریپت تولید run.sh AF تصویر AF را با همان پایه ایجاد می کند. fileبه عنوان پیکربندی پلت فرم AFU نامگذاری کنید file (.json) با پسوند .gbs در مکان:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs شرکت اینتل. تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، هر محصول و خدماتی را تغییر دهد. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، ندارد، مگر اینکه صراحتاً توسط اینتل به صورت کتبی با آن موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

شبیه سازی AFU Example

اینتل توصیه می‌کند برای آشنایی با شبیه‌سازی قبلی مشابه، به راهنمای شروع سریع محیط شبیه‌سازی واحد عملکردی شتاب دهنده (AFU) اینتل (ASE) برای PAC Intel FPGA خود مراجعه کنید.amples و محیط خود را تنظیم کنید. قبل از انجام مراحل زیر، بررسی کنید که متغیر محیطی OPAE_PLATFORM_ROOT روی دایرکتوری نصب OPAE SDK تنظیم شده باشد. مراحل زیر را برای راه اندازی شبیه ساز سخت افزاری برای DMA AFU انجام دهید:

  1. به DMA AFU s تغییر دهیدampدایرکتوری le: سی دی $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. یک محیط ASE در یک فهرست جدید ایجاد کنید و آن را برای شبیه سازی یک AFU پیکربندی کنید: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. به فهرست ساخت ASE تغییر دهید: cd build_ase_dir
  4. ساخت درایور و برنامه: make
  5. ساختن شبیه سازی: ساخت سیم

Sampخروجی از شبیه ساز سخت افزار:

[سیم کارت] ** توجه: قبل از اجرای نرم افزار ** [SIM] env(ASE_WORKDIR) را در ترمینال که برنامه اجرا می شود تنظیم کنید (کپی و جایگذاری) => [سیم کارت] $SHELL | Run:[SIM] ———+————————————————— [SIM] bash/zsh | صادرات 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] برای هر $SHELL دیگری، با سرپرست لینوکس خود مشورت کنید [SIM] [SIM] آماده برای شبیه سازی… [SIM] برای بستن شبیه ساز CTRL-C را فشار دهید…

مراحل زیر را برای کامپایل و اجرای نرم افزار DMA AFU در محیط شبیه سازی انجام دهید:

  1. یک پنجره ترمینال جدید باز کنید.
  2. دایرکتوری را به: cd $OPAE_PLATFORM_ROOT/hw/s تغییر دهیدamples/dma_afu/sw

شرکت اینتل تمامی حقوق محفوظ است. اینتل، آرم اینتل و سایر علائم اینتل علائم تجاری شرکت اینتل یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان بدون اطلاع قبلی، در هر محصول و خدماتی تغییراتی ایجاد کند. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، بر عهده نمی گیرد، مگر اینکه صراحتاً به صورت کتبی توسط اینتل موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

شبیه سازی AFU Example

  1. رشته تنظیمات محیط را از مراحل بالا در شبیه سازی سخت افزاری در پنجره ترمینال کپی کنید (رشته مناسب برای پوسته خود را انتخاب کنید). خطوط زیر را در s ببینیدampخروجی از شبیه ساز سخت افزار. [سیم کارت] bash/zsh | صادرات 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. کامپایل نرم افزار: $ make USE_ASE=1
  3. برنامه میزبان را برای نوشتن 4 کیلوبایت در بخش های 1 کیلوبایتی از حافظه میزبان به حافظه دستگاه FPGA در حالت حلقه بک اجرا کنید: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

اطلاعات مرتبط
راهنمای کاربر شروع سریع محیط شبیه سازی (ASE) واحد عملکردی شتاب دهنده اینتل (AFU)

بهینه سازی برای بهبود عملکرد DMA

پیاده سازی بهینه سازی NUMA (دسترسی به حافظه غیر یکنواخت) در fpga_dma_test.cpp به پردازنده اجازه می دهد تا به حافظه محلی خود سریعتر از دسترسی به حافظه غیر محلی (حافظه محلی برای پردازنده دیگر) دسترسی پیدا کند. یک پیکربندی معمولی NUMA در نمودار زیر نشان داده شده است. دسترسی محلی نشان دهنده دسترسی از یک هسته به حافظه محلی به همان هسته است. دسترسی از راه دور مسیری را که یک هسته در Node 0 به حافظه ای که در حافظه محلی Node 1 قرار دارد دسترسی پیدا می کند را نشان می دهد.

پیکربندی معمولی NUMA

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

از کد زیر برای پیاده سازی بهینه سازی NUMA در برنامه آزمایشی خود استفاده کنید:

// در صورت درخواست، وابستگی مناسب را تنظیم کنید اگر (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 *) & func; // دستگاه را از توپولوژی توپولوژی hwloc_topology_t پیدا کنید. hwloc_topology_init(&topology); hwloc_topology_set_flags(توپولوژی، HWLOC_TOPOLOGY_FLAG_IO_DEVICES)؛ شرکت اینتل. تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان بدون اطلاع قبلی، در هر محصول و خدماتی تغییراتی ایجاد کند. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، بر عهده نمی گیرد، مگر اینکه صراحتاً به صورت کتبی توسط اینتل موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند. *اسامی و برندهای دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

بهینه سازی برای بهبود عملکرد DMA

hwloc_topology_load(topology); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (توپولوژی، dom، گذرگاه، توسعه، تابع)؛ 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(topology, obj2->nodeset,HWLOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOGRE_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOC_MEMBIND_LOGRE_MEMBIND_LOC_MEMBIND_LOC_MEMBIND] #else retval =hwloc_set_membind_nodeset(توپولوژی، 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

نسخه پشته شتاب اینتل راهنمای کاربر (PDF)
2.0 راهنمای کاربر واحد عملکردی شتاب دهنده DMA (AFU).

راهنمای کاربر تاریخچه ویرایش سند برای واحد عملکردی شتاب دهنده DMA

 

نسخه سند

شتاب اینتل نسخه پشته  

تغییرات

 

 

2020.08.03

2.0.1 (پشتیبانی شده با اینتل

Quartus® Prime Pro Edition Edition 19.2)

 

تصویر AF را تصحیح کرد file نام در بخش کامپایل DMA AFU Example.

 

 

2020.04.17

2.0.1 (پشتیبانی شده با اینتل

Quartus Prime Pro Edition Edition 19.2)

 

 

تصحیح یک بیانیه در مخاطب مورد نظر بخش

 

 

2020.02.20

2.0.1 (پشتیبانی شده با اینتل

Quartus Prime Pro Edition Edition 19.2)

 

 

غلط املایی رفع شد

 

 

 

 

2019.11.04

 

 

2.0.1 (پشتیبانی شده با اینتل

Quartus Prime Pro Edition Edition 19.2)

• هنگام پیکربندی FPGA با پیش ساخته AFU در بخش، fpgaconf را با fpgasupdate جایگزین کرد. اجرای DMA AFU Example.

• اضافه شدن زیرنویس کارت شتاب قابل برنامه ریزی FPGA اینتل D5005 به عنوان سند

• متغیر محیطی $OPAE_PLATFORM_ROOT اضافه شد.

• بخش اصلاح شده مدل برنامه نویسی نرم افزار برای ویرایش های جزئی

• اضافه شدن بخش جدید کامپایل DMA AFU Example.

• بخش اصلاح شده بهینه سازی برای بهبود عملکرد DMA برای ویرایش های جزئی

 

 

2019.08.05

2.0 (پشتیبانی شده با اینتل

Quartus Prime Pro Edition 18.1.2)

 

 

انتشار اولیه

شرکت اینتل تمامی حقوق محفوظ است. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. اینتل عملکرد FPGA و محصولات نیمه هادی خود را با مشخصات فعلی مطابق با ضمانت استاندارد اینتل تضمین می کند، اما این حق را برای خود محفوظ می دارد که در هر زمان و بدون اطلاع قبلی، هر محصول و خدماتی را تغییر دهد. اینتل هیچ مسئولیت یا مسئولیتی را که ناشی از کاربرد یا استفاده از هر گونه اطلاعات، محصول یا خدماتی است که در اینجا توضیح داده شده است، ندارد، مگر اینکه صراحتاً توسط اینتل به صورت کتبی با آن موافقت شده باشد. به مشتریان اینتل توصیه می شود قبل از تکیه بر اطلاعات منتشر شده و قبل از سفارش محصولات یا خدمات، آخرین نسخه مشخصات دستگاه را دریافت کنند.

  • نام ها و مارک های دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

 

اسناد / منابع

کارت شتاب قابل برنامه ریزی FPGA اینتل D5005 [pdfراهنمای کاربر
کارت شتاب قابل برنامه ریزی FPGA، D5005، کارت شتاب قابل برنامه ریزی FPGA D5005، واحد عملکردی شتاب دهنده DMA

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *