Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 1

Trang 1

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 2

Trang 2

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 3

Trang 3

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 4

Trang 4

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 5

Trang 5

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 6

Trang 6

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 7

Trang 7

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 8

Trang 8

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 9

Trang 9

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 107 trang nguyenduy 02/07/2024 840
Bạn đang xem 10 trang mẫu của tài liệu "Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC", để 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: Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC

Luận án Nghiên cứu NoC cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng NoC
 liệu và so 
 sánh dữ liệu nhận với dữ liệu gửi ban đầu là phù hợp (Hình 2.10c). 
  Kịch bản 4: Dữ liệu được đưa đồng thời đến 4 kênh ngõ vào và cùng gửi đến một 
 kênh ngõ ra. Dữ liệu được bơm đồng thời đến 4 kênh ngõ vào là N, E, W và L gửi đến 
 kênh ngõ ra S. Dữ liệu nhận được tại kênh ngõ ra là đúng so với dữ liệu được đưa vào 
 các kênh ngõ vào N, E, W và L (Hình 2.10d). 
 Trường hợp thứ hai, độ trễ và thông lượng trung bình của mạng với kích thước 3x3 sử 
dụng bộ định tuyến chứa 1, 2, 4 kênh ảo và bộ định tuyến đã đề xuất sẽ được đánh giá và 
so sánh. Các thông số mô phỏng được thiết lập như Bảng 2.1 và sử dụng công cụ Noxim 
trong [27]. Kết quả mô phỏng về độ trễ và thông lượng trung bình như Hình 2.11 và Hình 
2.12. 
 Hình 2.11. Trễ trung bình toàn mạng Hình 2.12. Thông lượng trung bình toàn mạng 
 Hình 2.11 cho thấy trễ trung bình toàn mạng sử dụng kiến trúc bộ định tuyến của tác 
giả nhỏ hơn trễ trong NoC sử dụng bộ định tuyến 1 và 2 kênh ảo; trường hợp bộ định 
tuyến sử dụng 4 kênh ảo thì độ trễ chênh lệch rất nhỏ. Cụ thể, trong trường hợp lưu lượng 
đưa vào mạng nhỏ ứng với tốc độ bơm flit vào mạng có giá trị 0,05 flits/cycle/node thì 
trễ trong các trường hợp là như nhau. Nếu tiếp tục tăng lưu lượng đưa vào mạng bằng 
cách tăng tốc độ bơm flit vào mạng thì độ trễ cũng dần tăng lên. Trường hợp 1 và 2 kênh 
ảo tăng rất nhanh bởi vì kênh ảo không đáp ứng được lưu lượng tăng, ngược lại độ trễ 
trong thiết kế của tác giả tăng chậm và gần như tiệm cận với trường hợp sử dụng 4 kênh 
ảo. Trễ bão hòa đạt được khi tốc độ bơm flit vào mạng lần lượt tại các giá trị 0,16, 0,20, 
0,24 và 0,235 flits/cycle/node tương ứng với mạng sử dụng bộ định tuyến chứa 1, 2, 4 
kênh ảo và thiết kế của tác giả. 
 Hình 2.12 chỉ ra thông lượng trung bình toàn mạng trong các trường hợp sử dụng bộ 
định tuyến 1, 2, 4 kênh ảo và bộ định tuyến của tác giả. Thông lượng tăng dần khi tốc độ 
bơm flit vào mạng tăng, đến khi tốc độ bơm flit vào mạng đạt đến các giá trị 0,18, 0,23, 
 39 
0,27 và 0,26 flits/cycle/node thì thông lượng cũng đạt đến giá trị bão hòa tương ứng cho 
các trường hợp sử dụng 1, 2, 4 kênh ảo và của tác giả. Dễ thấy thông lượng trong mạng sử 
dụng bộ định tuyến có chứa số lượng kênh ảo lớn là lớn hơn. So với trường hợp bộ định 
tuyến sử dụng 2 kênh ảo, thiết kế của tác giả cải thiện hiệu năng lên đến 13,1%. Tuy 
nhiên, so với trường hợp 4 kênh ảo thì thông lượng trong thiết kế của tác giả chỉ giảm 
khoảng 2,22%. 
 Tóm lại, NoC sử dụng kiến trúc bộ định tuyến do tác giả đề xuất là không tắc nghẽn, 
