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.

pdf 5 trang yennguyen 5360
Bạn đang xem 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

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

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:

  • pdfphat_trien_nen_tang_phan_cung_cau_hinh_lai_duoc_da_loi_dua_t.pdf