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...
5 trang |
Chia sẻ: quangot475 | Lượt xem: 399 | Lượt tải: 0
Bạn đang xem 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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trê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 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)
Các file đính kèm theo tài liệu này:
- pdffull_2019m05d09_10_12_31_8629_2134888.pdf