có độ trễ nhỏ và thông lượng cao hơn so với các trường hợp NoC sử dụng bộ định tuyến 
chứa 1, 2 kênh ảo; đối với trường hợp 4 kênh ảo, mức chênh lệch các thông số này là rất 
nhỏ. 
 Bảng 2.3. Một vài so sánh tham khảo với kiến trúc bộ định tuyến đã đề xuất 
 Thông số/Công trình [57] [82] [71] Tác giả 
 Công nghệ Stratix III Virtex-2 Virtex-5 Virtex-6 
 Độ rộng dữ liệu (bit) 32 32 16 32 
 Register N/A N/A 389 1399 
 LUT 1580 1455 1480 1274 
 Fmax (MHz) N/A 150 166 426,6 
 Cấu hình mạng Mesh Mesh Mesh Mesh 
 Bảng 2.3 chỉ ra một số so sánh tham khảo về các thông số như tài nguyên sử dụng, tốc 
độ hoạt động giữa kiến trúc bộ định tuyến do tác giả đề xuất và các kiến trúc do các tác 
giả khác đã được công bố (Lưu ý trong cột 3 của Bảng 2.3, tài nguyên sử dụng của một 
vài bộ định tuyến được ước lượng từ tổng tài nguyên của mạng). Mỗi đề xuất được thực 
hiện trên các công nghệ FPGA khác nhau. Do đó, rất khó để so sánh trực tiếp với nhau. 
Tuy nhiên, kết quả so sánh vẫn mang lại cho chúng ta những thông tin để tham khảo. Đề 
xuất của tác giả sử dụng tài nguyên bé hơn khi so sánh với các thiết kế trong [57, 82]. 
Trong [82] các tác giả thực hiện bộ định tuyến dựa trên cấu trúc lưới hai chiều trên FPGA 
Virtex-2, tần số hoạt động trong trường hợp này chỉ đạt 150 Mhz trong khi thiết kế của tác 
giả có thể đạt đến 426,6 Mhz. Tương tự, trong [71], kiến trúc bộ định tuyến được thực 
hiện trên FPGA Virtex-5 với độ rộng dữ liệu chỉ là 16 bit. Kết quả tổng hợp cho thấy rằng 
nghiên cứu này sử dụng tài nguyên LUT lớn hơn và tần số hoạt động nhỏ hơn so với thiết 
kế của tác giả. 
 Trong mục này, một kiến trúc bộ định tuyến mới với số lượng kênh ảo không đều trên 
cổng đã được trình bày. Kết quả tổng hợp và mô phỏng cho thấy rằng kiến trúc bộ định 
tuyến đã đề xuất tránh được tắc nghẽn và cắt giảm tài nguyên phần cứng trung bình lên 
 40 
đến 23,5% so với bộ định tuyến sử dụng 4 kênh ảo, tần số làm việc lớn nhất có thể đạt đến 
426,6 Mhz. Trễ và thông lượng trong mạng cũng được cải thiện. Kết quả đạt được là rất 
quan trọng, nó sẽ là cơ sở cho việc tích hợp nhiều thành phần của NoC vào FPGA. 
2.2. Thiết kế bộ giao tiếp mạng cho NoC 
2.2.1. Giới thiệu 
 Bộ giao tiếp mạng là khối logic rất quan trọng trong cấu trúc của NoC. Chức năng của 
nó tương tự như chức năng của card mạng kết nối giữa máy tính và mạng Internet [36, 45] 
tức là thực hiện kết nối tài nguyên vào mạng tại các vị trí giao diện dữ liệu vào ra của bộ 
định tuyến [64]. Do sự khác biệt về kích thước dữ liệu, giao diện tín hiệu điều khiển của 
các tài nguyên với mạng nên bộ giao tiếp mạng có thể thay đổi tùy theo tài nguyên được 
kết nối với mạng. Bộ giao tiếp mạng có thể chia ra làm hai phần như sau: Phần thứ nhất là 
phần giao tiếp với bộ định tuyến được xem như phần không phụ thuộc vì dữ liệu vào bộ 
định tuyến là các flit có kích thước dữ liệu cố định theo thiết kế. Phần thứ hai là phần giao 
tiếp với tài nguyên, tùy thuộc vào loại tài nguyên mà kích thước dữ liệu có thể thay đổi. 
Vì vậy phần này được gọi là phần phụ thuộc. 
 Có nhiều công trình nghiên cứu về kiến trúc của bộ giao tiếp mạng. Trong [76], các 
