Phát triển nền tảng phần cứng cấu hình lại được đa lõi dựa theo kiến trúc NoC trên FPGA
Tóm tắt - Linh hoạt và khả năng mở rộng là các đặc tính rất quan
trọng trong các nền tảng nhúng hiện đại. Cấu hình lại từng phần
động (Dynamic Partial Reconfigurable) trên FPGA và kiến trúc
mạng trên chip (NoC: Network on Chip) là các giải pháp tuyệt vời
cho các yêu cầu thiết kế này. Bài báo tập trung vào phát triển nền
tảng phần cứng cấu hình lại được tại thời gian chạy trên FPGA
dựa theo kiến trúc NoC. Nền tảng này có khả năng cấu hình lại
các mô đun cho lớp truyền thông NoC để tối ưu hóa cấu trúc
truyền thông theo yêu cầu thay đổi của ứng dụng nhằm nâng cao
hiệu quả sử dụng tài nguyên và cải thiện hiệu năng mạng hoặc
cấu hình lại lớp tính toán khi có ứng dụng mới triển khai lên nền
tảng một cách linh hoạt. Mô hình này đã được nhóm tác giả thực
nghiệm và kiểm chứng trên FPGA Virtex-6 chip XC6VLX240T.
Tóm tắt nội dung tài liệu: Phát triển nền tảng phần cứng cấu hình lại được đa lõi dựa theo kiến trúc NoC trên FPGA
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 21 PHÁT TRIỂN NỀN TẢNG PHẦN CỨNG CẤU HÌNH LẠI ĐƯỢC ĐA LÕI DỰA THEO KIẾN TRÚC NoC TRÊN FPGA DEVELOPING A FLEXIBLE NoC-BASED MULTICORE RECONFIGURABLE HARDWARE PLATFORM ON FPGA Nguyễn Văn Cường1, Phạm Văn Vĩnh1, Nguyễn Trọng Các2 1Trường Đại học Công nghiệp Tp.HCM; {nguyenvancuong, phamvanvinh}@iuh.edu.vn 2Trường Đại học Sao Đỏ; cacdhsd@gmail.com Tóm tắt - Linh hoạt và khả năng mở rộng là các đặc tính rất quan trọng trong các nền tảng nhúng hiện đại. Cấu hình lại từng phần động (Dynamic Partial Reconfigurable) trên FPGA và kiến trúc mạng trên chip (NoC: Network on Chip) là các giải pháp tuyệt vời cho các yêu cầu thiết kế này. Bài báo tập trung vào phát triển nền tảng phần cứng cấu hình lại được tại thời gian chạy trên FPGA dựa theo kiến trúc NoC. Nền tảng này có khả năng cấu hình lại các mô đun cho lớp truyền thông NoC để tối ưu hóa cấu trúc truyền thông theo yêu cầu thay đổi của ứng dụng nhằm nâng cao hiệu quả sử dụng tài nguyên và cải thiện hiệu năng mạng hoặc cấu hình lại lớp tính toán khi có ứng dụng mới triển khai lên nền tảng một cách linh hoạt. Mô hình này đã được nhóm tác giả thực nghiệm và kiểm chứng trên FPGA Virtex-6 chip XC6VLX240T. Abstract - Flexibility and scalability are very important characteristics of modern embedded platforms. The Dynamic Partial Reconfigurable (DPR) FPGA and Network on Chip (NoC) architectures are excellent solutions to these requirements.This paper focuses on the development of a NoC-based run-time reconfigurable hardware platform on FPGA. This platform is capable of reconfiguring NoC communication modules to optimize the communication structure in response to changes in application processing requirements in order to increase the resource usage efficiency and to improve the network performance. The platform can also reconfigure processing elements when new applications need to be deployed. This model is implemented on Virtex-6 FPGA with AXI Bus. Từ khóa - Cấu hình động; mạng trên chip; Multicore; FPGA. Key words - DPR; NoC, Multicore; FPGA. 1. Đặt vấn đề Trong những năm gần đây, công nghệ FPGA không ngừng phát triển, số lượng tài nguyên và tốc độ xử lý trên nó đang dần tăng, giá thành và tiêu thụ năng lượng tiếp tục giảm, nhiều tính năng mới được tích hợp, đặc biệt là khả năng cấu hình lại từng phần động [1-2]. Do vậy, hệ thống trên chip dựa trên FPGA đã trở thành nền tảng đầy hứa hẹn cho các hệ thống nhúng hiệu năng cao vì nó cung cấp một sự cân bằng tốt giữa hiệu năng, rút ngắn thời gian đưa sản phẩm ra thị trường, chi phí và tính linh hoạt. Theo hướng này, hầu hết các hệ thống nhúng dựa trên FPGA đã được phát triển để hỗ trợ các ứng dụng đa phương tiện và các ứng dụng xử lý tín hiệu [3-6]. Các ứng dụng này thường đòi hỏi cơ sở hạ tầng truyền thông linh hoạt, hiệu năng cao và khả năng xử lý dữ liệu nhanh. Do vậy, phát triển một nền tảng nhúng cấu hình lại được trên FPGA dựa theo mô hình NoC tại thời gian chạy là hết sức cần thiết và phù hợp với hướng phát triển này. Hiện nay, có hai giải pháp tiếp cận cho vấn đề cấu hình lại cấu trúc NoC tại thời gian chạy để thích nghi với yêu cầu thay đổi của các ứng dụng: (i) Giải pháp tự cấu hình các mô đun dựa theo tình trạng mạng như trong [7-8] và (ii) giải pháp cấu hình động các mô đun trong NoC dựa trên công nghệ cấu hình lại từng phần động của các FPGA hiện đại. Trong khuôn khổ của nghiên cứu này, nhóm tác giả tập trung vào phát triển một nền tảng phần cứng cấu hình lại được đa lõi dựa theo kiến trúc NoC trên FPGA bao gồm một lõi vi xử lý nhúng (ví dụ: Microblaze hoặc ARM) và các PE, router cấu hình lại được, chúng được kết nối với nhau thông qua kiến trúc truyền thông NoC. Nền tảng này có khả năng tự động cấu hình lại cơ sở hạ tầng truyền thông để thích nghi với các yêu cầu thay đổi của ứng dụng hoặc cho phép cấu hình lại các lõi PE để đáp ứng yêu cầu khi triển khai các ứng dụng mới, triển khai nhiều ứng dụng, các ứng dụng có thể điều chỉnh mức chất lượng hoặc nâng cấp sửa lỗi hệ thống trong tương lai một cách linh hoạt. 2. Phương pháp thiết kế Để tạo ra một nền tảng phần cứng có thể cấu hình lại được dựa trên FPGA, bước đầu tiên chúng ta phải thực hiện phân vùng thiết bị vật lý. Hình dạng và sự phân bố các khu vực trên thiết bị vật lý đại diện cho kiến trúc của hệ thống cấu hình lại cơ bản cần được phát triển. Thiết lập các vùng được chia vào hai khu vực: Khu vực tĩnh và khu vực cấu hình (khu vực động) như Hình 1. Các thành phần không cần phải thay đổi tại thời gian chạy của hệ thống được đặt vào khu vực tĩnh của thiết bị. Trong khi các chức năng khác có thể thay đổi tại thời gian chạy phải được đặt trong khu vực cấu hình [2]. Khu vực cấu hình có thể được chia thành một ma trận với nhiều ô (tile). Mỗi ô đại diện cho một vùng cấu hình của thiết bị. Tất cả các kênh truyền thông giữa khu vực tĩnh và khu vực cấu hình hoặc giữa các khu vực cấu hình có thể được đảm bảo độ tin cậy bằng các Bus Macro. Việc lựa chọn các khối chức năng để đặt vào khu vực tĩnh hoặc khu vực cấu hình sẽ ảnh hưởng lớn đến cả sự linh hoạt và hiệu năng của hệ thống cuối cùng. Do vậy, người thiết kế cần có một chiến lược phân vùng hợp lý và đúng đắn cho các khối chức năng trước khi đặt chúng vào khu vực tĩnh hay khu vực cấu hình. Trước khi phát triển một nền tảng phần cứng cấu hình lại được trên FPGA dựa theo mô hình NoC, chúng ta cần xem xét lựa chọn các giải pháp sao cho phù hợp với các mục tiêu thiết kế đề ra. Đầu tiên, xem xét giải pháp cho phép cấu hình lại cơ sở hạ tầng truyền thông mạng, có thể cấu hình các thành phần trong bộ định tuyến như bộ đệm [9], chuyển mạch, bộ phân xử, v.v. hoặc bộ định tuyến hoặc cả cấu hình mạng (topology) để tối ưu kiến trúc 22 Nguyễn Văn Cường, Phạm Văn Vĩnh, Nguyễn Trọng Các truyền thông, trong khi duy trì cố định vị trí của các PE. Giải pháp này hoàn toàn phù hợp với kịch bản các ứng dụng chạy trên hệ thống có tải làm việc thay đổi động (ví dụ: thay đổi hiệu năng, thay đổi mức chất lượng). Giải pháp thứ hai có thể xem xét, đó là thay đổi động các PE, trong khi cơ sở hạ tầng truyền thông mạng được giữ cố định trong suốt thời gian chạy. Giải pháp này rất phù hợp cho bài toán ánh xạ các ứng dụng khác nhau lên hệ thống hoặc hệ thống có tài nguyên hạn chế nhưng yêu cầu triển khai nhiều ứng dụng lên nó tại các thời điểm khác nhau. Cuối cùng, người thiết kế có thể kết hợp cả hai giải pháp vừa nêu để tạo ra một hệ thống cấu hình lại có tính linh hoạt và khả năng thích nghi cao hơn. Tuy nhiên, giải pháp này có thể làm tăng thời gian thiết kế cũng như tăng độ phức tạp trong việc quản lý các tác vụ cấu hình tại thời gian chạy. MicroBlaze/ ARM ICAP DDR3 UART Vùng tĩnh Vùng cấu hình lại được FPGA Bus Macro Hình 1. Mô hình kiến trúc cấu hình trên FPGA Trong phạm vi bài báo này, nhóm tác giả sẽ tập trung vào phát triển một nền tảng mẫu có thể thực hiện theo giải pháp thứ nhất hoặc giải pháp thứ hai. 3. Phát triển hệ thống Hệ thống cấu hình lại từng phần động được xây dựng như Hình 2. Khu vực tĩnh được đặt trong vùng tĩnh của FPGA, nó chịu trách nhiệm điều khiển quá trình hoạt động của toàn hệ thống trong suốt thời gian chạy ứng dụng, và điều khiển quá trình cấu hình lại các mô đun của NoC tương ứng với các giải pháp đã được trình bày trong Mục 2. Các thành phần chính đặt trong khu vực này gồm vi xử lý nhúng đóng vai trò xử lý trung tâm và điều khiển các hoạt động cấu hình của hệ thống qua hệ thống Bus AXI (Advanced eXtensible Interface). Khối UART (Universal Asynchronous Receiver/Transmitter) có chức năng giao tiếp với máy tính thông qua cổng truyền thông nối tiếp chuẩn RS-232 để hiển thị các thông báo và kết quả trên máy tính. Khối sysAce_Compact Flash thực hiện giao tiếp với bộ nhớ ngoài CF (Compact Flash), nơi lưu trữ các file cấu hình như bộ định tuyến hoặc cấu hình mạng hay các PE được tổng hợp theo các ứng dụng. Bộ định thời (Timer) được sử dụng để đo thời gian cấu hình của hệ thống. HWICAP là một lõi cứng được cung cấp bởi Xilinx [10], có vai trò rất quan trọng trong hệ thống cấu hình lại động vì HWICAP nhận các file cấu hình từ bộ nhớ ngoài CF hoặc từ bộ nhớ SDRAM DDR3 để nạp vào khu vực cấu hình động của FPGA. Ngoài ra, khu vực tĩnh còn chứa một số mô đun không cần cấu hình lại của NoC. Khu vực độngKhu vực tĩnh Microblaze Processor Uart SysACE CompactFlash HWICAP AXI/PLB BUS Timer Flash Memory Host NoC DDR3 Phần không cần cấu hình Phần cấu hình Hình 2. Sơ đồ khối tổng quát của hệ thống Khu vực động chứa các mô đun chức năng còn lại của NoC mà có thể thay đổi, sửa lỗi hoặc gỡ bỏ tại thời gian chạy để thích nghi với yêu cầu thay đổi của ứng dụng. Hoạt động cấu hình lại được thực hiện nhờ vào bộ điều khiển cấu hình và vi xử lý nhúng đặt trong phần tĩnh. Bộ điều khiển cấu hình kết nối bộ nhớ ngoài CF hoặc bộ nhớ SDRAM DDR3 thông qua Bus AXI. Bộ nhớ ngoài CF được sử dụng để lưu trữ các file cấu hình từng phần đã được tổng hợp trước dựa trên phân tích các đặc tính của ứng dụng. Để thực hiện một quá trình cấu hình, bộ điều khiển sẽ đọc file cấu hình mong muốn từ bộ nhớ ngoài CF hoặc bộ nhớ SDRAM DDR3 để ghi vào ICAP, tiếp theo dữ liệu sẽ được đọc từ ICAP để ghi vào bộ nhớ cấu hình của FPGA. Hệ thống được xây dựng và tổng hợp trên XPS như Hình 3. Hình 3. Thiết lập phần cứng trên công cụ XPS Sau khi phần cứng của hệ thống được thiết lập, một phần mềm điều khiển bằng ngôn ngữ C được tạo ra trên công cụ SDK dùng để điều khiển, giám sát quá trình cấu hình cũng như đo đạc một vài thông số cấu hình như thời gian hoặc tốc độ. Trong nghiên cứu này, nhóm tác giả sử dụng hai phương pháp cấu hình. Phương pháp thứ nhất, thực hiện cấu hình từ bộ nhớ ngoài CF. Ưu điểm của phương pháp này là tài nguyên mà hệ thống sử dụng nhỏ. Tuy nhiên, tốc độ thực hiện cấu hình chậm vì độ rộng bus dữ liệu của bộ nhớ CF bé (8 bit). Phương pháp thứ hai, thực hiện cấu hình từ bộ nhớ SDRAM DDR3 nhằm nâng cao tốc độ cấu hình cho hệ thống vì bộ nhớ SDRAM DDR3 có tốc độ hoạt động và độ rộng Bus dữ liệu lớn hơn bộ nhớ CF. Tuy nhiên, hệ thống phải sử dụng tài nguyên nhiều hơn. ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 23 4. Các trường hợp nghiên cứu 4.1. Cấu hình lại cơ sở hạ tầng truyền thông Các yêu cầu truyền thông ngày càng gia tăng trong các hệ thống nhúng như nền tảng đa lõi không đồng nhất cấu hình lại được. Do vậy, việc lựa chọn một cơ sở hạ tầng truyền thông phù hợp là cần thiết. Tuy nhiên, trong nhiều trường hợp mức ưu tiên của các ứng dụng chưa được biết trước tại lúc thiết kế hoặc trường hợp các ứng dụng chạy trên hệ thống có tải làm việc thay đổi động. Trong những trường hợp như vậy, một cơ sở hạ tầng truyền thông tĩnh sẽ không còn phù hợp. Thay vào đó, một cơ sở hạ tầng truyền thông động, thích nghi với các thay đổi của ứng dụng sẽ được sử dụng. Khi yêu cầu của các ứng dụng thay đổi, kiến trúc của cơ sở hạ tầng truyền thông NoC sẽ được điều chỉnh và tối ưu hóa cấu trúc mạng nhằm nâng cao hiệu năng cho hệ thống, giảm tiêu thụ năng lượng và ngay cả tiết kiệm chi phí tài nguyên. Để có được một cơ sở hạ tầng truyền thông linh hoạt như trên, chúng ta xem xét cấu hình lại từng bộ định tuyến trong [11] với các kích thước bộ đệm ngõ vào/ra khác nhau hoặc cấu hình lại cả topo mạng NoC 2x2 được tổng hợp từ bộ định tuyến và bộ giao tiếp mạng [11-12] thích nghi theo yêu cầu thay đổi của ứng dụng tại thời gian chạy bằng cách sử dụng hệ thống cấu hình lại từng phần động cho NoC đã được trình bày ở Mục 3. Trong kịch bản này, các bộ định tuyến và topo mạng 2x2 được đặt trong khu vực động của FPGA, các thành phần còn lại của mạng 2x2 sẽ được đặt vào khu vực tĩnh như NI và các PE được chỉ ra trong Hình 4. Các bộ định tuyến hoặc các topo mạng sẽ được tổng hợp thành các file cấu hình khác nhau dựa theo các ứng dụng cụ thể khác nhau. Tùy theo ứng dụng được đưa vào hệ thống mà nó sẽ lựa chọn bộ định tuyến hoặc topo thích hợp để cấu hình. Khu vực tĩnh Khu vực tĩnhKhu vực động NI NINI NI PE 00 PE 01 PE 11 PE 10 Router 00 Router 01 Router 10 Router 11 Hình 4. Phân chia khu vực cấu hình lại bộ định tuyến hoặc topo mạng 2x2 của NoC 4.2. Cấu hình lại các PE Do độ phức tạp của các thiết bị nhúng hiện đại ngày càng tăng nên nhiều ứng dụng với tính năng khác nhau có thể được triển khai lên thiết bị. Tuy nhiên, tài nguyên của thiết bị nhúng luôn có giới hạn, vì vậy tại một thời điểm không thể triển khai tất cả các ứng dụng yêu cầu lên nó. Để giải quyết vấn đề này, giải pháp ánh xạ động các ứng dụng lên nền tảng phần cứng NoC có khả năng cấu hình lại các lõi PE sẽ được lựa chọn. Xem xét một ví dụ đơn giản như sau: Yêu cầu triển khai 2 ứng dụng A1 và A2 lên nền tảng NoC có 4 PE. Trong đó, ứng dụng A1 có 4 tác vụ, ứng dụng A2 có 3 tác vụ. Nếu chúng ta sử dụng một nền tảng NoC dạng tĩnh có nghĩa là các PE không thể điều chỉnh sau khi chế tạo. Trong trường hợp này, rõ ràng chúng ta không thể triển khai được 2 ứng dụng A1 và A2. Tuy nhiên, nếu chúng ta sử dụng một nền tảng NoC có thể cấu hình lại được các PE tại thời gian chạy, khi đó 2 ứng dụng A1 và A2 có thể được triển khai lên nền tảng. Vấn đề này có thể được giải thích như sau: Khi ứng dụng A1 thực hiện xong, hệ thống yêu cầu thực hiện ứng dụng A2 lúc đó các PE chỉ thuộc về ứng dụng A2 được chứa trong bộ nhớ của hệ thống sẽ được nạp vào các vùng cấu hình trên nền tảng NoC. Quá trình này có thể thực hiện được nhờ vào khả năng cấu hình lại từng phần động của FPGA. Lúc đó các PE thuộc về ứng dụng A1 sẽ bị loại bỏ ra khỏi hệ thống. Việc tìm và đặt các PE của ứng dụng A1 hoặc A2 lên nền tảng để tối ưu theo một vài tiêu chí nào đó như năng lượng tiêu thụ hay mức chất lượng sẽ phụ thuộc vào thuật toán ánh xạ. Để thực hiện được một kịch bản như vậy, giải pháp tự động cấu hình lại các PE trong NoC tại thời gian chạy là cần thiết. Giải pháp này rất phù hợp để giải quyết bài toán ánh xạ các ứng dụng khác nhau lên hệ thống tại thời gian chạy hoặc hệ thống có tài nguyên giới hạn nhưng yêu cầu triển khai nhiều ứng dụng lên nó tại các thời điểm khác nhau. Khu vực độngKhu vực động Khu vực tĩnh NI NINI NI PE 00 PE 01 PE 11 PE 10 Router 00 Router 01 Router 10 Router 11 Hình 5. Mô hình cấu hình lại các PE trong mạng 2x2 Kịch bản cấu hình lại các PE cho NoC này được thực hiện dựa trên hệ thống cấu hình tổng quát đã được xây dựng như Hình 2. Trong đó, mô đun NoC được phân chia vào khu vực cấu hình động và tĩnh như Hình 5. Do các PE có thể thay đổi tự động khi có một ứng dụng mới được triển khai lên nền tảng nên chúng được đặt trong khu vực động của FPGA. Trong khi, kiến trúc truyền thông của NoC không thay đổi nên chúng được đặt trong khu vực tĩnh. Các thuật toán ánh xạ sẽ tự động tìm và đặt các tác vụ của ứng dụng vào các PE tương ứng trên nền tảng phần cứng theo các điều kiện ràng buộc của thuật toán. Với một ứng dụng cụ thể được triển khai lên nền tảng, hệ thống sẽ tự động nạp các file cấu hình vào các vùng cấu hình tương ứng với các PE. Các file cấu hình được tổng hợp trước tại thời gian thiết kế dựa trên đặc tính và đồ thị tác vụ của các ứng dụng và chúng được lưu trữ trong bộ nhớ CF của hệ thống. Kích thước mỗi vùng cấu hình được tạo ra dựa trên phân tích độ lớn của các tác vụ của ứng dụng (ví dụ số slice cho một tác vụ). 5. Kết quả thực nghiệm Thiết kế của nhóm tác giả được thực hiện và thử nghiệm trên Kit FPGA Virtex-6 dòng chip XC6VLX240T với Bus AXI cho các trường hợp nghiên cứu đã được phân tích trong Mục 4. Tần số hoạt động của hệ thống tại 100 MHz, tốc độ truyền nối tiếp giữa máy tính và FPGA là 115.200 baud thông qua cổng UART. Các công cụ hỗ trợ thiết kế gồm ISE, XPS, SDK và PlanAhead phiên bản 14.1 của Xilinx. Tài nguyên phần cứng của các hệ thống tương ứng với bus AXI và AXI + DDR3 được chỉ ra như Bảng 1. 24 Nguyễn Văn Cường, Phạm Văn Vĩnh, Nguyễn Trọng Các Bảng 1. Tài nguyên sử dụng của các hệ thống cấu hình Tài nguyên Sẵn có AXI AXI + DDR3 Sử dụng % Sử dụng % Register 301440 4257 1,41 15347 5,10 LUT 150720 4948 3,28 14763 9,79 Slice 37680 1915 5,08 6949 18,44 Router 00 Router 11 Router 01 Router 10 a) Cấu hình các router trong mạng 2x2 PE00 PE01 PE10 PE11 b) Cấu hình các PE trong mạng 2x2 Hình 6. Vị trí vật lý của các thành phần trong hệ thống theo các kịch bản khác nhau Các khu vực cấu hình và khu vực tĩnh của hệ thống được đặt lên phần cứng vật lý của FPGA được chỉ ra như Hình 6. Hình 6a chỉ ra các vị trí đặt các thành phần của hệ thống trong kịch bản cấu hình lại các bộ định tuyến có kích thước các bộ đệm ngõ vào/ra thay đổi. Trong đó, các vùng cấu hình Router00, Router01, Router10 và Router11 là các bộ định tuyến, chúng được đặt trong khu vực động của FPGA. Các mô đun Microblaze, Bus, sysAce_CompactFlash, v.v. được đặt trong vùng tĩnh của FPGA (vùng màu xanh). Tương tự, Hình 6b chỉ ra vị trí đặt các PE trong mạng 2x2 tương ứng với kịch bản cấu hình lại các PE. Đối với kịch bản cấu hình lại các bộ định tuyến thích nghi theo tải làm việc động của ứng dụng, các file cấu hình được tổng hợp và tạo ra từ công cụ PlanAhead tại lúc thiết kế. Mỗi file cấu hình của bộ định tuyến có kích thước 209Kb chứa bộ đệm có kích thước lần lượt là 2, 4, 8 và 16. Tùy theo lưu lượng tải làm việc của ứng dụng mà hệ thống sẽ tự động chọn file bộ định tuyến cấu hình có kích thước bộ đệm thích hợp để cấu hình lại nhằm tối ưu hóa kiến trúc và cải thiện hiệu năng cho hệ thống. Với kịch bản cấu hình lại các PE, các file cấu hình (các PE cấu hình) được tạo ra dựa trên phân tích đặc tính các tác vụ của các ứng dụng đưa vào hệ thống. Trong kịch bản này, nhóm tác giả tạo ra 4 PE giả, mỗi PE có kích thước file cấu hình là 108Kb. Khi có một ứng dụng mới được triển khai lên hệ thống, thuật toán ánh xạ các tác vụ của ứng dụng sẽ tìm và đặt các tác vụ lên các PE trong hệ thống sao cho thỏa mãn các tiêu chí tối ưu nào đó (ví dụ: tối ưu hiệu năng, mức chất lượng). Sau khi thuật toán ánh xạ hoàn tất, dựa vào các vị trí đặt các tác vụ trên các PE mà hệ thống sẽ tự động nạp các file cấu hình PE tương ứng vào đúng vị trí đã thiết lập trước khi ứng dụng bắt đầu chạy trên hệ thống. Thời gian và tốc độ cấu hình cho từng kịch bản cụ thể được hệ thống đo đạc như trong Bảng 2. Dễ thấy rằng hệ thống sử dụng Bus AXI kết hợp RAM DDR3 có thời gian cấu hình nhỏ hơn, tốc độ cấu hình nhanh hơn so với chỉ sử dụng Bus AXI. Vì trong hệ thống cải tiến sử dụng AXI + DDR3, các file cấu hình được đọc trực tiếp từ bộ nhớ RAM DDR3 nên tốc độ cấu hình được cải thiện hơn 6 lần so với trường hợp các file cấu hình được đọc từ bộ nhớ ngoài CF vì độ rộng bus dữ liệu của bộ nhớ RAM DDR3 lớn hơn. Tuy nhiên, hệ thống này tiêu tốn khá nhiều tài nguyên. Do vậy, tùy theo yêu cầu về chất lượng dịch vụ của từng miền ứng dụng mà chúng ta có thể lựa chọn loại hệ thống cấu hình phù hợp để thực hiện. Bảng 2. Thời gian và tốc độ cấu hình của các kịch bản Thông số cấu hình 1 router Mạng 2x2 1 PE của mạng 2x2 1 router Mạng 2x2 1 PE của mạng 2x2 AXI AXI+DDR3 Bitstream size (Kb) 209 450 108 209 450 108 Thời giancấu hình (s) 0,402 0,867 0,208 0,068 0,147 0,035 Tốc độ cấu hình (Mb/s) 0,519 0,519 0,519 3,070 3,070 3,070 6. Kết luận và hướng phát triển Trong bài báo này, nhóm tác giả đã phát triển một nền ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL. 17, NO. 1.1, 2019 25 tảng phần cứng cấu hình lại được đa lõi dựa theo kiến trúc NoC trên FPGA. Nền tảng này cho phép thay đổi tự động các mô đun cho lớp truyền thông hoặc lớp tính toán của NoC tại thời gian chạy nhằm tối ưu hóa cấu trúc và thích nghi với sự thay đổi của các ứng dụng. Một nền tảng như vậy là rất phù hợp với xu hướng thiết kế các hệ thống đa lõi vì nó vừa có tính linh hoạt, thích nghi và hơn nữa là sự cân bằng giữa chi phí thiết kế và thời gian thiết kế. Các kết quả đạt được của nghiên cứu này sẽ là tiền đề cho các hướng nghiên cứu mới trong tương lai như xem xét bài toán ánh xạ các ứng dụng có thể điều chỉnh mức chất lượng lên nền tảng NoC cấu hình lại được. Khi triển khai chạy một ứng dụng mới trên nền tảng, quá trình ánh xạ các tác vụ của ứng dụng vào nền tảng phần cứng sẽ được thực hiện. Lúc đó, một số PE tại lớp tính toán sẽ được cấu hình lại để có thể xử lý dữ liệu cho các tác vụ mới. Lời cảm ơn: Chúng tôi xin chân thành cảm ơn Trường Đại học Công nghiệp TP. Hồ Chí Minh vì đã hỗ trợ kinh phí để nhóm tác giả hoàn thành đề tài với mã số 182.QN01. TÀI LIỆU THAM KHẢO [1] Trimberger Stephen M (2015), "Three ages of FPGAs: a retrospective on the first thirty years of FPGA technology". Proc. IEEE, vol. 103, no. 3, pp. 318–331. [2] Xilinx "Partial Reconfiguration User Guide - UG702". [Online]. Available: 02.pdf. [3] Flasskamp Martin, Gregor Sievers, Johannes Ax, Christian Klarhorst, Thorsten Jungeblut, Wayne Kelly, Michael Thies, and Mario Porrmann (2016), "Performance estimation of streaming applications for hierarchical MPSoCs", in Proceedings of the 2016 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools, p. 3. [4] Hsiao Pei-Yung, Shih-Yu Lin, and Shih-Shinh Huang (2015), "An FPGA based human detection system with embedded platform". Microelectron. Eng., vol. 138, pp. 42–46. [5] Kim Dong-Jin, Yeon-Jeong Ju, and Young-Seak Park (2015), "An Implementation of SoC FPGA-based Real-time Object Recognition and Tracking System". IEMEK J. Embed. Syst. Appl., vol. 10, no. 6, pp. 363–372. [6] Luo Junwen, Graeme Coapes, Terrence Mak, Tadashi Yamazaki, Chung Tin, and Patrick Degenaar (2016), "Real-Time Simulation of Passage-of- Time Encoding in Cerebellum Using a Scalable FPGA-Based System". IEEE Trans. Biomed. Circuits Syst., vol. 10, no. 3, pp. 742–753. [7] Le Van Thanh Vu and Xuan Tu Tran (2014), "High-Level Modeling and Simulation of a Novel Reconfigurable Network-on- Chip Router". REV J. Electron. Commun., pp. 68–74. [8] Nguyen Hung K and Xuan-Tu Tran (2016), "Design and implementation of a hybrid switching router for the reconfigurable Network-on-Chip", in Advanced Technologies for Communications (ATC), 2016 International Conference on, pp. 328–333. [9] Nguyễn Văn Cường, Trần Thanh, Phạm Ngọc Nam (2015), “Xây dựng mô hình cấu hình lại từng phần động cho mạng trên chip trên FPGA”, Tạp chí Khoa học và Công nghệ Đại học Đà Nẵng, số 11(96).2015, quyển 1, trang 91-95. [10] Xilinx "LogiCORE IP AXI HWICAP (v2.02.a)". [Online]. Available: wicap/v2_03_a/ds817_axi_hwicap.pdf. [11] Nguyen Van Cuong, Pham Ngoc Nam (2015), “A Deadlock free NoC Router Architecture with Irregular Virtual Channel”, Journal of Science and Technology, Vol. 53, No.2C, pp. 89-102. [12] Nguyen Van Cuong, Cao Ba Cuong, Pham Ngoc Nam (2015), “Design of a Low Latency Network Interface using Dual Buffer for Network on Chip”, in 2015 International Conference on Communications, Management and Telecommunications (ComManTel), Danang, Vietnam, pp. 205 – 209. (BBT nhận bài: 06/10/2018, hoàn tất thủ tục phản biện: 28/12/2018)
File đính kèm:
- phat_trien_nen_tang_phan_cung_cau_hinh_lai_duoc_da_loi_dua_t.pdf