CHƯƠNG 2 PHÁT TRIỂN NỀN TẢNG PHẦN CỨNG CẤU HÌNH LẠI ĐƯỢC
2.1. Thiết kế bộ định tuyến cho NoC
2.1.3. Kết quả và đánh giá
2.1.3.2. Kết quả mô phỏng
Tính chính xác và chức năng của bộ định tuyến sẽ được kiểm tra với các mô phỏng, bao gồm hai trường hợp: Mô phỏng RTL (Register Transfer Level) để kiểm tra chức năng cho bộ định tuyến, mô phỏng toàn mạng để đánh giá độ trễ và thông lượng. Trong trường hợp thứ nhất, kết quả mô phỏng quá trình truyền dữ liệu từ ngõ vào đến ngõ ra của bộ định tuyến sẽ được cung cấp. Trong trường hợp thứ hai, kết quả mô phỏng về giá trị độ trễ và thông lượng trung bình với kích thước mạng 3x3 được chỉ ra. Chi tiết mô phỏng được mô tả dưới đây:
Trường hợp thứ nhất, công cụ mô phỏng ISIM (ISE Simulator) được tích hợp sẵn trong bộ ISE 14.1 của hãng Xilinx được sử dụng. Để kiểm tra deadlock free, chức năng của bộ định tuyến, một vài kịch bản mô phỏng sẽ được thực hiện như sau:
Kịch bản 1: Dữ liệu được đưa đến một kênh ngõ vào bất kỳ và tuần tự chuyển đến các kênh ngõ ra còn lại. Để chứng minh cho kịch bản này, tác giả tiến hành truyền các gói tin vào kênh L đã được gán sẵn địa chỉ định tuyến đến các ngõ ra N, S, E và W. Kết quả mô phỏng cho thấy dữ liệu nhận được tại các kênh ngõ ra hoàn toàn đúng với dữ liệu đưa vào kênh L (Hình 2.10a).
a) Vào kênh L – Ra các kênh N, S, E và W
b) Vào tuần tự các kênh N, L, E và W – Ra kênh S
c) Vào đồng thời các kênh N và E – Ra kênh S
d) Vào đồng thời các kênh N, L, E và W – Ra kênh S Hình 2.10. Kết quả mô phỏng RTL cho các kịch bản
Kịch bản 2: Dữ liệu được đưa tuần tự đến 4 kênh ngõ vào và gửi đến cùng một kênh ngõ ra. Để kiểm tra kịch bản này, tác giả tiến hành gửi các gói tin vào các kênh N, E, W và L đã được gán sẵn địa chỉ định tuyến đến ngõ ra S. Kết quả mô phỏng cho thấy dữ liệu nhận được tại kênh ngõ ra đúng với dữ liệu đã được đưa vào các kênh ngõ vào (Hình 2.10b).
Kịch bản 3: Dữ liệu được đưa đồng thời đến 2 kênh ngõ vào và cùng gửi đến một kênh ngõ ra. Chọn kênh ngõ vào N và E; kênh S ngõ ra sau khi truyền dữ 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,
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
đế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.