tác giả giới thiệu một kiến trúc của bộ giao tiếp mạng cơ bản cho NoC. Tuy nhiên, hạn 
chế của nghiên cứu này là trễ cao. Các tác giả trong [15] trình bày một bộ giao tiếp mạng 
sử dụng kỹ thuật tắt xung đồng hồ cho các khối không hoạt động để cắt giảm năng lượng 
tiêu thụ. Các tác giả trong [5, 29] sử dụng một kỹ thuật chia sẻ bộ giao tiếp trong mạng để 
tối ưu diện tích cho NoC. Trong [47], các tác giả sử dụng mã Gray trong thiết kế NI để 
giảm trễ. Các tác giả trong [23] đề xuất một bộ giao tiếp mạng tương thích với các lõi IP 
chuẩn AXI đang tồn tại. Bộ giao tiếp này cải thiện trễ trong truy xuất bộ nhớ với cơ chế 
ghi các gói tin. 
 Để có thể thực hiện một NoC hoàn chỉnh, trong mục này, tác giả đề xuất một kiến 
trúc mới cho bộ giao tiếp mạng tương thích với NoC dạng lưới đã được giới thiệu trong 
Mục 2.1 bằng cách sử dụng kỹ thuật xử lý song song trong quá trình ghi/đọc dữ liệu 
vào/ra các bộ đệm từ tài nguyên đến bộ định tuyến hoặc ngược lại góp phần vào giảm trễ 
và tăng hiệu năng cho toàn mạng. 
2.2.2. Phương pháp tiếp cận 
 Hầu hết các bộ giao tiếp mạng hiện có sử dụng một bộ đệm đơn để lưu trữ dữ liệu tạm 
thời khi dữ liệu được truyền từ tài nguyên đến bộ định tuyến và ngược lại. Bởi vì ghi/đọc 
dữ liệu vào/ra một bộ đệm đơn không thể xảy ra đồng thời, được minh họa như Hình 2.13, 
do vậy độ trễ trong bộ giao tiếp mạng có thể tăng cao. Để khắc phục nhược điểm này, ý 
tưởng của tác giả là cho phép ghi/đọc dữ liệu vào/ra bộ đệm một cách đồng thời bằng cách 
chia một bộ đệm FIFO đơn với độ sâu K bit thành hai bộ đệm FIFO với độ sâu K/2 bit. 
 41 
Hai bộ đệm được nối song song để ghi/đọc dữ liệu vào/ra chúng tại cùng một thời điểm 
như Hình 2.14. Ý tưởng này sẽ được chứng minh bằng lý thuyết để thấy rõ cách tiếp cận 
đã đề xuất có thể cắt giảm trễ cho bộ giao tiếp mạng là đáng kể. 
 Packet1 Packet2 Packet3 ... PacketM
 FiFo
 WR_PK1 RD_PK1 WR_PK2 RD_PK2 WR_PK3 RD_PK3 ... WR_PKM RD_PKM
 2MxN clock cycles
 Hình 2.13. Quá trình ghi/đọc dữ liệu vào/ra bộ đệm đơn 
 FiFo1
 FiFo2
 WR_PK01 RD_PK01 WR_PK23 RD_PK23 ...
 WR_PK12 RD_PK12 WR_PK34 RD_PK34 ... WR_PKM RD_PKM
 (MxN + 1) clock cycles
 Hình 2.14. Quá trình ghi/đọc dữ liệu vào/ra bộ đệm kép 
 Giả sử rằng chúng ta muốn truyền M gói tin từ tài nguyên đến bộ định tuyến hoặc 
ngược lại. Thời gian truyền mỗi gói tin mất N chu kỳ đồng hồ. Như vậy, trễ của NI trong 
trường hợp sử dụng bộ đệm đơn và bộ đệm kép có thể được tính như sau: 
 Trễ trong trường hợp sử dụng bộ đệm đơn sẽ là: 
 2*MN * (chu kỳ) (2.1) 
 Trễ trong trường hợp sử dụng bộ đệm kép sẽ là: 
 MN*1 (chu kỳ) (2.2) 
 Do đó, trễ có thể được cắt giảm: 
 (2**)(*MNMNMN 1) * 1 (chu kỳ) (2.3) 
 42 
 Công thức (2.3) cho thấy khi sử dụng bộ đệm kép thì trễ sẽ được cắt giảm (M*N-1) 
