Thẻ tăng tốc có thể lập trình Intel FPGA D5005
Về tài liệu này
Tài liệu này mô tả việc triển khai Đơn vị chức năng tăng tốc truy cập bộ nhớ trực tiếp (DMA) (AFU) và cách xây dựng thiết kế để chạy trên phần cứng hoặc trong mô phỏng.
Đối tượng dự kiến
Đối tượng dự kiến bao gồm các nhà phát triển phần cứng hoặc phần mềm yêu cầu Chức năng Bộ tăng tốc (AF) để đệm dữ liệu cục bộ trong bộ nhớ được kết nối với thiết bị Intel FPGA.
Các quy ước
Quy ước tài liệu
Công ước | Sự miêu tả |
# | Đặt trước một lệnh cho biết lệnh sẽ được nhập dưới dạng thư mục gốc. |
$ | Cho biết một lệnh sẽ được nhập với tư cách người dùng. |
Phông chữ này | Filetên, lệnh và từ khóa được in bằng phông chữ này. Các dòng lệnh dài được in bằng phông chữ này. Mặc dù các dòng lệnh dài có thể kéo dài sang dòng tiếp theo, kết quả trả về không phải là một phần của lệnh; không nhấn enter. |
Cho biết văn bản chỗ dành sẵn xuất hiện giữa các dấu ngoặc nhọn phải được thay thế bằng một giá trị thích hợp. Không nhập dấu ngoặc nhọn. |
Từ viết tắt
Từ viết tắt
Từ viết tắt | Mở rộng | Sự miêu tả |
AF | Chức năng tăng tốc | Hình ảnh Bộ tăng tốc phần cứng được biên dịch được triển khai theo logic FPGA giúp tăng tốc ứng dụng. |
AFU | Bộ tăng tốc đơn vị chức năng | Bộ tăng tốc phần cứng được triển khai theo logic FPGA giúp giảm tải hoạt động tính toán cho một ứng dụng từ CPU để cải thiện hiệu suất. |
Giao diện lập trình ứng dụng (API) | Giao diện lập trình ứng dụng | Một tập hợp các định nghĩa chương trình con, giao thức và công cụ để xây dựng các ứng dụng phần mềm. |
CCI-P | Giao diện bộ nhớ đệm lõi | CCI-P là giao diện tiêu chuẩn mà AFU sử dụng để giao tiếp với máy chủ. |
DFH | Tiêu đề tính năng của thiết bị | Tạo danh sách liên kết các tiêu đề tính năng để cung cấp cách thêm tính năng có thể mở rộng. |
tiếp tục… |
Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là các nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật của thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Từ viết tắt | Mở rộng | Sự miêu tả |
FIM | Trình quản lý giao diện FPGA | Phần cứng FPGA có chứa Đơn vị giao diện FPGA (FIU) và các giao diện bên ngoài cho bộ nhớ, mạng, v.v.
Chức năng Bộ tăng tốc (AF) giao tiếp với FIM tại thời điểm chạy. |
FIU | Đơn vị giao diện FPGA | FIU là một lớp giao diện nền tảng hoạt động như cầu nối giữa các giao diện nền tảng như PCIe *, UPI và các giao diện phía AFU như CCI-P. |
MPF | Nhà máy thuộc tính bộ nhớ | MPF là Khối xây dựng cơ bản (BBB) mà AFU có thể sử dụng để cung cấp các hoạt động định hình lưu lượng CCI-P cho các giao dịch với FIU. |
Bảng chú giải thuật ngữ Acceleration
Acceleration Stack cho CPU Intel® Xeon® với Bảng chú giải thuật ngữ FPGA
Thuật ngữ | Viết tắt | Sự miêu tả |
Ngăn xếp tăng tốc Intel® cho CPU Intel Xeon® với FPGA | Ngăn xếp gia tốc | Tập hợp phần mềm, chương trình cơ sở và công cụ cung cấp kết nối tối ưu hóa hiệu suất giữa Intel FPGA và bộ xử lý Intel Xeon. |
Thẻ tăng tốc có thể lập trình Intel FPGA | Intel FPGA PAC | Thẻ tăng tốc PCIe FPGA.
Chứa Trình quản lý giao diện FPGA (FIM) ghép nối với bộ xử lý Intel Xeon qua bus PCIe. |
- Hướng dẫn Sử dụng Đơn vị Chức năng Bộ gia tốc DMA: Thẻ Gia tốc Lập trình Intel FPGA D5005
Mô tả DMA AFU
Giới thiệu
Ví dụ về AFU Truy cập Bộ nhớ Trực tiếp (DMA)ample chỉ ra cách quản lý chuyển bộ nhớ giữa bộ xử lý máy chủ và FPGA. Bạn có thể tích hợp DMA AFU vào thiết kế của mình để di chuyển dữ liệu giữa bộ nhớ máy chủ và bộ nhớ cục bộ FPGA. DMA AFU bao gồm các mô-đun con sau:
- Nhà máy thuộc tính bộ nhớ (MPF) Khối xây dựng cơ bản (BBB)
- Giao diện Core Cache (CCI-P) với Bộ điều hợp Avalon® Memory-Mapped (Avalon-MM)
- Hệ thống kiểm tra DMA có chứa DMA BBB
Các mô-đun con này được mô tả chi tiết hơn trong chủ đề Thành phần phần cứng DMA AFU bên dưới.
Thông tin liên quan
- Các Thành phần Phần cứng DMA AFU trên trang 6
- Thông số kỹ thuật giao diện Avalon
Để biết thêm thông tin về giao thức Avalon-MM, bao gồm sơ đồ thời gian cho các giao dịch đọc và ghi.
Gói phần mềm DMA AFU
Ngăn xếp Tăng tốc Intel dành cho CPU Intel Xeon với gói FPGA file (* .tar.gz), bao gồm DMA AFU example. Người yêu cũ nàyample cung cấp một trình điều khiển không gian người dùng. Ứng dụng máy chủ sử dụng trình điều khiển này để DMA di chuyển dữ liệu giữa máy chủ và bộ nhớ FPGA. Mã nhị phân phần cứng, nguồn và trình điều khiển không gian người dùng có sẵn trong thư mục sau: $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu. Trước khi thử nghiệm với DMA AFU, bạn phải cài đặt gói phần mềm Open Programmable Acceleration Engine (OPAE). Tham khảo Cài đặt Gói phần mềm OPAE trong Hướng dẫn Bắt đầu Nhanh Ngăn xếp Tăng tốc Intel dành cho Thẻ Gia tốc Lập trình Intel FPGA D5005 để biết hướng dẫn cài đặt. Hướng dẫn Bắt đầu Nhanh này cũng bao gồm thông tin cơ bản về Công cụ Tăng tốc Lập trình Mở (OPAE) và cấu hình AFU. Sau khi cài đặt gói phần mềm Open Programmable Acceleration Engine (OPAE), nhưampứng dụng le host và trình điều khiển không gian người dùng DMA AFU có sẵn trong thư mục sau: $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / sw. Để chạy sampứng dụng le host, fpga_dma_test trên phần cứng Intel FPGA PAC D5005 của bạn, hãy tham khảo các bước trong phần Chạy DMA AFU Example. Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Thông tin liên quan
- Hướng dẫn bắt đầu nhanh ngăn xếp tăng tốc Intel dành cho thẻ tăng tốc có thể lập trình Intel FPGA D5005
- Cài đặt Gói phần mềm OPAE
Các thành phần phần cứng DMA AFU
DMA AFU giao tiếp với Đơn vị Giao diện FPGA (FIU) và bộ nhớ FPGA. Tham khảo Bảng dữ liệu trình quản lý giao diện FPGA dành cho Thẻ tăng tốc có thể lập trình Intel FPGA D5005 để biết thông số kỹ thuật chi tiết của bộ nhớ FPGA. Phần cứng hiện có sẵn quyết định cấu hình bộ nhớ này. Phần cứng trong tương lai có thể hỗ trợ các cấu hình bộ nhớ khác nhau. Bạn có thể sử dụng DMA AFU để sao chép dữ liệu giữa các vị trí nguồn và đích sau:
- Máy chủ lưu trữ cho bộ nhớ FPGA của thiết bị
- Bộ nhớ FPGA của thiết bị vào máy chủ
Hệ thống thiết kế nền tảng, $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / hw / rtl / TEST_dma / /dma_test_system.qsys triển khai hầu hết các DMA
- AFU. Bạn có thể tìm thấy một phần của DMA AFU được triển khai trong hệ thống Platform Designer trong phần sau
vị trí: $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / hw / rtl / TEST_dma / Bạn có thể tìm thấy DMA BBB ở vị trí sau:
- $ OPAE_PLATFORM_ROOT / giờ / giâyamples / dma_afu / hw / rtl / dma_bbb
Hướng dẫn Sử dụng Đơn vị Chức năng Bộ gia tốc DMA: Thẻ Gia tốc Lập trình Intel FPGA D5005
Sơ đồ khối phần cứng DMA AFU
DMA AFU bao gồm các mô-đun bên trong sau để giao tiếp với Đơn vị giao diện FPGA (FIU):
- Logic bộ giải mã IO được ánh xạ bộ nhớ (MMIO): phát hiện các giao dịch đọc và ghi MMIO và tách chúng khỏi kênh CCI-P RX 0 mà chúng đến. Điều này đảm bảo rằng lưu lượng MMIO không bao giờ đến MPF BBB và được phục vụ bởi một kênh lệnh MMIO độc lập.
- Nhà máy Thuộc tính Bộ nhớ (MPF): Mô-đun này đảm bảo rằng các phản hồi đọc từ trả về DMA theo thứ tự mà chúng được phát ra. Giao thức Avalon-MM yêu cầu phản hồi đọc để trả về theo đúng thứ tự.
- Bộ điều hợp CCI-P sang Avalon-MM: Mô-đun này chuyển đổi giữa các giao dịch CCI-P và Avalon-MM, như sau:
- Bộ điều hợp CCI-P sang Avalon-MMIO: Đường dẫn này chuyển các giao dịch CCI-P MMIO thành các giao dịch Avalon-MM.
- Bộ điều hợp máy chủ Avalon sang CCI-P: Các đường dẫn này tạo ra các đường dẫn chỉ đọc và chỉ ghi riêng biệt để DMA truy cập bộ nhớ máy chủ.
- Hệ thống kiểm tra DMA: Mô-đun này đóng vai trò như một lớp bao bọc xung quanh DMA BBB để hiển thị các bản gốc DMA với phần còn lại của logic trong AFU. Nó cung cấp giao diện giữa DMA BBB và CCI-P đến Bộ điều hợp Avalon. Nó cũng cung cấp giao diện giữa DMA BBB và các ngân hàng FPGA SDRAM cục bộ.
Thông tin liên quan
Bảng dữ liệu trình quản lý giao diện FPGA cho thẻ tăng tốc có thể lập trình Intel FPGA D5005
Hệ thống kiểm tra DMA
Hệ thống kiểm tra DMA kết nối DMA BBB với phần còn lại của thiết kế FPGA bao gồm thích ứng CCI-P và bộ nhớ FPGA cục bộ.
Sơ đồ khối hệ thống kiểm tra DMA
Sơ đồ khối này cho thấy bên trong của hệ thống thử nghiệm DMA. Hệ thống thử nghiệm DMA được thể hiện dưới dạng một khối nguyên khối trong Hình 1 trên trang 7.
Hệ thống kiểm tra DMA bao gồm các mô-đun nội bộ sau:
- Cầu Far Reach / Cầu đường ống: Cầu đường ống có độ trễ điều chỉnh được bao gồm để kiểm soát cấu trúc liên kết và cải thiện Fmax thiết kế.
- Tiêu đề tính năng thiết bị DMA AFU (DFH): Đây là DFH dành cho DMA AFU. DFH này trỏ đến DFH tiếp theo nằm ở khoảng lệch 0x100 (DMA BBB DFH).
- Null DFH: Thành phần này kết thúc danh sách liên kết DFH. Nếu bạn thêm nhiều DMA BBB vào thiết kế, hãy đảm bảo rằng địa chỉ cơ sở DFH rỗng nằm ở cuối danh sách liên kết DFH.
- MA Basic Building Block (BBB): Khối này di chuyển dữ liệu giữa máy chủ và bộ nhớ FPGA cục bộ. Nó cũng truy cập bộ nhớ máy chủ để truy cập chuỗi bộ mô tả.
DMA BBB
Hệ thống con DMA BBB chuyển dữ liệu từ nguồn đến địa chỉ đích bằng cách sử dụng các giao dịch Avalon-MM. Trình điều khiển DMA điều khiển DMA BBB bằng cách truy cập vào thanh ghi điều khiển và trạng thái của các thành phần khác nhau bên trong hệ thống. Trình điều khiển DMA cũng điều khiển DMA BBB bằng cách sử dụng bộ nhớ dùng chung để giao tiếp các bộ mô tả truyền. DMA BBB truy cập dữ liệu trong bộ nhớ FPGA ở độ lệch 0x0. DMA BBB truy cập dữ liệu và bộ mô tả trong bộ nhớ máy chủ ở độ lệch 0x1_0000_0000_0000.
Sơ đồ khối của nhà thiết kế nền tảng DMA BBB
Sơ đồ khối này loại trừ một số lõi IP của Cầu đường ống nội bộ.
Hướng dẫn Sử dụng Đơn vị Chức năng Bộ gia tốc DMA: Thẻ Gia tốc Lập trình Intel FPGA D5005
Mô tả DMA AFU
Các thành phần trong Trình thiết kế nền tảng DMA BBB triển khai các chức năng sau:
- Cầu Far Reach / Cầu đường ống: Một cầu đường ống với độ trễ có thể điều chỉnh được bao gồm để kiểm soát cấu trúc liên kết và cải thiện Fmax thiết kế.
- MA BBB DFH: Đây là tiêu đề tính năng thiết bị cho DMA BBB. DFH này trỏ đến DFH tiếp theo nằm ở offset 0x100 (Null DFH).
- Giao diện người dùng mô tả: Chịu trách nhiệm tìm nạp các bộ mô tả và chuyển chúng cho Điều phối viên. Khi quá trình truyền DMA hoàn thành, giao diện người dùng nhận được trạng thái hình thành từ Bộ điều phối và ghi đè bộ mô tả trong bộ nhớ máy chủ.
- Người điều phối: Khối này lập lịch trình DMA chuyển các yêu cầu đến Master Read và Write.
- Đọc Thạc sĩ: Khối này chịu trách nhiệm đọc dữ liệu từ máy chủ lưu trữ hoặc bộ nhớ FPGA cục bộ và gửi nó dưới dạng dữ liệu trực tuyến đến Write Master.
- Viết Master: Khối này chịu trách nhiệm nhận dữ liệu trực tuyến từ Read Master và ghi nội dung vào máy chủ lưu trữ hoặc bộ nhớ FPGA cục bộ.
Đăng ký không gian bản đồ và địa chỉ
DMA AFU hỗ trợ hai bộ nhớ views: DMA view và chủ nhà view. DMA view hỗ trợ không gian địa chỉ 49 bit. Nửa dưới của DMA view ánh xạ tới bộ nhớ FPGA cục bộ. Nửa trên của DMA view bản đồ tới bộ nhớ máy chủ. Máy chủ view bao gồm tất cả các thanh ghi có thể truy cập thông qua truy cập MMIO như bảng DFH và thanh ghi điều khiển / trạng thái của các lõi IP khác nhau được sử dụng bên trong DMA AFU. MMIO đăng ký trong DMA BBB và AFU hỗ trợ truy cập 32 và 64 bit. DMA AFU không hỗ trợ truy cập MMIO 512-bit. Các quyền truy cập vào các thanh ghi Dispatcher bên trong DMA BBB phải là 32 bit (Giao diện người dùng mô tả thực hiện các thanh ghi 64 bit).
Bản đồ đăng ký DMA AFU
Bản đồ thanh ghi DMA AFU cung cấp địa chỉ tuyệt đối của tất cả các vị trí trong đơn vị. Các đăng ký này nằm trong máy chủ lưu trữ view vì chỉ máy chủ mới có thể truy cập chúng.
Bản đồ bộ nhớ DMA AFU
Byte Địa chỉ Offsets | Tên | Khoảng cách tính bằng byte | Sự miêu tả |
0x0 | DMA AFU DFH | 0x40 | Tiêu đề tính năng thiết bị cho DMA AFU. ID_L được đặt thành 0x9081f88b8f655caa và ID_H được đặt thành 0x331db30c988541ea. DMA AFU DFH đã được tham số hóa để trỏ tới chỗ lệch 0x100 để tìm DFH tiếp theo (DMA BBB DFH). Bạn không được sửa đổi địa chỉ cơ sở của DMA AFU DFH vì nó phải nằm ở địa chỉ 0x0 như được xác định bởi đặc tả CCIP. |
0x100 | DMA BBB | 0x100 | Chỉ định giao diện thanh ghi trạng thái và điều khiển DMA BBB. Bạn có thể tham khảo bản đồ đăng ký DMA BBB để biết thêm thông tin. Trong DMA BBB tại điểm bù 0, DMA BBB bao gồm DFH của chính nó. DFH này đã được thiết lập để tìm DFH tiếp theo ở độ lệch 0x100 (NULL DFH). Nếu bạn thêm nhiều BBB DMA hơn, hãy đặt chúng cách nhau 0x100 và đảm bảo NULL DFH theo sau DMA cuối cùng bằng 0x100. |
0x200 | DFH vô giá trị | 0x40 | Chấm dứt danh sách liên kết DFH. ID_L được đặt thành 0x90fe6aab12a0132f và ID_H được đặt thành 0xda1182b1b3444e23. NULL DFH đã được tham số hóa là DFH cuối cùng trong phần cứng. Vì lý do này, NULL DFH được đặt tại địa chỉ 0x200. Nếu bạn thêm các BBB DMA bổ sung vào hệ thống, bạn cần phải tăng địa chỉ cơ sở NULL DFH cho phù hợp để nó vẫn ở địa chỉ cao nhất. Trình điều khiển DMA và ứng dụng thử nghiệm không sử dụng phần cứng này. |
Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là các nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật của thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Đăng ký không gian bản đồ và địa chỉ
Bản đồ bộ nhớ DMA BBB
Các địa chỉ byte sau là hiệu số tương đối từ địa chỉ cơ sở DMA BBB trong hệ thống DMA AFU (0x100).
Byte Địa chỉ Offsets | Tên | Khoảng cách tính bằng byte | Sự miêu tả |
0x0 | DMA BBB DFH | 0x40 | Tiêu đề tính năng thiết bị cho DMA AFU. ID_L được đặt thành 0xa9149a35bace01ea và ID_H được đặt thành 0xef82def7f6ec40fc. DMA BBB DFH đã được tham số hóa để trỏ tới 0x100 cho lần bù DFH tiếp theo. Phần bù tiếp theo này có thể là một DMA BBB khác, một DFH khác (không có trong thiết kế này) hoặc NULL DFH. |
0x40 | Người điều phối | 0x40 | Cổng điều khiển cho người điều phối. Trình điều khiển DMA sử dụng vị trí này để điều khiển DMA hoặc truy vấn trạng thái của nó. |
0x80 | Giao diện người mô tả | 0x40 | Giao diện bộ mô tả là một thành phần tùy chỉnh đọc các bộ mô tả từ bộ nhớ máy chủ và ghi đè bộ mô tả khi quá trình truyền DMA hoàn tất. Trình điều khiển hướng dẫn giao diện người dùng nơi bộ mô tả đầu tiên sống trong bộ nhớ máy chủ và sau đó phần cứng giao diện người dùng chủ yếu giao tiếp với trình điều khiển thông qua các bộ mô tả được lưu trữ trong bộ nhớ máy chủ. |
Không gian địa chỉ DMA AFU
Máy chủ có thể truy cập các thanh ghi được liệt kê trong Bảng 4 trên trang 12 và Bảng 5 trên trang 13. Hệ thống con DMA BBB có quyền truy cập vào không gian địa chỉ 49 bit đầy đủ. Nửa dưới của không gian địa chỉ này bao gồm các bộ nhớ FPGA cục bộ. Nửa trên của không gian địa chỉ này bao gồm bộ nhớ địa chỉ máy chủ 48 bit. Hình sau cho thấy máy chủ và DMA views của bộ nhớ.
DMA AFU và Máy chủ Viewbộ nhớ
Danh sách được liên kết của tiêu đề tính năng thiết bị
Ví dụ về thiết kế DMA AFUample chứa ba tiêu đề tính năng thiết bị (DFH) tạo thành một danh sách được liên kết. Danh sách liên kết này cho phép sampứng dụng le để xác định DMA AFU cũng như trình điều khiển để xác định DMA BBB. Danh sách DFH bao gồm một DFH NULL ở cuối. Việc bao gồm DFH rỗng ở cuối danh sách được liên kết cho phép bạn thêm nhiều DMA BBB vào thiết kế của mình. Bạn chỉ cần di chuyển NULL DFH đến một địa chỉ sau các BBB khác. Mỗi DMA BBB mong đợi DFH tiếp theo sẽ được định vị 0x100 byte từ địa chỉ cơ sở của BBB. Hình sau mô tả danh sách được liên kết cho thiết kế DMA AFU examplà.
Đăng ký không gian bản đồ và địa chỉ
Chuỗi tiêu đề tính năng thiết bị DMA AFU (DFH)
Mô hình lập trình phần mềm
DMA AFU bao gồm một trình điều khiển phần mềm mà bạn có thể sử dụng trong ứng dụng máy chủ của riêng mình. Fpga_dma.cpp và fpga_dma.h fileđược đặt tại vị trí sau, triển khai trình điều khiển phần mềm: $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / sw Trình điều khiển này hỗ trợ các chức năng sau:
Giao diện lập trình ứng dụng (API) | Sự miêu tả |
fpgaCountDMAKênh | Quét chuỗi tính năng của thiết bị để tìm DMA BBB và đếm tất cả các kênh khả dụng. |
fpgaDMAMở | Mở một chốt cho kênh DMA. |
fpgaDMAĐóng | Đóng một chốt đối với kênh DMA. |
fpgaDMATransferInit | Khởi tạo một đối tượng đại diện cho việc truyền DMA. |
fpgaDMAChuyểnĐặt lại | Đặt lại đối tượng thuộc tính truyền DMA thành giá trị mặc định. |
fpgaDMATransferHủy diệt | Hủy đối tượng thuộc tính truyền DMA. |
fpgaDMATransferSetSrc | Đặt địa chỉ nguồn của quá trình chuyển. Địa chỉ này phải được căn chỉnh 64 byte. |
fpgaDMATransferSetDst | Đặt địa chỉ đích của chuyển khoản. Địa chỉ này phải được căn chỉnh 64 byte. |
fpgaDMATransferSetLen | Đặt độ dài truyền theo byte. Đối với truyền không gói, bạn phải đặt độ dài truyền là bội số của 64 byte. Đối với chuyển gói, đây không phải là một yêu cầu. |
fpgaDMATransferSetTransferType | Đặt loại chuyển. Giá trị pháp lý là:
• HOST_MM_TO_FPGA_MM = TX (Máy chủ cho AFU) • FPGA_MM_TO_HOST_MM = RX (AFU cho máy chủ) |
fpgaDMATransferSetTransferGọi lại | Đăng ký cuộc gọi lại để thông báo về việc hoàn tất chuyển giao không đồng bộ. Nếu bạn chỉ định một cuộc gọi lại, fpgaDMATransfer trả về ngay lập tức (truyền không đồng bộ).
Nếu bạn không chỉ định gọi lại, fpgaDMATransfer sẽ trả về sau khi quá trình chuyển hoàn tất (chuyển đồng bộ / chặn). |
fpgaDMATransferSetLast | Cho biết lần chuyển cuối cùng để DMA có thể bắt đầu xử lý các lần chuyển đã tìm nạp trước. Giá trị mặc định là 64 lần truyền trong đường ống trước khi DMA bắt đầu hoạt động trên quá trình truyền. |
fpgaDMAChuyển | Thực hiện chuyển DMA. |
Để biết thêm thông tin về API, đối số đầu vào và đầu ra, hãy tham khảo tiêu đề file nằm ở $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / sw / fpga_dma.hIntel Corporation. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng các sản phẩm hoặc dịch vụ. Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Mô hình lập trình phần mềm
Để biết thêm về mô hình sử dụng trình điều khiển phần mềm, hãy tham khảo README file đặt tại $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / README.md
Chạy DMA AFU Example
Trước khi bạn bắt đầu:
- Bạn nên làm quen với người yêu cũamples in Hướng dẫn Bắt đầu Nhanh Ngăn xếp Tăng tốc Intel dành cho Thẻ Gia tốc Lập trình Intel FPGA D5005.
- Bạn phải xác định một biến môi trường. Biến môi trường phụ thuộc vào phiên bản Intel Acceleration Stack mà bạn đang sử dụng:
- Đối với phiên bản hiện tại, hãy đặt biến môi trường thành $ OPAE_PLATFORM_ROOT
- Bạn phải cài đặt thư viện Intel Threading Building Blocks (TBB) vì trình điều khiển DMA dựa vào nó.
- Bạn cũng phải thiết lập hai trang khổng lồ 1 GB để chạy sampứng dụng le. $ sudo sh -c “echo 2> / sys / kernel / mm / bigpages / bigpages-1048576kB / nr_hugepages”
Thực hiện các bước sau để tải xuống dòng bit của Chức năng Tăng tốc DMA (AF), để xây dựng ứng dụng và trình điều khiển cũng như chạy thiết kếamplê:
- Thay đổi sang thư mục trình điều khiển và ứng dụng DMA: cd $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / sw
- Xây dựng trình điều khiển và ứng dụng: make
- Tải xuống dòng bit DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Thực thi ứng dụng máy chủ để ghi 100 MB trong các phần 1 MB từ bộ nhớ máy chủ sang bộ nhớ thiết bị FPGA và đọc lại: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Thông tin liên quan
Hướng dẫn Bắt đầu Nhanh Ngăn xếp Tăng tốc Intel dành cho Thẻ Gia tốc Lập trình Intel FPGA D5005 Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Biên dịch DMA AFU Example
Để tạo môi trường xây dựng tổng hợp để biên dịch AF, hãy sử dụng lệnh afu_synth_setup như sau:
- Thay đổi sang DMA AFU sampthư mục le: $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu
- Tạo thư mục xây dựng thiết kế: afu_synth_setup –source hw / rtl /filelist.txt build_synth
- Từ thư mục bản dựng tổng hợp được tạo bởi afu_synth_setup, nhập các lệnh sau từ cửa sổ đầu cuối để tạo AF cho nền tảng phần cứng đích: cd build_synth run.sh Tập lệnh tạo AF run.sh tạo hình ảnh AF với cùng một cơ sở fileđặt tên là cấu hình nền tảng của AFU file (.json) với hậu tố .gbs tại vị trí: $ OPAE_PLATFORM_ROOT / hw / samples / build_synth / dma_afu_s10.gbs Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Mô phỏng AFU Example
Intel khuyên bạn nên tham khảo Hướng dẫn Bắt đầu Nhanh Đơn vị Chức năng Bộ tăng tốc (AFU) Môi trường Mô phỏng (ASE) dành cho Intel FPGA PAC của bạn để làm quen với việc mô phỏng tương tựamples và để thiết lập môi trường của bạn. Trước khi bạn tiếp tục các bước sau, hãy xác minh rằng biến môi trường OPAE_PLATFORM_ROOT được đặt thành thư mục cài đặt OPAE SDK. Hoàn thành các bước sau để thiết lập trình mô phỏng phần cứng cho DMA AFU:
- Thay đổi sang DMA AFU sampthư mục le: cd $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu
- Tạo môi trường ASE trong thư mục mới và định cấu hình nó để mô phỏng AFU: afu_sim_setup –source hw / rtl /filelist.txt build_ase_dir
- Thay đổi thành thư mục xây dựng ASE: cd build_ase_dir
- Xây dựng trình điều khiển và ứng dụng: make
- Thực hiện mô phỏng: tạo sim
Sample đầu ra từ trình mô phỏng phần cứng:
[SIM] ** LƯU Ý: TRƯỚC KHI chạy ứng dụng phần mềm ** [SIM] Đặt env (ASE_WORKDIR) trong thiết bị đầu cuối nơi ứng dụng sẽ chạy (sao chép và dán) => [SIM] $ SHELL | Chạy: [SIM] ——— + ————————————————— [SIM] bash / zsh | xuất 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] Đối với bất kỳ $ SHELL nào khác, hãy tham khảo ý kiến quản trị viên Linux của bạn [SIM] [SIM] Sẵn sàng cho mô phỏng… [SIM] Nhấn CTRL-C để đóng trình mô phỏng…Hoàn thành các bước sau để biên dịch và thực thi phần mềm DMA AFU trong môi trường mô phỏng:
- Mở một cửa sổ terminal mới.
- Thay đổi thư mục thành: cd $ OPAE_PLATFORM_ROOT / hw / samples / dma_afu / sw
Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là các nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật của thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Mô phỏng AFU Example
- Sao chép chuỗi thiết lập môi trường (chọn chuỗi phù hợp với trình bao của bạn) từ các bước trên trong mô phỏng phần cứng vào cửa sổ đầu cuối. Xem các dòng sau trong sample đầu ra từ trình mô phỏng phần cứng. [SIM] bash / zsh | xuất 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
- Biên dịch phần mềm: $ make USE_ASE = 1
- Thực thi ứng dụng máy chủ để ghi các phần 4 KB trong 1 KB từ bộ nhớ máy chủ trở lại bộ nhớ thiết bị FPGA ở chế độ lặp lại: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Thông tin liên quan
Hướng dẫn Sử dụng Bắt đầu Nhanh Đơn vị Chức năng Bộ tăng tốc Intel (AFU) Môi trường Mô phỏng (ASE)
Tối ưu hóa để cải thiện hiệu suất DMA
Việc triển khai tối ưu hóa NUMA (truy cập bộ nhớ không đồng nhất) trong fpga_dma_test.cpp cho phép bộ xử lý truy cập bộ nhớ cục bộ của chính nó nhanh hơn so với truy cập bộ nhớ không cục bộ (bộ nhớ cục bộ của bộ xử lý khác). Cấu hình NUMA điển hình được hiển thị trong sơ đồ bên dưới. Truy cập cục bộ đại diện cho truy cập từ một lõi đến bộ nhớ cục bộ đến cùng một lõi. Truy cập từ xa minh họa đường dẫn được thực hiện khi một lõi trên Node 0 truy cập bộ nhớ nằm trong bộ nhớ cục bộ tới Node 1.
Cấu hình NUMA điển hình
Sử dụng mã sau để triển khai tối ưu hóa NUMA trong ứng dụng thử nghiệm của bạn:
// Thiết lập mối quan hệ thích hợp nếu được yêu cầu if (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_tOTO) & func) ” // Tìm thiết bị từ topo cấu trúc liên kết hwloc_topology_t; hwloc_topology_init (& topo); hwloc_topology_set_flags (cấu trúc liên kết, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng sản phẩm hoặc dịch vụ. * Các tên và thương hiệu khác có thể được coi là tài sản của người khác.
Tối ưu hóa để cải thiện hiệu suất DMA
hwloc_topology_load (cấu trúc liên kết); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topo, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (cấu trúc liên kết, 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 là% s \ n”, str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2-> nodeet); printf (“NODESET is% s \ n”, str); # endif if (memory_affinity) {#if HWLOC_API_VERSION> 0x00020000 retval = hwloc_set_membind (topo, obj2-> nodeet, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_BLOCRATE | HWLOC_MEMBIND_MIGRATE | #else retval = hwloc_set_membind_nodeset (cấu trúc liên kết, obj2-> bộ nút, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO (kiểm tra lại, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) {retval = hwloc_set_cpubind (cấu trúc liên kết, obj2-> cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO (kiểm tra lại, out_destroy_tok, “hwloc_set_cpubind”); }}
Lưu trữ Hướng dẫn Sử dụng Đơn vị Chức năng Bộ tăng tốc DMA
Phiên bản ngăn xếp tăng tốc Intel | Hướng dẫn sử dụng (PDF) |
2.0 | Hướng dẫn Sử dụng Đơn vị Chức năng Bộ gia tốc DMA (AFU) |
Lịch sử sửa đổi tài liệu cho Hướng dẫn sử dụng đơn vị chức năng của Bộ gia tốc DMA
Phiên bản tài liệu |
Tăng tốc Intel Phiên bản ngăn xếp |
Thay đổi |
2020.08.03 |
2.0.1 (được hỗ trợ với Intel
Phiên bản Quartus® Prime Pro Phiên bản 19.2) |
Đã sửa ảnh AF file tên trong phần Biên dịch DMA AFU Example. |
2020.04.17 |
2.0.1 (được hỗ trợ với Intel
Phiên bản Quartus Prime Pro Edition 19.2) |
Đã sửa một tuyên bố trong Đối tượng dự kiến phần. |
2020.02.20 |
2.0.1 (được hỗ trợ với Intel
Phiên bản Quartus Prime Pro Edition 19.2) |
Đã sửa lỗi đánh máy. |
2019.11.04 |
2.0.1 (được hỗ trợ với Intel Phiên bản Quartus Prime Pro Edition 19.2) |
• Đã thay thế fpgaconf bằng fpgasupdate khi định cấu hình FPGA với AFU tạo sẵn trong phần Chạy DMA AFU Example.
• Đã thêm phụ đề Thẻ tăng tốc có thể lập trình Intel FPGA D5005 đến tiêu đề tài liệu. • Đã thêm biến môi trường $ OPAE_PLATFORM_ROOT. • Phần đã sửa đổi Mô hình lập trình phần mềm cho các chỉnh sửa nhỏ. • Đã thêm phần mới Biên dịch DMA AFU Example. • Phần đã sửa đổi Tối ưu hóa để cải thiện hiệu suất DMA cho các chỉnh sửa nhỏ. |
2019.08.05 |
2.0 (được hỗ trợ với Intel
Phiên bản Quartus Prime Pro 18.1.2) |
Phiên bản phát hành đầu tiên. |
Tập đoàn Intel. Đã đăng ký Bản quyền. Intel, logo Intel và các nhãn hiệu khác của Intel là nhãn hiệu của Intel Corporation hoặc các công ty con của Intel. Intel đảm bảo hiệu suất của FPGA và các sản phẩm bán dẫn của mình theo các thông số kỹ thuật hiện tại phù hợp với bảo hành tiêu chuẩn của Intel, nhưng có quyền thực hiện các thay đổi đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo. Intel không chịu trách nhiệm hoặc nghĩa vụ pháp lý phát sinh từ việc áp dụng hoặc sử dụng bất kỳ thông tin, sản phẩm hoặc dịch vụ nào được mô tả ở đây trừ khi được Intel đồng ý rõ ràng bằng văn bản. Khách hàng của Intel nên lấy phiên bản mới nhất của thông số kỹ thuật thiết bị trước khi dựa vào bất kỳ thông tin nào được công bố và trước khi đặt hàng các sản phẩm hoặc dịch vụ.
- Những tên và thương hiệu khác có thể được coi là tài sản của người khác.
Tài liệu / Tài nguyên
![]() |
Thẻ tăng tốc có thể lập trình Intel FPGA D5005 [tập tin pdf] Hướng dẫn sử dụng Thẻ tăng tốc có thể lập trình FPGA, D5005, Thẻ tăng tốc có thể lập trình FPGA D5005, Bộ phận chức năng Bộ gia tốc DMA |