Trong đó, mục đích của thiết kế này đề xuất mô hình cơ bản cho các dé tài nghiên cứu liên quan đến Network On Chip, nhóm dựa trên giao thức TCP/IP dé truyền gói tin thông qua hệ thống NO
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN VAN PHUOC NGUYEN DUY THINH
KHOA LUAN TOT NGHIEP
HIEN THUC MANG TREN CHIP DU'A TREN THUAT TOAN XY VA GIAO THUC BAT TAY TREN FPGA
IMPLEMENT NETWORK ON CHIP BASE ON XY ROUTING
ALGORITHM AND HANDSHAKING PROTOCOL ON FPGA
KY SU NGANH KY THUAT MAY TÍNH
TP HO CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN VAN PHƯỚC - 18521263
NGUYEN DUY THỊNH - 18521443
KHOA LUAN TOT NGHIEP
HIỆN THỰC MẠNG TREN CHIP DỰA TREN THUAT
TOAN XY VA GIAO THUC BAT TAY TREN FPGA
IMPLEMENT NETWORK ON CHIP BASE ON XY ROUTING
ALGORITHM AND HANDSHAKING PROTOCOL ON FPGA
KY SƯ NGÀNH KỸ THUAT MAY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
ThS Trương Văn Cương
ThS Hồ Ngọc Diễm
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
528/QD-DHCNTT ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Đầu tiên, em muốn cám ơn các quý thầy, cô và các giảng viên đã và đang giảng dạy tại trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí
Minh đã góp công xây dựng trường của chúng ta ngày hôm nay.
Trong quá trình học tập và rèn luyện tại trường, chúng em nhận được sự chỉ bảo tận
tình, nhận được những kiến thức, kinh nghiệm quý báu của các thầy cô, từ đó giúp chúng em có được những kiến thức chuyên môn, sâu rộng như ngày hôm nay Ngoài ra, chúng em còn được trang bị những kĩ năng mềm trong quá trình theo học tại trường, những điều đó giúp chúng em có thê vững bước trong cuộc sống và
trong tương lai.
Tiếp theo, nhóm em xin cám ơn các thầy cô thuộc Khoa Kỹ Thuật Máy Tính đã giúp đỡ bọn em trong những lúc khó khăn về học vụ, đăng ký học phan và hỗ trợ hết mình để nhóm em có thể mượn thiết bị trong lúc làm khóa luận.
Để hoàn thành khóa luận này, nhóm em xin được cám ơn thầy Trương Văn Cương,
cô Hồ Ngọc Diễm đã tận tình hướng dẫn tụi em thực hiện khóa luận và thầy Trần Đại Dương là người đã truyền cảm hứng và khởi đầu của đề tài này cũng như anh
Lê Vũ Trùng Dương — Cựu sinh viên đã giúp đỡ chúng em bổ sung những kiến thức cần thiết cho khóa luận.
Sau cùng, chúng em muốn gửi lời cảm ơn đến gia đình và bạn bè đã luôn là hậu phương vững chắc, là chỗ dựa tỉnh thần giúp chúng em có thể hoàn thành khóa
luận.
Thành phố Hỗ Chí Minh, tháng 6 năm 2022
Sinh viên thực hiện
Nguyễn Duy Thịnh Nguyễn Văn Phước
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU TONG QUAN DE TÀI -¿-©2+ 1
lẻ ẽ.ẽ.ẽ 1 1.2 Hướng nghiên cứu để tài .-¿:©2222+222E+++t2EEEEvtEEEEvrrtrrkkrrrrrrkrcree 2 1.3 Mục tiêu để tài ccvtnhnhhHHHHHhhhhh Hee 2
Chương 2 CO SỞ LÝ THUYÉT -2+2225+z+vttvvvvrerrrrsree 3
2.1 Network On Chịp
2.2 Topology — Cấu trúc liên KGt ceccccssccsssssssessssssesssssssesscsssesssssseessessseesesssseesensee 4 2.3 Kỹ thuật chuyển mach Q6i cccccccsssssesssssssessssssesesssseesscsssessessseessessseeeeesseeesessee 5 2.4 Thuật toán định tuy6m cccccccccscscsssssesssssssessssseesesssseesessssessssssecssssssesseesseeeeessee 7 2.5 Thành phần của NoC -:+¿222V22+++++t+222EEE++vrrrttttrrrvrrrrrrrrrrres §
Chương 3 THIET KE TONG QUAN
3.1 Mô ta tổng quan hé HOt ae Le 0 3.2 Quy trình thiết kế hệ thống -+++222EEvvv++rrtttrvrrvvrrrrrrrrrr 0
Chương 4 THIẾT KE CHITIẾT -¿52¿+22+zz++czz+z 12
4.1 Khối Input POrt -222c+222222E2S2+rtttEEEEEEEErrrrrttrrrkkrrrrrrrrrrrvev 2 ALA Sơ đồ tổng quát ccccc+2c2ccvvverrrrrrrrrrvrrrrerrrrer 2 4.1.2 _ Thiết kế chỉ tiết -72ccccccsEEEEkrtrerirtrrrrrrrrrrrrrrrrer 3 4.2 Khối Check 222222 r2 E22 riee 4 4.3 Khối Virtual AlloCatOr -cc¿:¿¿22222222+++222222EEEE+tttEEEEEkrrrrrrrrrrrrrree 5 4.4 Khối Virtual Channel .¿:¿-2222VV222++22222EEEEEvrtttEEEEkvrrrrrrrrrrrrree 5 44.1 So dé tông quát
4.4.2 Thiết kế chỉ tiết c - 2222k 7 4.5 Khối Routing Compution -++222VE22vv++rttttvvrvvrrrrrrrrrrrrser 8
Trang 64.5.1 Sơ đồ khối tổng quát -:c+222++rttccvvrrrrrrrrrrerrrrrrrrrr 18 4.5.2 Thiết kế chỉ tiết .-:c222+ct222vEtttEEEvrrrrrrrrrrerrkrrrrrer 20 4.6 Khối Switch AllOCatOr :-2222++2222+++tEEESE+t2EEEEEEtEEEEkrrerrrkrrrerrree 20 4.7 Khối Crossbar -:-22222222222212221112222111121211111221111 2211 cerrre 21 4.7.1 Sơ đồ khối tổng quát .¿-+2222++te2cvkrrerrrkrrerrrrerrrr 21 4.7.2 Thiết kế chỉ tiết 5222222ccctCEEEErvrrrrrrrrrrrrrrrrrrrrre 23 4.8 Khối Output POrt -222222:+22222222E2+ztrtEEEEEEErrrrrrrrrrrtrrrrrrrrrrrrrvee 24 4.9 Khối Network Interface
4.10 Mô hình Switch và NOC 3x3 ccccccceterrrrrrierrrrrrrrrrrrrree 27 4.10.1 Mô hình Swi(Ch cc-ccSccssrerrrrirrrrrrrrrrrrrrrrrrrrerree 27
4.10.2 M6 hình NOC 3x3 c 2c cưới 28
Chương 5 HIỆN THỰC THIẾT KE, MÔ PHONG VA NAP UNG DỤNG
CUA THIET KE VÀO FPGA 22seevvrrtrrirrrirerrrrree 29
5.1 Mô phỏng Network interface va các thành phan của Switch 29
5.1.1 Mô phỏng Network interface (NÌ) các cSccscsceerree 29 5.1.2 Mô phỏng Virtual Address (VA)
5.1.3 Mô phỏng Virtual Channel (VC) -c-55555<<c+csc - OO 5.1.4 Mô phỏng Routing Compution (RC) - - eens 30 5.1.5 Mô phỏng Switch Allocator (SA) «cty 31
5.1.6 Mô phỏng Crossbar (CB) 5555 S+Sx+ccxexereererrrsee 32
5.1.7 Mô phỏng Input POrt 5-5-5525 S+St+xcxererrekerrreee 32
5.1.8 Mô phỏng Output POII - Street 33 5.1.9 Mô phỏng SwWi(CH Sàn HH ngư 33
5.2 Kịch bản kiểm tra thiết kế bằng mô phỏng trên Vivado „34
Trang 75.2.1 _ Kịch bản kiểm tra -cc:22222cSCcvvrrrerrkvrrrrrrrrrrrrrrrree 34 5.2.2 Mô phỏng trường hợp gửi | packet từ IP 01 đến IP 10 36
5.3 Giới thiệu FPGA Xilinx và mục đích sử dụng - - + ©<cxcxe 37
5.3.1 Giới thiệu FPGA Xilinx SE rêt 37
5.3.2 Mục đích sử dung kit FPGA Xilinx Virtex 7 -«-+ 39
5.4 Tổng hợp thiết kế trên Virtex 7 ccsccccsssssesssosssesesssssesessssseesssseeseessseeseessseeees 39 5.5 Hệ thống SOC kết nối [P 22¿-222222+2E22E2Et2E221111222112 E221 cerrkkv 40 5.6 So sánh kết quả thiết kế với các nghiên cứu liên quan
Chương 6 KÉT LUẬN VÀ HƯỚNG PHAT TRIEN CUA DE TÀI 45
Trang 8DANH MỤC HÌNH
Hình 2.1 Mô hình NoC 2D Mesh
Hình 2.2 Các mạng topology phô biến
Hinh 2.3 Flit Header T7 6 Hình 2.4 Flit Body va Tail ccccccsccssssssessscccsssssussesecessssnusesecesssssnssesescesssnseeseeeesssnens 6
Hình 2.5 Flit Handshake - - (6 2c E22 1321331331313 1918511 1 13 131 vn 6
Hình 2.6 Mô hình của một Switch 22¿¿222V22222++tEE2222112212222221112ee re §
Hình 3.1 Tổng quan thiết kế 0 Hình 3.2 Sơ đồ quy trình thiết kẾ -2222+++22222222v2rrrrtrtrrrrvrrrrrrrrrrrrrer 1 Hình 4.1 Sơ đồ khối của khối InputPort -¿¿©22+++22++z++2vz+eersrrxscee 2 Hình 4.2 Sơ đồ chỉ tiết của khối InputPOrt -¿:22+222v2z+22vvvzesrrvscee 3 Hình 4.3 Sơ đồ chỉ tiết của khối Check -222cccz222222vvvccrrrrrccrveer 4 Hình 4.4 Sơ đồ thuật toán của khối Check -22c+z+22222vvvzrrrrrrrrrrer 4 Hình 4.5 Sơ đồ thuật toán khối VA ¿ 222¿+222222+t222EEEtEEEEEErrrtrrkrrrrrrkrvee 5 Hình 4.6 Sơ đồ tổng quát khối VC ¿ 22+2++++22EE+++etEEvvrrtztrvrrrrrrrsree 6 Hình 4.7 Thiết kế chỉ tiết của WC -22222222z+2222222EYErrrrttrrrrkkrrrrrrrrrrrrrer 7 Hình 4.8 Sơ đồ tổng quát khối RC 2¿¿+2V++++2EEES+ttEEEEEerrtrrxerrrrrkrcee § Hình 4.9 Sơ đồ các node trong NOC 3x3 ¿:©2222+++22vvvzttevvvvrrsrrvsree 9 Hình 4.10 Sơ đồ thuật toán X - Y 2222:++22222222v2rrrretrEErkvrrrrrrrrrrrrrer 9 Hình 4.11 Thiết kế chỉ tiết của RC 2222222+22222vEvvrrrrtrrrrrkrrrrrrrrrrrrree 20 Hình 4.12 Sơ đồ giải thuật khối SA 22 2222222222222222EEtSEEEvrrerrrreecrrr 21 Hình 4.13 Sơ đồ tổng quát khối Crossbar -¿-22+222v+z++2vvvvrrsrrvscee 2 Hình 4.14 Thiết kế chỉ tiết khối Crossbar -22222c+z222222vvvrrrrrrrrrrrrer 24 Hình 4.15 Sơ đồ chỉ tiết khối Output Port 2¿-©2z++222++ztzvvzxzerrrrrseee 25 Hình 4.16 Sơ đồ khối của NI -22¿222E+2+t22E2++EE2EEEEEEEEESEEEEErrrrrrrrrrrr 26 Hình 4.17 Thiết kế chỉ tiết của Switch 28
Hình 4.18 Mô hình 2D-Mesh NoC 3x3 „28
Hình 5.1 Kết quả mô phỏng NI 29 Hình 5.2 Kết quả mô phỏng khối VA 30
Trang 95.12 Kết quả kiểm tra thiết kế dựa trên tiêu chí đánh giá khóa luận 35
5.13 Mô phỏng gói tin ( Ì) ¿6-5 + SE E11 1110121 gư 36 5.14 Mô phỏng gửi gói tin (2) ¿- 55-55 Scscsxsrersrerrsrrrrrrrr , DO
5.15 Kit FPGA Virtex 7 VC707 „37
5.16 Sơ đồ khối của kit VC707 „38 5.17 Thiết kế SOC cho Network On Chip 3x3 Al 5.18 Block Design của SoC đã tích hợp IP nhóm thiết kế „41 5.19 Mô phỏng Ram nhận đầu vào rồi truyền vào một Node „42 5.20 Kết quả khi chuyền gói thì packet sẽ đi vào Node 01 thành công 42 5.21 Dữ liệu đầu ra của Node 01 sẽ được lưu tại Ram đầu ra 42 5.22 Kết quả hiện thực phần cứng -2¿¿©22222ccSCEESrrrrrrterrrrrkrvee 43
Trang 10DANH MỤC BANG
Bảng 2.1 Mô tả các loại ẨÏi( 55522222 192222191 1311211211121 E1 re 6
Bảng 2.2 Mô tả chức năng các khối trong Switch ¿c©22sc+seccvscccccrx 9 Bảng 4.1 Mô tả tín hiệu của khối InputPOrt - 22:2£225zz+2222vzceecvsvcesrr 12 Bảng 4.2 Mô tả tín hiệu khối VC -522222tvvxktttrtrererrirrrrrrrrrrrrrrrrrrriie 16 Bang 4.3 Mô tả tín hiệu 30080 19 Bảng 4.4 Mô tả tín hiệu khối Crossbar 2222222222222v+ceevvvvrrerrvsrrerrr 22 Bảng 4.5 Mô tả tín hiệu khối Output POrt 2-©2+222++z++2222+zeverxxeeerrr 25 Bảng 4.6 Mô tả tín hiệu khối Network Interface
Bảng 5.1 Kết quả tổng hợp IP trên bộ Network on Chip do nhóm thiết kế 39 Bảng 5.2 Kết quả tổng hợp IP của nghiên cứu [ l] c:©25c++cc5scceez 40 Bảng 5.3 So sánh kết quả với các nghiên cứu liên quan -: z-2 44
Bảng 6.1 Đánh giá độ trễ của một fllit 222222E22222222222++z+ttttttttEtEEErrrrrrrre 45 Bang 6.2 Đánh giá độ trễ với 1 MB và GB dữ liệu - -:5ccc+ccccsrceez 46
Trang 11DANH MỤC TU VIET TAT
NoC Network on chip
VA Virtual Channel Allocator
Trang 12TÓM TÁT KHÓA LUẬN
Trong khóa luận này, nhóm dé xuất mô hình Network On Chip với kiến trúc Mesh 3x3 trên FPGA Trong đó, mục đích của thiết kế này đề xuất mô hình cơ bản cho các dé tài nghiên cứu liên quan đến Network On Chip, nhóm dựa trên giao thức TCP/IP dé truyền gói tin thông qua hệ thống NOC được liên kết với nhau qua các Switch theo kiến trúc 2D — Mesh với độ rộng của kiến trúc này là 3x3.
2D-Bên trong kiến trúc, nhóm xây dựng gồm 9 node (tức 9 Switch liên kết với nhau) với mỗi Switch sẽ gồm 4 cổng chính (dựa theo 4 hướng: North, East, South, West)
val cổng kết nối với IP (IP của nhóm sẽ là Ram để truyền nhận dữ liệu) Nhóm dựa
theo quá trình bắt tay trên giao thức TCP/IP và ứng dụng với NOC để thiết lập đường truyền trước khi gửi Sau khi đường truyền được thiết lập thì mới bắt đầu truyền dữ liệu Tan số tối đa mà thiết kế đạt được là 170MHz.
Kết quả sẽ được đánh giá theo hai tiêu chí:
e = Tinh chính xác của mô hình: Truyền đúng địa chỉ, trọn vẹn dữ liệu, giải
quyết tranh chấp.
e Tai nguyên phần cứng: Việc đánh giá các thông số này sẽ được thực hiện
trên các phân mêm của Xilinx.
Trang 13MỞ ĐẦU
Mô hình truyền thông trên chip phổ biến hiện nay được xây dựng dựa vào kết nối point-to-point, kiến trúc bus truyền thống (hoặc kiến trúc bus phân tầng) Với kiến trúc này, một bộ phân xử bus sẽ đóng vai trò cấp phát quyền truy cập bus cho các thành phần truyền thông nhằm các tránh xung đột trong quá trình trao đổi thông tin trên bus Kiến trúc truyền thông bus có một số hạn chế căn bản như: băng thông bị giới hạn, khả năng mở rộng kém Các hệ thống phức tạp đòi hỏi nhu cầu truyền thông cao, việc xây dựng một mô hình truyền thông mới và hiệu quả là hết sức cần thiết.
Vì vậy, nhóm đề xuất mô hình thiết kế và hiện thực mô hình Network on Chip — được đề xuất là một giải pháp toàn diện cho sự phát triển của hệ thống trên chip phức hợp trong xu thế thiết kế lấy truyền thông làm trung tâm Kiến trúc truyền thông mạng trên chip thực hiện các thao tác truyền thông bằng nguyên lý phân đoạn trên một cau trúc liên kết gồm nhiều bộ định tuyến Mô hình mạng trên chip cho phép người thiết kế tích hợp ngày càng nhiều lõi IP trong một hệ thống nhằm đáp
ứng yêu câu ngày càng cao của các ứng dụng.
Chính vì vậy, mục tiêu của khóa luận được đề ra là tổng hợp tài liệu liên quan và thiết kế mô hình mạng Network on Chip với kiến trúc 2D — Mesh 3x3 theo giao
thức TCP/IP, tự gửi gói tin theo thuật toán XY và hiện thực việc gửi gói tin sang các
node đề kiểm tra việc truyền nhận của mô hình.
Các phần tiếp theo của khóa luận sẽ được tổ chức nhau sau: Chương trình bày về tổng quan, tính cấp thiết của dé tài Chương 2 giới thiệu về cơ sở lý thuyết liên quan đến dé tài nghiên cứu Chương 3 đưa ra thiết kế tong quan của hệ thống, mô tả cách
hệ thống hoạt động Chương 4 sẽ đi sâu vào thiết kế chỉ tích từng khối Chương 5 cho biết quá trình hiện thực, kết quả mô phỏng, kết quả đánh giá hệ thống về hệ thống SoC cho ứng dụng NoC trên FPGA Chương 6 tổng kết, đưa ra hướng phát triển đề tài của khóa luận và danh mục các bài báo tham khảo của khóa luận.
II
Trang 14Chương 1 GIỚI THIỆU TONG QUAN DE TÀI
1.1 Đặt vấn đề
Hệ thống trên chip, hay hệ thống SoC, tiếng Anh: System-on-Chip, viết tắt là SoC hay SOC) là một vi mạch (IC) được tích hợp các thành phần của một máy tính hoặc các hệ thống điện tử khác Hệ thống SoC có thể bao gồm các khối chức năng kĩ thuật số (digital), tương tự (analog), tín hiệu kết hợp (mixed - signal) và cả các khối tần số radio (RF) SoC xuất hiện trong điện thoại di động - một thiết bị điện tử tiêu tốn it năng lượng Ứng dụng điển hình của các hệ thống SoC là các hệ thống nhúng Một hệ thống máy tính điển hình bao gồm một loạt các mạch tích hợp cho phép thực hiện các nhiệm vụ khác nhau Các mạch tích hợp này có thể là:
e Bộ vi xử ly (Microprocessor)
e Bo nhớ (RAM, ROM)
¢ Khối truyền thông nối tiếp UART
¢ _ Các cổng song song (parallel port)
e_ Khối điều khiển truy xuất bộ nhớ trực tiếp (DMA controller)
SoC tích hợp một vi điều khiển (hoặc một vi xử lí) với những ngoại vi như các bộ
xử lí đồ họa (GPU: Graphics Processing Unit), module WiFi, hoặc bộ đồng xử lí (co-processor) Sự phát triển gần đây của công nghệ bán dẫn cho phép chúng ta tích hợp ngày càng nhiều thành phần vào một hệ thống trên một vi mach SoC có thé tích hợp thêm các khối như: bộ xử lý tín hiệu số, bộ mã hóa, giải mã Viterbi, Turbo tùy theo yêu cầu của từng ứng dụng cụ thé.
Theo dự đoán ITRSI (2009), trong thập kỷ tới độ phức tạp của hệ thống trên chip (SoC) sẽ tiếp tục tăng nhanh dé có thé đáp ứng yêu cầu ngày càng cao của các ứng dụng SoC có thể tích hợp được hàng trăm, hay thậm chí nhiều hơn, lõi IP trên một chip đơn Thiết kế SoC ở quy mô này được bắt đầu từ các thành phần đã được thiết
kế sẵn, ví dụ như các bộ xử lý, bộ điều khiển và mảng bộ nhớ Phương pháp thiết kế tái sử dụng các lõi IP trở thành phương pháp thiết kế SoC phổ biến nhằm rút ngắn
Trang 15thời gian đưa sản phẩm ra thị trường (time-to-market) Với phương pháp này, yếu tố quyết định lớn nhất sẽ được đề cập đó là sự phối hợp truyền thông giữa các thành phần Việc thiết kế kiến trúc truyền thông trên chip đòi hỏi phải đáng tin cậy, năng
lượng thấp và thực thi cao Vấn đề kết nối sẽ trở thành yếu tố hạn chế với các mục
tiêu.
1.2 Hướng nghiên cứu đề tài
Dựa trên ý tưởng mô hình NoC để truyền gói tin một cách tự động (từ điểm nguồn đến điểm đích) mà không cần một đường đi được gán mặc định như trước Đồng thời nhóm đề xuất một mô hình mang TCP/IP cùng với kiến trúc Mesh 3x3 và thuật toán định tuyến tĩnh Nhóm nghiên cứu đề xuất hướng phát triển đề tài với mục tiêu
là nghiên cứu, đánh giá, hiện thực mô hình mạng trên chip với cấu trúc liên kết dạng lưới với kích thước lớn sử dụng thuật toán định tuyến tĩnh dé tự tìm đường đi
và giao thức bắt tay dé tránh mất gói Cũng như đề xuất ra một mô hình NoC cơ bản nhất, dễ tham khảo và sử dụng vào các nghiên cứu về sau.
1.3 Mục tiêu đề tài
Trong khóa luận tốt nghiệp, đầu tiên, nhóm sẽ nghiên cứu sâu, phân tích và tìm hiểu
lý thuyết về các thành phần của mô hình mạng NoC Tiếp theo, nhóm sẽ tiếp tục nghiên cứu, phân tích và thiết kế các thành phần bên trong mô hình NoC cơ bản, sử dụng ngôn ngữ Verilog và SystemVerilog để thiết kế và kiểm tra chức năng từng khối Sau cùng, hiện thực thiết kế trên phần mềm Vivado bằng cách truyền gói tin theo các trường hợp tổng quát nhất dé kiểm tra tính chính xác của mô hình mà nhóm đã đề xuất.
Trang 16Chương2 CƠ SỞ LÝ THUYET
2.1 Network On Chip
Network on chip (NoC) ra đời với ý định giải quyết các khó khăn này bằng cách thực hiện một mạng truyền thông NoC cho phép chia sẻ tài nguyên, nâng cao băng thông bằng việc chia sẻ các kênh truyền trên mạng, giảm nhỏ năng lượng tiêu thụ
do các dây dẫn được thu ngắn, việc phân lớp khi thiết kế và khả năng sử dụng lại các tài nguyên là những đặc điểm thuận lợi khi thiết kế dựa trên NoC Hình 2.1 mô
tả mô hình NoC với cấu trúc 2D Mesh.
HE Network Adapter
— Link
Hinh 2.1 M6 hinh NoC 2D Mesh
Bộ chuyển mach (Router hoặc Router): là thành phần cơ ban của mạng, thực hiện việc định tuyến giữa các lỗi vào và lối ra Nó có nhiệm vụ tính toán đích đến của dữ liệu, phân xử các tranh chấp trên đường truyền dữ liệu và cuối cùng truyền dữ liệu theo đường dẫn đã chọn Mỗi bộ chuyền mạch thông thường kết nối một số các liên kết và một hay nhiều bộ ghép nỗi mạng NA Các bộ chuyển mạch được sắp xếp trong một tôpô mạng và chúng bắt tay chuyền tiếp và điều khiển luồng dữ liệu giữa
các NA.
Bộ phối ghép mạng thích ứng (NA: Network Adapter hoặc NI: Network Interface): cung cấp giao diện kết nối giữa lõi IP và bộ chuyển mạch NA thực hiện đóng gói đữ liệu được cung cấp bởi IP thành các gói, các gói lại được phân chia
thành các đơn vị dữ liệu nhỏ hơn (gọi là flit) trước khi chúng được gửi vào mạng.
Các flit được sử dụng cốt để tối thiểu nhu cầu sử dụng bộ đệm và dây dẫn trong
Trang 17Các liên kết (Links): là nhóm các dây dẫn song song kết nối giữa các bộ chuyển mạch Độ rộng dữ liệu của các đường liên kết phụ thuộc vào số các dây dẫn bó lại với nhau và số đường tín hiệu được sử dụng Trên các đường liên kết, tại một thời điểm chỉ có một flit dữ liệu được truyền Các đường liên kết có nhiệm vụ kết nối các bộ chuyển mạch với các bộ NA.
2.2 Topology — Cấu trúc liên kết
Tôpô (topology) mạng là cách bồ trí của các phan tử trong một hệ thống mạng Nó quy định tổ chức vật lý của mạng và do đó thường được mô hình hoá bằng các cấu trúc hình học Giống như trong mạng máy tính, tôpô mạng trên chip cũng có nhiều
Ti
Hình 2.2 Các mang topology ph biến
loại.
se Tôpô mang chordal ring: thực chất là một tôpô mạng ring (các nút mạng nối
với nhau thành một vòng kín) có bổ sung thêm các dây cung giữa các bộ chuyển mạch đối diện (Hình 2.2a) Ưu điểm của tôpô mạng này cho phép hiệu năng truyền thông cao hơn tôpô mạng ring, nhưng kết nối và định tuyến
cũng phức tạp hơn.
¢ _ Tôpô mạng 2D-mesh: là một dạng cấu trúc mạng lưới bao gồm m hàng van
cột, giao của các hàng và cột là các bộ chuyển mạch (Hình 2.2b) Tôpô này
có ưu điểm là dễ dàng thực thi trên các công nghệ bán dẫn hiện tại, đơn giản trong chiến lược định tuyến, dễ dàng phát triển, dễ mở rộng mô hình mạng Nhược điểm có độ trễ đáp ứng cao.
4
Trang 18¢ _ Tôpô mạng 2D torus: Mạng hình xuyến là một phiên ban cải tiến của mang
mắt lưới cơ bản Trong đó phần đầu của cột được kết nối với phần cuối của cột và phía trái của hàng được kết nối với phía phải của hàng (Hình 2.2c) Mạng hình xuyến có các bộ chuyển mạch rất nhỏ và có tính đa dạng đường
dẫn Với tôpô mạng này cho phép giảm đường kính của mạng và tăng băng
thông Tuy nhiên nó có một số hạn chế như thực thi trên tôpô mạng này phức tạp hơn, các liên kết nối vòng các bộ chuyền mạch phía ngoài dài dẫn đến suy giảm hiệu năng truyền thông và độ trễ đáp ứng cao.
¢ _ Tôpô fat-tree: Tôpô mạng hình cây lớn là một tôpô mạng có đường kính rất
nhỏ nên độ trễ đáp ứng cũng giảm đi đáng kê (Hình II.2e) Nhược điểm của tôpô này là có sự phân cấp bộ chuyển mach và kết nối phức tạp do đó không gian thực thi phần cứng cũng tăng lên đáng kể Trong khi đó tôpô nhị phân (dạng cây cơ bản) rất hữu ích cho việc khai thác tính cục bộ của lưu lượng
(Hình 2.2d).
¢ Với sự đơn giản cũng như dễ thiết kế cho mô hình nên nhóm sẽ quyết định
dùng cấu trúc liên kết Mesh với độ lớn là 3x3 (9 nodes) để mô hình hóa thiết
kê của mình.
2.3 Kỹ thuật chuyển mạch gói
Là kỹ thuật thực hiện chia dữ liệu thành nhiều gói tin và các gói này được chuyển tiếp theo từng chặng Mỗi gói tin bao gồm thông tin định tuyến và dữ liệu Các gói tin có thé được truyền trên các đường khác nhau và có thé cùng dịch chuyển tại một thời điểm Tại đích đến, các gói tin hợp thành dữ liệu ban đầu Kỹ thuật chuyển mạch này có ưu điểm là tiết kiệm được thời gian truyền và tài nguyên mạng (vì
không cần truyền cả gói dữ liệu lớn), tăng hiệu suất đường truyền (vì một kết nối
giữa hai bộ chuyên mạch có thể dùng chung cho nhiều gói, các gói xếp hàng và truyền đi nhanh nhất khi có thẻ), nếu trong quá trình truyền gặp tắc nghẽn thì gói tin
đó có thé đi theo đường khác dé đến đích Trong trường hợp, gói tin truyền bị lỗi thì chỉ cần truyền lại gói tin đó thay vì phải truyền lại toàn bộ dữ liệu gốc Ngoài ra, kỹ thuật này không cần bộ điều khiển trung tâm vi trong các gói tin đã chứa đựng day
đủ các thông tin định tuyến Tuy nhiên, kỹ thuật này có nhược điểm là trễ đường truyền lớn do qua mỗi bộ chuyền mạch dữ liệu được lưu trữ, xử lý trước khi truyền
đi Vì thế, đòi hỏi các bộ chuyển mạch phức tạp và độ trễ đáp ứng tín hiệu lớn hơn.
Trang 19Dựa theo thiết kế đã đề xuất, một gói tin sẽ chia thành nhiều flit (32 bit) bit khác nhau gồm:
e Type (2 bit): Header, Body, Tail (10: Header, 00: Body, 01: Tail, 11:
Handshake).
© Source (4 bit): Nguồn gửi.
e Destination (4 bit): Nguồn đích.
e Data Với Header thi Data (22 bit) sẽ là thông tin định tuyén Với
Body, Tail (26 bit) thì sẽ là thông tin dữ liệu.
Type Source | Destination Routing Info
2 bit 4 bit 4 bit 22 bit
Hinh 2.3 Flit Header
Type Source Data
2 bit 4 bit 26 bit
Hinh 2.4 Flit Body va Tail
Type Source | Destination] send/receive accept mark_trip
2 bit 4 bit 4 bit 1 bit 1 bit 20 bit
Hinh 2.5 Flit Handshake Bang 2.1 Mô tả các loại flit
Loại flit Độ dài Thành phần Mục đích
Header 32 bit - Type (2 bit) Dùng để xác định
- Source, Destination (4 bit) :Ä x ` 4s
(10) - Data (22 bit) điểm nguồn va đích
cho gói.
Body (00) 32 bit - Type (2 bit) Dùng dé chứa dữ liệu
- Source (4 bit) của gói
- Data (26 bit) gol.
Tail (01) 32 bit - Type (2 bit) Ding để thông báo
- Source (4 bit) a as gs kes
~ Data (26 bit) đây là flit cudi cùng
Trang 20của gói đó.
Handshake
(11)
32 bit Type (2 bit)
Source, Destination (4 bit)
send/receive (1 bit) accept (1 bit)
mark_trip (20 bit)
Dùng dé xác lập đường giữa điểm nguồn và điểm đích.
Trên đường truyền từ điểm nguồn đến điểm
đích, flit handshake sẽ lưu lại đường di vào
mark_trip va sau khi
2.4 Thuật toán định tuyến
Trong truyền thông thì thuật toán đóng vai trò hết sức quan trọng, nó có nhiệm vụ xác định đường đi từ nguồn tới đích cho một gói tin Thuật toán định tuyến tối ưu sẽ
đem lại hiệu năng truyền thông cao Vì vậy, việc nghiên cứu và lựa chọn thuật toán
định tuyến sao cho vừa sử dụng tối ưu các liên kết truyền thông vừa đơn giản trong việc thực hiện trên chip là rất cần thiết Có nhiều thuật toán định tuyến được dùng trong thiết kế các mạng trên chip tuy nhiên ta có thể phân thành hai loại sau:
© Thuật toán định tuyến xác định (deterministic) hay còn gọi là thuật toán
định tuyến tĩnh (static routing algorithm): định tuyến tĩnh có cách dùng đơn giản nhất là định tuyến sẵn đường đi cho các node, việc định tuyến này giúp
ta biết chính xác đường đi của các gói và đồng thời có thể thay đổi đường đi của các node theo ý muốn nhưng nếu xảy ra lỗi thì gói tin sẽ không bao giờ đến được với điểm đích dẫn đến tắc nghẽn nên chỉ phù hợp với thiết kế nhỏ.
¢ _ Thuật toán định tuyến thích nghỉ (Adaptive Routing) hay còn gọi là thuật
toán định tuyến động (Dynamic Routing Algorithm): thường sẽ được thuật
Trang 21toán X — Y (chi tiết ở muc 4.3) dé định tuyến đường đi Thuật toán X — Y sẽ hoạt động theo cách đi theo trục X cho đến khi tọa độ X của vi trí đang xét bằng với vị trí của node cần đến (điểm nguồn), sau đó thuật toán sẽ đi theo trục Y và tương tự trục X, nếu tọa độ X và Y bằng với tọa độ của node đích đến thì thuật toán kết thúc Thuật toán định X — Y giải quyết được van đề mà thuật toán định tuyến tĩnh gặp phải nhưng độ phức tạp sẽ cao hơn, phù hợp với thiết kế lớn.
XY và điều hướng ra một trong các công (PE, North, East, South, West) thì phụ thuộc rất nhiều vào các khối như sau: VA (Virtual Allocator), SA (Switch Allocator), RC (Routing Compution), Crossbar Nhiệm vụ của mỗi khối và cách các khối trong Switch được kết nối với nhau được mô trả trong Bảng 2.2 và Hình 2.6 dé tạo thành một Switch, mỗi Switch liên kết với một NI (Network Interface) tạo thành một Node Mỗi 9 node liên kết với nhau tạo thành một mạng Network On Chip 3x3.
Trang 22Bảng 2.2 Mô tả chức năng các khối trong Switch Tên khối Chức năng
VA (Virtual
Allocator)
Xét cac bit dau dé phan biét header/body/tail:
e Néu là header thì kiểm tra VCO và VC1 có empty thì đưa
vao.
e Nếu là body/tail thì kiểm tra Source Address đề phân biệt
body/tail của các packet và đưa vào VC tương ứng.
VC (Virtual Là một dãy 5 buffer 32 bit Dùng đê lưu trữ gói sau khi được VA
Channel) sắp xếp theo địa chỉ.
RC (Routing Khối tính toán định tuyến đầu ra cho flit dựa trên thuật toán XY
Compution) và địa chỉ switch.
SA (Switch Xét type (header/body/tail) của flit và port out của RC để lựa
Allocator) chọn flit out của VCO, VCI
e Tại cùng | input port thì sẽ ưu tiên body, tail đi trước.
e Tai các input port nếu ra cùng output port thì sẽ ưu tiên
body, tail đi trước.
Crossbar Dựa vào tín hiệu SA dé đưa các flit ra đúng đầu ra mà địa chỉ yêu
cầu, gồm 4 hướng: Đông, Tây, Nam Bắc.
Trang 23Chương 3 THIẾT KE TONG QUAN
3.1 Mô tả tổng quan hệ thống
mesh NOC
thước là 3x3, tương ứng mỗi node R tức một khối Switch, các khối Switch sẽ nhận
dữ liệu từ IP thông qua khối NI Đề thực hiện truyền gói tin, IP sẽ gửi flit header dé tạo bắt tay giữa Node nguồn và Node đích, kết quả của quá trình bắt sẽ được NI thông báo qua các dây tín hiệu Việc xác lập đường truyền dựa trên mô hình mạng TCP/IP dé tránh xảy ra mất gói như mô hình mang UDP, sau khi giữa 2 node xác lập đường truyền thành công thì gói tin mới bắt đầu được truyền Nếu quá trình bắt tay thành công, IP gửi các flit dẫn đường và flit data gồm 5 flit (một flit header, ba flit body, một flit tail), khối NI sẽ bắt đầu xử lý gói tin dựa trên source, destination
mà gói tin cần chuyển đến Sau khi quá truyền nhận kết thúc, dữ liệu sẽ được lưu vào IP của Node đích bao gồm các flit như header, body, tail, còn flit handshake sẽ không có vì flit này mang chức năng kiểm tra trạng thái ‘busy’ giữa node truyền và node nhận Trong quá trình truyền nhận nhiều packet giữa các node sẽ xảy ra các vấn đề trùng đường đi, hoặc xung đột ngõ vào và ngõ ra nên ta cần kiểm tra kỹ lưỡng các vấn đề xung đột để tránh mất gói cũng như đánh giá hiệu suất của mô
Trang 24qua từng tang dé truyền sang một IP khác Quan trọng hơn hết là tìm hiểu, xây dựng
mô hình, các thành phần cần có trong NoC gồm các IP, Switch liên kết với nhau với nhau theo cau trúc liên kết Mesh, với IP dùng dé lưu trữ gói tin cũng như đóng vai trò là người muốn gửi gói tin sang một IP khác, còn Switch đóng vai trò là người giao thư Trong quá trình thiết kế, việc gửi gói tin khi thiếu giai đoạn xác lập đường truyền sẽ gây mat gói đồng thời chưa đúng theo mô hình TCP/IP (việc chưa xác lập đường truyền sẽ khiến thiết kế truyền theo mô hình UDP) nên phải bổ sung thêm Network Interface (NI) đề xác lập đường truyền.
Tìm hiểu mô hình
mang TCP/IP
Xây dựng mô hình NoC với kiên trúc
Trang 25Chương 4 THIẾT KE CHI TIẾT
4.1 Khối Input Port
4.1.1 So đồ tổng quát
Với vai trò giao tiếp, kết nói với NI và các Switch lân cận thì Input Port đóng vai trò kiểm tra, xử lý cho phép nhận dữ liệu từ Output Port của Switch lân cận đã được kết nối Sau khi kiểm tra và cho phép dữ liệu truyền vào thì Input Port đóng vai trò xử lý dữ liệu và các flit đầu ra sẽ được vận chuyền sang khối Crossbar đề điều hướng sang các công mà gói tin cần đến.
TL In[31:0]
valid_in aan
clk flit_out{31:0]
>|
handshake_gate SS
Hình 4.1 Sơ đồ khối của khối InputPort
Bảng 4.1 Mô tả tín hiệu của khối InputPort Tín hiệu VO |Sốbit | Môtả
flit_in I 32 Dữ liệu flit đầu vào
valid_in I 1 Tin hiệu cho phép các flit được vào
clk I 1 Xung clk cua mach
handshake_gate I 1 Cổng cua flit handshake
in_source (pe, north, I 3 Dia chỉ gốc của flit gửi
west, east, south)
12
Trang 26enable I 1 Tin hiệu cho phép mach chạy
flit_out lo) 32 Dữ liệu các flit đầu ra của mạch
flit_ gate oO 3 Công mà các flit dang hướng đến
valid_ out Oo 1 Tín hiệu bao đữ liệu xuất
4.1.2 Thiết kế chỉ tiết
Trong khối Input Port sẽ bao gồm khối:
e VA (phân tích nguồn gửi và lưu gói tin vào bộ đệm).
e VC (đóng vai trò là bộ đệm dữ liệu).
e RC (so sánh địa chỉ nguồn gửi và nguồn nhận dé áp dụng thuật toán
XY đưa ra hướng đi tiếp theo cho gói tin).
e _ SA (phân xử thứ tự ưu tiên nếu có 2 hoặc nhiều gói từ nguồn gửi khác nhau di ra cùng công ở Crossbar).
e Check (kiểm tra trạng thái công ra của gói tin khi đi vào switch và cho
Trang 274.2 Khối Check
Khối check có nhiệm vụ nhận các tín hiệu request (handshake_ check, source, gate)
dé kiểm tra trang thái cổng ra của switch mà gói tin mong muốn và cho phép nhậnflit qua dây grant Điều hướng giúp tránh gây tắc nghẽn đường đi khi có nhiều góitin cùng ra một công Hình 4.3 miêu tả sơ đồ chỉ tiết của khối Check
north source DFF
E source
Hình 4.3 Sơ dé chi tiết của khối Check
Khôi compare dựa vào các input handshake_ check, gate đê lựa chọn kiêu so sánh,
công mà gói tin sé di ra va so sánh source của gói tin và source của công (được lưu trong d-ff), năm d-ff sẽ lưu source của năm công ra dé so sánh Hình 4.4 mô tả sơ
đồ thuật toán của khối Check
handshake check handshake_ check
grant = 1
Hình 4.4 So đồ thuật toán của khối Check
14
Trang 284.3 Khối Virtual Allocator
Khối VA (Virtual Allocator) có nhiệm vụ phân tích và lựa chọn kênh ảo (VirtualChannel) cho các flit Đối với các flit header, handshake, VA sẽ lựa chọn kênh ảodựa theo tín hiệu trống (tín hiệu empty mức 1) của từng kênh ảo Đối với các flit
body, tail, khối VA sẽ so sánh tín hiệu VC_src của từng kênh ảo va source cua flit
dé lựa chọn kênh ao Thời gian delay của khối VA là 1 chu kỳ
Vào VCO FT" Vào VC1
Hình 4.5 Sơ đồ thuật toán khối VA4.4 Khối Virtual Channel
Trang 29nên hang đợi tối đa sẽ là 5 flits, nếu flit thứ 6 được truyền vào trong khi flit đầutiên chưa xuất ra thi flit thứ nhất sẽ bị ghi đè Hai tín hiệu VC_source vàVC_empty được nối đến VA để VA phân tích và truyền gói tin đến VC Sơ đồ
tổng quát của khối VC được thé hiện trong Hình 4.6, Bảng mô tả chỉ tiết tín hiệu
khối VC được mô trả trong bảng 4.2
valid in valid_ out
Hình 4.6 Sơ đồ tổng quát khối VC
Bảng 4.2 Mô tả tín hiệu khối VCTín hiệu VO |Sốbit | Mô tả
Reset 1 1 Reset bất đồng bộ tích cực mức thấp
Enable I 1 Khởi động hệ thống va cho phép các VC được hoạt
động
Clk I 1 Xung clock hé thông, kích cạnh lên
Flit in I 32 Truyền data vào khối demux và signal dé xử lý
stop I 1 Tín hiệu báo dừng tạm thời đo khối SA quản lý
Flit_out O 32 Dữ liệu đầu ra của khối VC
VC_source | O 4 Dia chi lay từ Header cho phép những flit cùng địa
chi cùng truyền vào
VC_empty |O 1 Tin hiéu bao trang thai cua hang doi
16
Trang 30Valid_in I 1 Tín hiệu cho phép dữ liệu vào
Valid_ out O 1 Tin hiệu cho phép dữ liệu ra ngoài
4.4.2 Thiết kế chỉ tiết
Tín hiệu enable và reset là các tín hiệu khởi tạo và bật tắt khối, khi enable đượckích lên 1 thi counter (đếm từ 1 đến 5) bắt đầu đếm và lựa chọn flipflop đượctruyền vào đồng thời gói tin được truyền vào từ Flit_in (32 bit) đi đến khối demux(1 to 5) và được lưu theo địa chỉ mà counter đã lựa chọn Khối signal sẽ phân tíchFlit_in cho biết source của flit này và tình trạng của hang đợi thông qua
VC_source và VC_empty Hình 4.2 thể hiện thiết kế chi tiết của khối Virtual
Channel
Counter thứ 2 (đếm từ 0 đến 5) có nhiệm vụ lựa chọn flipflop được xuất ra Tínhiệu stop được truyền vào counter thứ 2 dùng việc đọc khi cần thiết
Thời gian lưu trữ của một flit trong hang đợi VC là một clock, vi VC có 5 flipflop
nên thời gian tối đa ở trong hang đợi của một flit là 5 xung clock
L—> signal F———>.Vv©€ source
——> F——>> VC empty
Hình 4.7 Thiết kế chi tiết của VC
Trang 314.5 Khối Routing Compution
4.5.1 Sơ đồ khối tống quát
Khối Routing Compution đảm nhiệm 2 nhiệm vụ: xác định đường đi cho các flit
không phải flit handshake (flit header, body, tail) và ghi lại đường đi nếu đó flithandshake Hình 4.8 thé hiện sơ đồ tông quát của khối RC
Hình 4.8 Sơ đồ tổng quát khối RC
Mô hình hoạt động: Với các flit như header, body, tail thì dựa vào thuật toán định
tuyến X- Y để xác định đường ổi, giả sử gói tin có địa chỉ nguồn là 0010 (node 6),địa chỉ đích là 0101 (node 4) với 2 bit trọng số cao là X, 2 bit trọng số thấp là Y, RC
sẽ đưa gói tin đi hết trục X và kiểm tra tọa độ X hiện tại có bang toa X cua nguồnđích chưa, nếu chưa thì tiếp tục tăng (hoặc giảm nếu tọa độ X của địa chỉ nguồn nhỏ
hơn tọa độ X của địa chi đích) nếu bằng thì tiếp tục xét sang trục Y (tương tự trục
X) Vậy cách RC gửi gói theo địa chỉ trên như sau:
e Tọa độ X (hiện tại) = 00 < Toa độ X (địa chỉ dich) = 01 nên sẽ tăng tọa
độ X lên 1 (sang node 7).
e Tọa độ X (hiện tại) = 01 bằng tọa độ X (địa chi dich) = 01 nên chuyển
sang kiểm tra trục Y
e Toa độ Y (hiện tại) = 10 > Toa độ Y (địa chỉ đích) = 01 nên sẽ tăng toa
độ Y sẽ giảm 1 (xuống node 4)
e_ Tọa độ Y (hiện tai) = 01 bằng tọa độ X (địa chỉ đích) = 01, kết thúc việc
truyền gói
Hình 4.9 thể hiện sơ đồ các node trong mô hình 2D-Mesh 3x3 và Hình 4.10 mô tả
sơ đồ thuật toán X-Y được sử dụng trong khối RC
18