chu kỳ so với trường hợp sử dụng bộ đệm đơn. 
2.2.3. Đề xuất kiến trúc bộ giao tiếp mạng 
 Kiến trúc NI
 32 bits 32 bits
 FIFO A
 wr_en_FFA empty_FFA full_FFA full_FFA empty_FFA rd_en_FFA
 release_FFA release_FFA
 Core_data release_FFB release_FFB A/B_select r Data_router
 e
 pkt_size Flit_type
 z
 32 bits C2R_WRITE_CTRL C2R_READ_CTRL i 34 bits
 l
 i
 t
 i
 state_FFA state_FFA l
 core_req req_router
 core_req state_FFB state_FFB req_router F
 ack_core router_ack
 ack_core wr_en_FFB empty_FFB full_FFB full_FFB empty_FFB rd_en_FFB router_ack
 32 bits 32 bits
 FIFO B
 32 bits 32 bits
 FIFO A
 rd_en_FFA empty_FFA full_FFA full_FFA empty_FFA wr_en_FFA
 release_FFA release_FFA pkt_size
 r
 Data_core release_FFB release_FFB e Router_Data
 z
 A/B_select flit_en
 i
 32 bits x
 l 34 bits
 i
 u
 R2C_READ_CTRL R2C_WRITE_CTRL
 t
 i
 l
 M
 f
 core_ack state_FFA state_FFA - ack_router
 Core_ack state_FFB state_FFB ack_router e
 req_core router_req D
 req_core rd_en_FFB empty_FFB full_FFB full_FFB empty_FFB wr_en_FFB router_req
 32 bits 32 bits
 FIFO B
 Hình 2.15. Kiến trúc tổng quát của bộ giao tiếp mạng 
 Kiến trúc bộ giao tiếp mạng được đề xuất dựa trên ý tưởng như Mục 2.2.2 với các 
thông số thiết kế NoC đã được lựa chọn trong Mục 2.1 như cấu trúc lưới hai chiều, kỹ 
thuật chuyển mạch gói, cơ chế điều khiển luồng wormhole kết hợp với kênh ảo, thuật toán 
định tuyến XY. 
 Kiến trúc của bộ giao tiếp mạng được đề xuất như Hình 2.15, bao gồm các khối chính 
sau: Các bộ đệm FIFO A và B; các bộ điều khiển ghi/đọc dữ liệu vào/ra WRITE_CTRL và 
READ_CTRL; các bộ ghép/tách flit Flitilizer/De-Flitilizer mỗi khối sẽ thực hiện một chức 
năng riêng. Nguyên lý làm việc của các khối trong bộ giao tiếp mạng được diễn ra như 
sau: 
 43 
 FIFO A và B là các bộ đệm FIFO được sử dụng để lưu trữ các gói tin. Mỗi bộ đệm có 
độ sâu 8 bit (8 ô nhớ) và độ rộng 32 bit vì mỗi flit bao gồm 32 bit dữ liệu và 02 bit nhận 
dạng loại flit. Bằng cách sử dụng hai FIFO, chúng ta có thể ghi và đọc dữ liệu vào/ra 
FIFO cùng một lúc. Khi một trong những FIFO được nạp đầy dữ liệu, dữ liệu sẽ được đọc 
ra từ FIFO này bởi khối READ_CTRL và đẩy đến bộ định tuyến hoặc tài nguyên. Tại cùng 
thời gian này, FIFO còn lại có thể được sử dụng để ghi dữ liệu mới đến từ tài nguyên hoặc 
bộ định tuyến. Các bộ đệm FIFO được thiết kế theo tiêu chuẩn vào trước ra trước với các 
tín hiệu cho phép ghi/đọc, các tín hiệu chỉ thị đầy/trống và độ rộng dữ liệu vào/ra 32 bit. 
Trong thời gian hoạt động, ưu tiên ghi/đọc giữa các FIFO là bình đẳng. Ngoài ra, một 
FIFO chỉ thực hiện một hoạt động tại một thời điểm nhất định (ví dụ hoạt động ghi hoặc 
đọc). 
 WRITE_CTRL và READ_CTRL là khối điều khiển ghi/đọc dữ liệu vào/ra các FIFO A 
và B. Khi FIFO nhận được tín hiệu req_in từ tài nguyên, khối WRITE_CTRL bắt đầu ghi 
flit tiêu đề vào FIFO trống. Nếu không có FIFO trống thì sẽ không có truyền dữ liệu xảy 
ra. Sau khi truyền, số packet_size được đọc ra từ flit tiêu đề để xác định chế độ ghi/đọc 
vào các FIFO. Có hai trường hợp thực hiện hoạt động ghi: Trường hợp (packet_size <= 8) 
và (8 <packet_size <= 16). Trong trường hợp thứ nhất, khối WRITE_CTRL sẽ điều khiển 
ghi tất cả các flit của gói tin vào một FIFO trước khi giải phóng nó để đi vào hoạt động 
đọc. Trường hợp thứ hai, cả hai FIFO A và B được sử dụng để lưu trữ các gói tin. Khi một 
FIFO đầy, tín hiệu release của nó được thiết lập. Đồng thời, khối WRITE_CTRL cũng 
chuyển các flit còn lại của gói tin vào FIFO còn lại trước khi thiết lập tín hiệu release lên 
mức cao. Khối READ_CTRL sẽ điều khiển đọc các flit từ FIFO A và B theo thứ tự chính 
xác dựa trên các tín hiệu release từ hoạt động ghi. Một FIFO trong chế độ đọc sẽ gửi một 
tín hiệu indicator trở lại đến bộ điều khiển ghi để tránh ghi đè lên các dữ liệu hiện hành. 
Các tín hiệu indicator sẽ bị xóa tự động khi một FIFO đọc xong tất cả các flit bên trong 
nó. Các khối điều khiển ghi/đọc WRITE_CTRL và READ_CTRL từ bộ định tuyến đến tài 
nguyên hoạt động tương tự như khối điều khiển ghi/đọc từ tài nguyên đến bộ định tuyến. 
Các quá trình truyền dữ liệu giữa tài nguyên và bộ định tuyến hoạt động theo cơ chế bắt 
tay req/ack. 
 Các khối Flitilizer và De-Flitilizer được sử dụng để ghép và tách các bit nhận dạng 
loại flit (02 bit). Các bit nhận dạng loại flit này được tạo ra bởi khối READ_CTRL theo 
chiều từ tài nguyên đến bộ định tuyến (C2R: Core to Router) và được Flitilizer ghép vào 
để tạo ra flit 34 bit chuyển đến bộ định tuyến. Ngược lại, De-Flitilizer thực hiện tách 02 
bit nhận dạng loại flit của các flit được truyền từ bộ định tuyến đến tài nguyên (R2C: 
Router to Core) để tạo ra các gói tin 32 bit chuyển đến tài nguyên. 
 44 
2.2.4. Kết quả và đánh giá 
 Bộ giao tiếp mạng đã đề xuất được mô hình hóa bằng ngôn ngữ Verilog, tổng hợp và 
mô phỏng bằng ISE 14.1 trên FPGA Virtex-6 chip 6VLX240TFF156. Các thông số như 
tài nguyên sử dụng, độ trễ, tốc độ hoạt động của NI đã đề xuất sẽ được phân tích và đánh 
giá. Bảng 2.4 thống kê tài nguyên sử dụng của NI với trường hợp sử dụng bộ đệm đơn và 
bộ đệm kép. NI sử dụng bộ đệm đơn mất khoảng 0,07% tài nguyên Register và 0,12% tài 
nguyên LUT so với tổng tài nguyên sẵn có của FPGA, trong khi với phiên bản NI sử dụng 
bộ đệm kép mất khoảng 0,08% tài nguyên Register và 0,24% tài nguyên LUT. Dễ thấy tài 
nguyên sử dụng của phiên bản bộ đệm kép tăng so với phiên bản sử dụng bộ đệm đơn, 
điều này có thể lý giải như sau: Xét về kích thước bộ đệm, gần như hai phiên bản là giống 
nhau vì bộ đệm kép được tách đôi từ bộ đệm đơn như đã trình bày trong Mục 2.2.2. Tuy 
nhiên, xét về mặt phức tạp của bộ điều khiển quá trình ghi/đọc trong phiên bản dùng bộ 
đệm đơn và bộ đệm kép thì phiên bản sử dụng bộ đệm kép có độ phức tạp lớn hơn. Đó 
cũng là nguyên nhân làm tăng tài nguyên của NI sử dụng bộ đệm kép. 
 Bảng 2.4. Kết quả tổng hợp trên FPGA 
 Tổng hợp sử dụng tài nguyên 
 NI - 1 FIFO Tác giả 
 Logic 
 Sẵn có Đã sử Đã sử 
 Utilization % % 
 dụng dụng 
 Slice 
 301440 202 0,07 227 0,08 
 Registers 
 Slice LUTs 150720 186 0,12 361 0,24 
 IOBs 600 147 24,5 147 24,5 
 Kết quả tổng hợp cũng cho thấy rằng tốc độ hoạt động của NI do tác giả đề xuất lớn 
hơn so với tốc độ hoạt động của NI sử dụng bộ đệm đơn và trong nghiên cứu [4]. Nó được 
thể hiện như trong Bảng 2.5. 
 Bảng 2.5. Tốc độ hoạt động của các bộ giao tiếp mạng 
 NI-1 [4] 
 Các nghiên cứu Tác giả 
 FIFO MNI SNI 
 Tốc độ (Mhz) 302 310 252 397 
 Tiếp theo, chức năng của NI đã đề xuất sẽ được kiểm tra thông qua mô phỏng RTL 
bằng cách sử dụng một lõi giả (dummy core) và bộ định tuyến. Lõi giả có chức năng tạo 
ra các gói tin ngẫu nhiên và tiến hành truyền/nhận gói tin đi/đến từ NI. Bộ định tuyến có 
chức năng nhận và truyền dữ liệu đến lõi giả thông qua NI theo cơ chế bắt tay req/ack. 
Kết quả truyền/nhận dữ liệu từ C2R và ngược lại từ R2C là chính xác. Hoạt động ghi/đọc 
dữ liệu vào/ra bộ đệm song song đã diễn ra. Điều này được thấy rõ trong biểu đồ thời gian 
 45 
truyền thông giữa tài nguyên và bộ định tuyến như Hình 2.16. Kết quả mô phỏng cũng 
cho thấy rằng độ trễ truyền/nhận gói tin trung bình trong bộ giao tiếp mạng của tác giả đề 
xuất (94 chu kỳ đồng hồ) nhỏ hơn so với trễ truyền/nhận gói tin trung bình trong NI sử 
dụng bộ đệm đơn (126 chu kỳ đồng hồ). 
 Hình 2.16. Biểu đồ thời gian truyền các gói tin từ tài nguyên đến bộ định tuyến 
 Trong mục này, tác giả đã trình bày một kiến trúc mới cho bộ giao tiếp mạng trong 
NoC bằng ý tưởng ghi/đọc dữ liệu vào/ra bộ đệm một cách đồng thời. Các kết quả tổng 
hợp và mô phỏng cho thấy rằng thiết kế đã đề xuất có trễ thấp hơn và tốc độ hoạt động 
cao hơn so với cách tiếp cận sử dụng bộ đệm đơn. 
2.3. Phát triển nền tảng phần cứng cấu hình lại từng phần động 
2.3.1. Giới thiệu 
 Các hệ thống nhúng thường được thiết kế để triển khai nhiều ứng dụng với chất lượng 
dịch vụ và các yêu cầu xử lý khác nhau. 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 [89, 97]. 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 [30, 38, 
48, 58]. 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. Trong khuôn khổ của luận án này, tác giả tập trung vào phát 
triển một nền tảng phần cứng đa lõi cấu hình lại được 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 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 
 46 
hình lại cơ sở hạ tầng truyền thông một cách linh hoạt để 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 có thể điều chỉnh mức chất lượng lên nền tảng. 
 Vùng tĩnh Vùng cấu hình lại được
 Bus Macro
 MicroBlaze/
 ARM
 ICAP
 DDR3
 UART
 FPGA
 Hình 2.17. Mô hình kiến trúc cấu hình trên FPGA 
 Để 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 là 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ấu hình lại cơ bản mà hệ thống có thể được phát triển. Các 
thiết lập của 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 như 
Hình 2.17. Tất cả các thành phần của hệ thống mà không cần phải thay đổi tại thời gian 
chạy được đặt bên trong khu vực tĩnh của thiết bị. Trong khi các chức năng có thể tự động 
cấu hình lại tại thời gian chạy phải được đặt trong khu vực cấu hình (khu vực động) [97]. 
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 phải 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 trên FPGA dựa trên mô hình 
NoC chúng ta cần xem xét lựa chọn các giải pháp phù hợp với các mục tiêu thiết kế đề ra. 
Giải pháp đầu tiên có thể xem xét đó là 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 bộ định tuyến hoặc các thành phần trong bộ định tuyến như bộ 
đệm, chuyển mạch, bộ phân xử, v.v. hoặc cấu hình cả cấu hình mạng để tối ưu kiến trúc 
truyền thông, trong khi duy trì cố định vị trí của các PE (lõi tính toán). 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

File đính kèm:

  • pdfluan_an_nghien_cuu_noc_cau_hinh_lai_duoc_tren_fpga_va_phat_t.pdf
  • pdf2.Tom tat luan an_NCS Cuong.pdf
  • pdf3.Trich yeu luan an_Cuong.pdf
  • pdf4.Thong tin tom tat luan an dua len mang tieng Viet_Anh_Cuong.pdf