Hình 2.13 Mô hình ghép xen kẽ các router đặc biệt trong mạng NoC 2D Hình 2.14 So sánh trạng thái giữa router thường và router đặc biệt Hình 3.1 Mô hình trạng thái cho router bypass Hình
Tính cấp thiết của đề tài
Ngày nay, với sự gia tăng số lượng transistor có thể tích hợp trên cùng một chip đơn đã cho phép thiết kế các hệ thống tích hợp nhiều chức năng trên cùng một chip (System on Chip-SoC) Bốn khía cạnh cần quan tâm khi thiết kế chip bao gồm: Quá trình tính toán (cumputation), bộ nhớ (memory), cổng giao tiếp (I/O) và quá trình truyền nhận dữ liệu (communication) Khi công suất xử lý tăng và các ứng dụng tập trung nhiều dữ liệu ngày càng phổ biến thì những thách thức trong truyền nhận dữ liệu ngày càng lớn
Hai giải pháp cho vấn đề trên trong SoC là việc sử dụng các đường truyền riêng biệt (private bus) hoặc sử dụng các đường truyền chung (common bus) cho toàn hệ thống (hình 0.1) Các giải pháp này dần bộc lộ các hạn chế trong việc kém linh hoạt và khó đáp ứng nhu cầu khi truyền dẫn với số lượng tài nguyên gia tăng
Hình 0.1 Hệ thống với mô hình giao tiếp dạng bus (http://www.ybet.be)
Mạng trên 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 dữ liệu bao gồm các micro-router liên kết các tài nguyên của hệ thống NoC cho phép chia sẻ tài nguyên, nâng cao băng thông, giảm nhỏ tiêu thụ năng lượng và khả năng tái sử dụng
Mô hình NoC cơ bản được mô tả bao gồm các thành phần chính như sau:
Các lõi xử lý hay các IP Luận văn thống nhất gọi các lõi xử lý này là các IP
Thiết bị giao tiếp giữa PU và router gọi tắt là NI (Network Interface)
Bus giao tiếp giữa các router
Hình 0.2 Mô hình kiến trúc NoC dạng lưới hai chiều (http://www.itiv.kit.edu)
Phân tích hình 0.2, mỗi router có 5 liên kết, 1 liên kết với IP và 4 liên kết với các router khác qua bus Như vậy các IP muốn giao tiếp với nhau thì gói dữ liệu trước hết phải qua thiết bị giao tiếp, qua router nguồn, qua bus giữa các router và các router trung gian, qua router đích, qua thiết bị giao tiếp của router đích rồi mới đến IP đích
Hình 0.3 Mô hình đường truyền dữ liệu trong NoC
Trong mô hình NoC, các router giữ vai trò quan trọng trong quá trình truyền dẫn Chính cấu tạo của router trong mô hình NoC sẽ quyết định phương thức truyền nhận dữ liệu một cách thống nhất Điều này cho phép một hệ thống NoC chia sẻ tài nguyên, nâng cao băng thông, giảm nhỏ năng lượng tiêu thụ và khả năng tái sử dụng cao
Hiện nay các nghiên cứu về cấu trúc router trong NoC đang được thực hiện bởi nhiều nhóm nghiên cứu, trường đại học, viện nghiên cứu trên thế giới theo các chiều hướng khác nhau Các sản phẩm ứng dụng NoC đã và đang được nghiên cứu và ứng dụng rộng rãi Chính vì vậy “Thiết kế và đánh giá kiến trúc Router trong mô hình NoC” là đề tài có tính khoa học và thực tiễn cao.
Mục đích nghiên cứu
Mục đích nghiên cứu của đề tài là thiết kế kiến trúc router sử dụng trong mô hình NoC lưới hai chiều đa chu kỳ, kiến trúc router được thiết kế sẽ cải thiện về số xung clock mà một khung dữ liệu phải trải qua khi đi qua router Sau khi hoàn thành kiến trúc router mong muốn, các router sẽ được liên kết lại nhằm tạo ra mô hình mạng NoC 3x3 dạng lưới hai chiều Mạng NoC 3x3 này sẽ được kiểm tra và đánh giá hiệu năng sau đó.
Đối tƣợng và phạm vi nghiên cứu
Nghiên cứu về kiến trúc router trong mô hình NoC
Nghiên cứu về mô hình NoC
Nghiên cứu về công nghệ FPGA và ngôn ngữ mô tả phần cứng Verilog
Thực hiện thực nghiệm trên kít DE2 do công ty Altera sản xuất.
Phương pháp nghiên cứu
Nghiên cứu lý thuyết: o Phân tích, so sánh các giải pháp xây dựng kiến trúc router, từ đó lựa chọn kiến trúc router nhằm cải thiện số chu kỳ xung clock cho một khung dữ liệu khi đi qua router o Sau khi hoàn thành kiến trúc router, mô hình NoC 3x3 dạng lưới hai chiều sẽ được xây dựng và đánh giá
Nghiên cứu thực nghiệm: o Viết chương trình thực hiện và tiến hành mô phỏng, đánh giá kiến trúc router và mô hình NoC 3x3 lưới 2 chiều tương ứng o Thực nghiệm trên phần cứng FPGA và đánh giá kết quả.
Ý nghĩa khoa học và thực tiễn của đề tài
Nghiên cứu khả năng ứng dụng của kiến trúc NoC trong truyền nhận dữ liệu nhằm đảm bảo các yêu cầu về tốc độ truyền, độ phức tạp của mạch kết nối, lượng dữ liệu xử lý, công suất tiêu thụ, giá thành… là xu hướng phát triển của các bộ xử lý đa lõi, đa năng (các vi xử lý của Intel) Đây cũng chính là một trong những hướng nghiên cứu đang rất được quan tâm trên thế giới Ứng dụng FPGA và Verilog trong thiết kế số cùng với kết quả đạt được của đề tài có thể áp dụng một phần vào quá trình giảng dạy cho sinh viên chuyên ngành Điện Tử Viễn Thông tại các trường Đại Học chuyên ngành Kỹ Thuật.
Cấu trúc của luận văn
Luận văn bao gồm 7 chương:
Chương 0 – Đặt Vấn Đề & Hướng Giải Quyết: Giới thiệu đề tài và tính cấp thiết của đề tài
Chương 1 – Tổng Quan: Giới thiệu các khái niệm cơ bản trong mô hình NoC Chương này cũng đưa ra giới hạn và các chọn lựa kỹ thuật cho đề tài
Chương 2 – Tổng Thuật Công Trình Liên Quan: Giới thiệu các công trình liên quan đến NoC Qua đó nêu lên vấn đề cần cải thiện số xung lock trì hoãn mà một khung dữ liệu phải trải qua khi đi qua một router
Chương 3 – Phương Hướng Giải Quyết Vấn Đề: Đưa ra mô hình cấu trúc chung cho một router nhằm giúp giảm thiểu số chu kỳ clock mà một gói dữ liệu phải trải qua thông thường là 6 chu kỳ còn 3 chu kỳ
Chương 4 – Xây Dựng Kiến Trúc Router: Chi tiết cấu trúc router, giao thức giao tiếp và đường truyền của gói dữ liệu được thể hiện chi tiết Bên cạnh đó, mô hình NoC 3x3 cũng được giới thiệu khi liên kết các router với nhau
Chương 5 – Mô Phỏng Kiến Trúc Router & Mô Hình NoC 3x3:
Thiết lập, giới thiệu môi trường cũng như các trường hợp kiểm tra cho router đơn và mạng NoC Chương này cũng thể hiện kết quả mô phỏng hoạt động của router và mạng NoC 3x3
Chương 6 – Hiện Thực Kiến trúc Router trên FPGA: Hiện thực thiết kế mô hình NoC trên kít DE2 – Altera nhằm đảm bảo hoạt động của router.
TỔNG QUAN
Mạng trên chip
Như đã nói trên với kiến trúc bus thông thường trước đây, các nghiên cứu đã cho thấy sự giới hạn về hiệu quả cũng như tính phức tạp trong thiết kế của nó [1] khi mà mật độ tích hợp các đơn vị xử lý tăng lên Một hướng nghiên cứu khác được xem là rất có tiềm năng trong tương lai để giải quyết vần đề đặt ra là “mạng trên chip – Network on Chip (NoC)” Trong một kiến trúc NoC, các lõi xử lý hay các IP giao tiếp không thông qua các bus thông dụng mà thông qua các router Các hướng nghiên cứu về vấn đề này được giới thiệu ở mục 1.2 tiếp sau đây.
Các hướng nghiên cứu và các khái niệm liên quan đến NoC
Dựa trên ý tưởng giao tiếp giữa các IP thông qua các router được kết nối với nhau Các hướng nghiên cứu sau được đưa ra và gặt hái nhiều thành quả
Kiến trúc NoC (mô hình, giải thuật định tuyến và phân xử…)
Các phương pháp kết nối chuyển mạch bên trong router và giữa các router
Những vấn đề về năng lượng
Những vấn đề về đảm bảo chất lượng (lỗi và khả năng sửa lỗi, băng thông giới hạn …)
Các phương pháp thiết kế (trình tự các bước thiết kế), đánh giá (mô phỏng, kiểm tra), phần mềm hỗ trợ… cho thiết kế NoC
Hệ điều hành và khả năng lập trình trên NoC
Vấn đề về tích hợp các kỹ thuật bên trong NoC (mạng noron, logic mờ …)
Vấn đề về đánh giá hiệu suất NoC trên FPGA và ASIC
Vấn đề về diện tích
Do NoC là một thuật ngữ mang tính khái quát nên các lĩnh vực nghiên cứu về NoC nêu trên mang ý nghĩa bao hàm nhiều mảng kiến thức rộng lớn khác nhau
Bởi thế, luận văn chỉ đề cập sâu vào những hướng nghiên cứu mà đề tài luận văn sẽ tiếp cận Đầu tiên những khái niệm cơ bản nhất của một kiến trúc NoC được mô tả
1.2.1 Mô hình kiến trúc mạng NoC (topology)
Xuất phát từ các quan điểm khác nhau, các nghiên cứu đã đưa ra các mô hình mạng thông dụng NoC khác nhau như dạng điểm điểm (point-to-point), dạng bus, dạng xuyến (Torus), dạng lưới (Mesh), dạng vòng (Ring), dạng hình cánh bướm (Butterfly), dạng không theo quy luật (Irregular) …
Cấu hình mạng là sự sắp xếp các router chuyển mạch và các kênh liên kết giữa các router đó Lựa chọn mô hình mạng là công việc đầu tiên cần làm khi thiết kế một hệ thống mạng, cho dù là mạng máy tính hay mạng trên chip Việc chọn lựa mô hình mạng có ảnh hưởng rất lớn đến với các kỹ thuật định tuyến (routing) và điều khiển luồng (flow control) sẽ được nhắc đến ở các phần sau
Mô hình mạng thường được mô tả ở dưới dạng sơ đồ hay đồ hình Hình 1.1
[2] mô tả một số mô hình mạng cơ bản đã được phát triển và đưa vào ứng dụng trong thực tế Hình 1.2 [2] mô tả các mô hình mạng NoC phổ biến Trong đó mạng dạng lưới (MESH) và dạng xuyến (TORUS) được sử dụng phổ biến nhất a/ Dạng điểm-điểm b/Dạng bus c/ Dạng nhiều bus d/ Dạng lưới e/Dạng xuyến f/ Dạng cách bướm g/Dạng lưới 3D h/Dạng xoắn 3D
Hình 1.1 Các mô hình kết nối trong NoC [2]
Hình 1.2 Phân nhánh mô hình NoC theo cấu trúc mạng [2]
Sau đây là những phân tích về mô hình mạng MESH và TORUS hai chiều
Sự khác biệt giữa hai mô hình mạng này được mô tả bởi hình 1.3 [2]
Hình 1.3 Mô hình mạng dạng MESH và TORUS [2]
Dựa trên hình 1.3, mô hình dạng lưới mang tính đối xứng cao rất phù hợp và tiện lợi trong quá trính sản xuất Chính điều này đã làm cho mô hình dạng lưới trở thành mô hình được lựa chọn nhiều nhất trong các hướng nghiên cứu
Sau đây là những biến điệu của mô hình dạng lưới được phân tích chi tiết a/ Mesh 2D b/Concentrate Mesh c/CMesh-X2v d/Flattened Butterfly e/Multipdrop express channel (MESC)
Hình 1.4 Các mô hình dạng lưới hai chiều [3]
Theo như hình 1.4 [3], các ưu và khuyết điểm của mỗi mô hình được trình bày a/ Mesh 2 D (hình 1.4.a)
Cấu tạo các router đơn giản tốc độ cao
Thuận lợi trong quá trình sắp đặt cấu trúc lên chip (place& route)
Chiếm diện tích lớn Độ trễ cao
Tiêu hao nhiều năng lượng b/ Concentrate Mesh (hình 1.4.b)
Là sự cải thiện của Mesh-2D bằng cách nhóm 4 router thành 1 router
Với sự kết hợp này đã cho thấy các đặc điểm cải thiện sau
Chia sẻ các ngõ vào/ra dùng chung trong một nhóm 4 router
Giảm độ trễ hơn so với Mesh-2D do có thể rút ngắn số router trung gian phải đi qua
Tốc độ tăng khi giao tiếp giữa các router trong cùng một nhóm
Không thuận lợi: Độ phức tạp trong thiết kế các kiến trúc bên trong router Độ trễ cao
Tiêu hao nhiều năng lượng c/ CMesh-X2 (hình 1.4.c)
Mô hình CMesh-X2 được xem như một phiên bản cải thiện của Concentrate Mesh với sự tăng cường các port giao tiếp nhằm tăng thông lượng truyền dẫn và giảm độ phức tạp trong việc thiết kế kiến trúc bên trong của router d/ Flattened Butterfly (hình 1.4.d)
Dựa trên nền tảng Concentra Mesh, mỗi router có tất cả các đường bus truyền đi đến các router khác trên phương x và y Trong khi đó, bản thân mỗi router cũng nhận các đường bus từ tất cả các router khác trên phương x và y Chính cải thiện này đã mang đến những thuận lợi và bất lợi sau
Tiện lợi giao tiếp giữa các router trên các phương x và y mà không thông qua router trung gian
Giảm độ trễ hơn so với Mesh-2D, Concentrate Mesh do có thể rút ngắn tổng số router phải đi qua nhiều nhất là 2
Không thuận lợi: Độ phức tạp trong thiết kế thành phần điều khiển bên trong router
Khi lưu lượng dữ liệu ít, tài nguyên trên mạng dư thừa lãng phí
Tiêu hao nhiều năng lượng và các vấn đề về số lượng kênh truyền trở nên khó khăn khi mạng mở rộng với nhiều IP e/ Multipdrop express channel-MESC (hình 1.4.e)
Dựa trên nền tảng Flattend Butterfly, sự cải thiện trong vấn đề kênh truyền được chú ý Số lượng kênh truyền sẽ bằng chính số router trên một phương x hoặc y Ngoài ra, đặc tính kênh truyền trong mô hình này còn cho phép một router truyền dữ liệu đồng thời cho nhiều router khác nhờ cơ chế multidrop [3] Chính cải thiện này đã mang đến những thuận lợi và bất lợi sau
Tiện lợi giao tiếp giữa các router trên các phương x và y mà không thông qua router trung gian đồng thời hỗ trợ cơ chế multidrop trên một đường truyền
Giảm độ trễ so với Mesh-2D, Concentrate Mesh do có thể rút ngắn số router trung gian phải đi qua nhiều nhất là 2
Thích hợp cho các mô hình thời gian thực
Không thuận lợi: Độ phức tạp trong thiết kế thành phần điều khiển bên trong router
Khi lưu lượng dữ liệu ít, tài nguyên trên mạng dư thừa lãng phí
Tính không đối xứng trong thiết kế Để so sánh chi tiết về những khác biệt của các mô hình NoC dạng lưới và những biến điệu của nó, kết quả so sánh tài nguyên giữa các mô hình được giới thiệu trong bảng 1.1 [3]
Dựa vào sự khác biệt giữa các thông số của hình 1.5, các điểm thuận lợi và bất lợi của các mô hình được chọn được thể hiện
Ví dụ tiêu biểu như số router tối đa mà gói dữ liệu phải đi qua chỉ là 2 router so với mô hình MECS và FBfly Nhưng đối với CMESH, số router sẽ tăng theo quy mô của mạng Ngoài ra khi gia tăng tài nguyên trong mạng
NoC, một số chỉ số về tài nguyên sẽ thay đổi, một số khác được giữ cố định tùy theo đặc tính cấu hình mạng Việc phân tích các thông số khác không được đề cập chi tiết ở đây Phần phụ lục tham khảo có đưa ra các nghiên cứu thể hiện các đánh giá chi tiết các mô hình cần quan tâm [3], [5], [6]
Phần kế tiếp luận văn giới thiệu chi tiết về các kỹ thuật được sử dụng trong mạng NoC như : kỹ thuật chuyển mạch, kỹ thuật định tuyến, kỹ thuật điều khiển luồng và cấu trúc tổng quan router … Trước hết, kỹ thuật định tuyến được giới thiệu trước
Số router tối đa gói dữ liệu đi qua 6 14 2 2 2 2
Số kênh truyền/phương 2 2 8 32 4 8 Độ rộng kênh 576 1152 144 72 288 288
1.1 Bảng so sánh các đặc tả của các mô hình lưới khác nhau [3]
1.2.2 Thủ tục định tuyến (rounting protocol)
Mục tiêu và giới hạn của đề tài
Sau khi tham khảo các luận văn liên quan đến các vấn đề tồn tại của NoC, đề tài đề xuất cách tiếp cận về việc thiết kế mạng NoC với các đặc tính sau
Mô hình lưới 2D thông thường
Thủ tục định tuyến : Kết hợp kênh ảo và giải thuật Wormhole Routing nhằm đảm bảo không có deadlock và livelock
Cấu trúc router: Sử dụng các bộ đệm (FIFO) ở các ngõ ra và ngõ vào
Kết nối các router thành một mạng NoC 3x3
Giả lập gói dữ liệu để mô phỏng và kiểm chứng hoạt động của mạng NoC Đánh giá kiến trúc router dựa trên các thông số sau khi tổng hợp xuống lớp cổng.
TỔNG THUẬT CÔNG TRÌNH LIÊN QUAN
Cấu trúc router cơ bản cho mô hình Torus 2D
Một kiến trúc router cơ bản đã được đề nghị bởi Huỳnh Việt Thắng [2] Trước hết hãy khảo sát đặc tính mà router này hỗ trợ cho mô hình mạng NoC
Mô hình : Mạng Torus 2D bất đồng bộ
Kỹ thuật chuyển mạch : Chuyển mạch gói Điều khiển luồng : Giải thuật XY
Kỹ thuật xử lý livelock and deadlock : Wormhole và Virtual Channel
Cấu trúc ngõ vào/ra : FIFO (First in first out) cho ngõ vào và ngõ ra a/ Mô hình mạng Torus
Tác giả Huỳnh Việt Thắng đã chọn mô hình mạng Torus cơ bản cho việc đánh giá mô hình NoC
Hình 2.1 Mô hình NoC dạng Torus 2D cơ bản [2]
Dựa trên mô hình mạng trên hình 2.1 [2], chúng ta thấy mạng gồm 4 router (R_x0y0, R_x0y1, R_x1y0, R_x1y1) Trên mỗi router đều có các liên kết với các IP tương ứng (DP_x0y0, DP_x0y1, DP_x1y0, DP_x1y1) Các router liên kết với nhau thông qua các bus b/ Kỹ thuật chuyển mạch gói
Như đã mô tả ở chương trước, các IP (DP_x0y0, DP_x0y1, DP_x1y0, DP_x1y1) sẽ chuyển xuống router các gói tin có kích thước có cấu tạo giống như nhau Dựa trên dữ liệu bên trong các gói tin này, các router biết được cần chuyển chúng đến các router nào để đến được các IP tương ứng
Mỗi gói tin được chia nhỏ thành các khung trong hình 2.2 [2] như đã nói ở chương 1 Một khung trong mô hình này bao gồm 10 bit dữ liệu
Hình 2.2 Mô hình gói tin trong mạng NoC cơ bản [2]
Xét khung đầu của một gói tin thấy rằng hai bit đầu được xem như bit phân biệt loại khung Trong mô hình này 01 được xem như khung đầu, 00 được xem như các khung giữa (phần chính của dữ liệu) và 10 được xem như khung cuối
Trong khung đầu, ngoài hai bit 01 còn có 8 bit khác được chia làm hai nhóm 4 bit 4 bit đầu được mã hóa vị trí theo trục Ox, 4 bit sau mã hóa vị trí theo trục
Oy Giá trị X và Y này sẽ được kiểm tra khi khung đầu đi qua các router Khi các giá trị này trùng với vị trí của router tương ứng có nghĩa là đã đến được router đích Trong các khung sau, 8 bit sau chỉ mang giá trị dữ liệu cần truyền
Cấu trúc tổng quát của router được đưa ra như hình 2.3 c/ Cấu trúc tổng quát router
Hình 2.3 Cấu trúc tổng quan bên trong của router cơ bản [2]
Có thể xem cấu trúc router như hình 2.3 [2] được ghép bởi hai router con (xRouter và yRouter) Mỗi router con giữ vai trò định tuyến trên mỗi chiều
Việc liên lạc giữa các router thông qua bus 14 bit Trong đó 10 bit phục vụ cho truyền dữ liệu đã đề cập ở mục (b), 4 bit còn lại được sử dụng cho các tín hiệu điều khiển luồng
Việc liên lạc giữa router và IP chỉ cần 12 bit Trong đó bao gồm 10 bit dữ liệu và 2 bit điều khiển luồng
Sự khác biệt giữa 4 bit điều khiển giữa các router với nhau so với 2 bit điều khiển giữa router và IP là do sử dụng 2 kênh ảo được đề cập ở phần sau. d/ Giải thuật XY Đây là giải thuật tìm đường đi được sử dụng nhiều nhất trong các mô hình mạng dạng lưới hai chiều Tùy theo cấu tạo và yêu cầu khác nhau, việc sử dụng giải thuật và các biến điệu của nó được đưa ra phân tích Trong mô hình Torus nêu trên, giải thuật XY đơn giản được sử dụng Ta xem xét một ví dụ đơn giản sau Đầu tiên xRouter nhận dữ liệu từ IP thông qua kênh truyền din và kiểm tra địa chỉ theo phương X Nếu địa chỉ đích trùng với địa chỉ router hiện tại, xRouter sẽ chuyển gói dữ liệu cho yRouter thông qua kênh truyền dataXY giữa chúng đồng thời sao chép phần địa chỉ tương đối thực hiện việc chuyển gói dữ liệu theo phương Y Ngược lại khi gói dữ liệu chưa đạt đến đúng địa chỉ theo phương X, xRouter sẽ chuyển gói dữ liệu này đến router tiếp theo trên phương X thông qua kênh truyền xout Đây là quá trình mà xRouter nhận dữ liệu từ IP
Khi xRouter nhận dữ liệu từ ngõ vào xin của một router khác, nếu gói dữ liệu này tương ứng với router hiện tại, nó sẽ được truyền vào IP của chính router này Nếu gói dữ liệu không dành cho router hiện hành nó sẽ thực hiện tương tự như gói dữ liệu nhận từ IP đã nói trên
Hoạt động của yRouter tương tự như xRouter, khi nhận dữ liệu từ xRouter hay từ yin của router khác, yRouter sẽ chuyển gói dữ liệu đến router khác nếu địa chỉ không trùng với địa chỉ router hiện tại Nếu địa chỉ gói dữ liệu trùng với địa chỉ router hiện tại, yRouter chuyến gói dữ liệu đến IP của chính router đó thông qua dout e/ Kênh ảo
Mô hình mà tác giả Huỳnh Việt Thắng đưa ra có sử dụng kỹ thuật kênh ảo
Trên một kênh vật lý là hai kênh ảo tương ứng Do đó, ở đầu vào và đầu ra giữa các router với nhau cần đến 4 tín hiệu ACK/REQ, cứ hai tín hiệu điều khiển dành cho một kênh ảo Điều này giải thích tại sao bus dữ liệu giữa hai router là 14 bit f/ Tổng quan cấu trúc bên trong các router con
Hình 2.4 Sơ đồ khối bên trong của router con [2]
Hình 2.5 Giao diện của một router [2]
Dựa vào các đặc tính ở hình 2.4, hình 2.5 [2], tác giả đã đưa ra chi tiết cấu trúc bên trong của các router X và Y tương ứng
Dựa trên cấu trúc bên trong của router, chúng ta thấy được với một kênh vật lý xin, router hiểu rằng đó là dữ liệu thuộc kênh ảo tương ứng nào Việc phân chia dữ liệu được thực hiện dựa trên cặp dữ liệu ACK/REQ với khối InUnit tương ứng
Cũng giống như ngõ vào, việc đưa dữ liệu ngõ ra dựa trên một bộ phân xử
Arbitrater nhằm xen kẻ các dữ liệu từ hai kênh ảo xuất phát từ các bộ đệm Queue
Như vậy có thể thấy cấu trúc cơ bản của router bao gồm
Bộ đệm ngõ vào và ngõ ra Bộ phân xử
Bộ chuyển mạch Khối điều khiển chuyển mạch
Luận văn không đi sâu vào khối chi tiết bên trong mà chỉ mô tả những khối cần thiết nhất của một router này trong mô hình NoC Bạn đọc có thể tham khảo chi tiết các khối thiết kế của tác giả tại [2]
Tổng kết lại cho thấy việc thiết kế các router không theo một mô hình chuẩn nào Các thiết kế bên trong thay đổi tùy thuộc vào mong muốn của hệ thống cũng như các kỹ thuật mà hệ thống sẽ sử dụng Tiếp sau đây, các vấn đề cân bằng trong sử dụng tài nguyên, độ trễ, năng lượng… được phân tích Từ những đặc điểm này, hướng tiếp cận của đề tài sẽ được thể hiện chi tiết.
Tính cân bằng trong hệ thống NoC
Trong tham khảo [4] đã đưa ra sự khác biệt trong vấn đề sử dụng mô hình
NoC Chính mô hình chọn lựa là nhân tố đầu tiên quyết định các kỹ thuật cũng như cấu hình router cho NoC Đó cũng là nhân tố chính quyết định sự cân bằng trong vấn đề sử dụng tài nguyên, độ trễ, năng lượng… Phân tích [15] ta có thể hiểu rõ được những đặc tính này
2.2.1 Các vấn đề tồn tại của NoC
Trong NoC, thường mật độ tích hợp của các IP tăng cao Chính vì lý do đó mà vấn đề về diện tích và sự phức tạp trong kết nối dây dẫn là hai điểm thiết yếu về mức độ đánh giá NoC
Diện tích của NoC được quyết định dựa trên số lượng bộ đệm mà NoC cùng với sự phức tạp của mạch logic phân xử trong router
Vấn đề về sự phức tạp trong kết nối phụ thuộc chính vào mô hình NoC được chọn Các mô hình dạng lưới được chú ý nhiều nhất do tính đơn giản trong kết nối Xem lại các mô hình trong [4] chúng ta thấy có sự cân bằng giữa mô hình CMESH và MESC Với CMESH, độ trễ là vấn đề cần quan tâm khi mạng phát triển lớn hơn Nhưng ngược lại MESC quan tâm nhiều đến vấn đề kết nối do đặc tính kết nối của mạng này khá phức tạp khi hệ thống mạng lớn lên Chính vì sự cân bằng này, một hệ thống NoC được đặt ra với mục đích cụ thể sẽ cho thấy những thuận lợi và tồn tại của nó
2.2.2 Đánh giá hiệu quả của NoC Để đánh giá hiệu quả của NoC, thường hai nhân tố sau được đưa ra xem xét: Độ trễ (latency) và thông lượng (thoughput)
Thông lượng là giá trị tốc độ dữ liệu truyền tối đa mà hệ thống có thể chấp nhận Độ trễ là khoảng thời gian lớn nhất nhất mà gói dữ liệu đi từ router nguồn đến router đích Xét trong mô hình MECX, dễ dàng thấy chỉ qua hai router là gói dữ liệu có thể đến được router đích nhờ đặc tính liên kết đặc biệt giữa các router của mô hình này
Về cách tính độ trễ có thể tham khảo công thức sau [18]
T h : Độ trễ trên do phần cứng Trong đó d r là độ trễ do router tạo nên và d w là độ trễ do dây dẫn và H là số router mà gói dữ liệu phải đi qua.
T s : Độ trễ do gói thông tin được chia thành nhiều phần để truyền đi trên kênh truyền Ví dụ, ta có gói dữ liệu có chiều dài L, nhưng băng thông trên bus cung cấp là W, do đó gói dữ liệu được chia làm L/W lần
Do mô hình NoC phổ biến được chọn nghiên cứu là dạng mô hình lưới Do đó, việc đưa ra các biến điệu khác nhau dựa trên mô hình lưới truyền thống như CMESH hay MESC (mục 1.2.1)… được phân tích và tìm hiểu Tất cả chỉ nhằm mục tiêu cải thiện hiệu suất trong giới hạn về diện tích và độ phức tạp cho trước
2.2.3 Đánh giá về năng lƣợng của NoC
Trong một chip, NoC được cho là tiêu thụ khoảng 28% trên tổng số năng lượng của chip Không tính năng lượng của nguồn clock, việc tiêu thụ năng lượng của NoC chủ yếu là do kênh truyền, bộ đệm và khối điều khiển trong router Đối với mô hình lưới 2D, mỗi chiều tiêu thụ khoảng 15% đến 30% năng lượng dành cho NoC Trong đó, cở khoảng 30% đến 60% năng lượng này dùng cho router
2.2.4 So sánh về hiệu quả trong các mô hình dạng lưới NoC
Một lần nữa mô hình dạng lưới CMESH, Flatten Butterfly và MESC được phân tích ở bảng 2.1 [3]
Bảng 2.1 Bảng so sánh độ phức tạp của các mô hình dạng lưới [3] n: Số chiều của mô hình lưới (n =2) k: Số router trên một chiều c: Số router được gom lại thành nhóm Trong mô hình CMesh, 4 router được gộp lại thành một nhóm nên c = 4 o: Số ngõ ra lớn nhất trên một router theo một hướng nhất định d: Số kênh truyền trên một hướng α: Số kênh ảo dùng trên một router β: Số bộ đệm sử dụng cho một kênh ảo
Theo như hình 2.6, mỗi một mô hình có ba cột mô tả Cột đầu thể hiện công thức tổng quát để tính toán các giá trị nhằm đánh giá hiệu quả sử dụng của mô hình Hai cột tiếp sau là những con số cụ thể cho các cấu hình cụ thể
Dựa trên các số liệu tính toán cho thấy các vấn đề dần nảy sinh khi tăng kích thước của mạng NoC
Trong mô hình CMESH, vấn đề kênh ảo nảy sinh khi gia tăng kích thước của mạng Khi số router tăng, số kênh ảo cũng tăng theo tỉ lệ thuận, chính điều này làm cho sự phức tạp trong khối điều khiển cũng như số lượng bộ đệm cần có trong router Mặt khác, do không được hỗ trợ các kết nối trực tiếp, việc đi qua nhiều router trung gian làm độ trễ tăng cao
Trong hai mô hình còn lại, vấn đề độ trễ do phải đi qua các router trung gian đã được xử lý nhờ các kết nối trực tiếp trên một chiều nhất định Một gói tin dù trong bất cứ mô hình như thể nào cũng chỉ qua 2 router là đến được đích
Tuy nhiên khi kích thước mạng tăng lên, vấn đề băng thông bị chia sẻ và các bus liên kết trở nên vô cùng phức tạp Có thể nhìn thấy rằng mô hình bus liên kết này không phù hợp khi cứ tăng kích thước của NoC
Như vậy qua phân tích có thể thấy được những tồn tại và thuận lợi của các mô hình NoC Việc tiếp cận và lựa chọn các phương pháp, mô hình, kỹ thuật trong một NoC được xem sét kỹ lưỡng
Các nghiên cứu về router pipeline
Trong mục này, cơ chế hoạt động của một router được thảo luận Qua đó đi sâu phân tích về hiểu quả trong độ trễ của router và các phương pháp khắc phục cũng như hướng tiếp cận của đề tài
2.3.1 Cơ chế hoạt động của router thông thường trong mô hình lưới 2D
Như đã giới thiệu trên, trên mỗi router được kết nối với một đơn vị xử lý hay IPs Các đơn vị xử lý và IPs này hoạt động theo các clock khác nhau
Chính điều này làm cho việc đồng bộ hoạt động giữa các router trở nên khó khăn Trong mô hình NoC với kỹ thuật chuyển mạch mạch, các router hoạt động bất đồng bộ Do đó, vấn đề về đồng bộ giữa các router được giải quyết
Tuy nhiên trong mô hình chuyển mạch mạch, việc truyền dẫn các gói dữ liệu lớn (dữ liệu hình ảnh và âm thanh) bị hạn chế rất nhiều Mặt khác tính chất bất đồng bộ của router hạn chế việc áp dụng cơ chế điều khiển luồng Chỉ một số ít cơ chế điều khiển luồng được chấp nhận làm độ trễ trong truyền dẫn khó có thể cải thiện được
Luận văn đặt ra hướng tiếp cận mô hình NoC đồng bộ Các router hoạt động đồng bộ theo nguồn clock cố định Một gói dữ liệu mà truyền từ ngõ vào để đến được ngõ ra cần một số chu kỳ clock cụ thể Sau đây một mô hình router cơ bản của lưới 2D được giới thiệu
Hình 2.6 Cấu tạo cơ bản router hệ thống NoC đồng bộ đa xung clock [7]
Xét một mô hình NoC như hình 2.6 [7] với những đặc tính kỹ thuật sau
Kỹ thuật chuyển mạch : Chuyển mạch gói
Cơ chế điều khiển luồng : Wormhole Routing
Sử dụng kênh ảo Định tuyến : Định tuyến nguồn
Dựa vào những đặc điểm trên, cơ chế hoạt động của router cho khung dữ liệu được mô tả dựa trên hình 2.7 [7]
Hình 2.7 Các trạng thái cơ bản của gói dữ liệu đi qua một router [7]
BW (buffer write): Khung đến từ một router khác đi đến ngõ vào của router và được ghi lên buffer
RC (routing compulation): Dựa vào bit đặc trưng của khung, router tính toán ngõ ra tương ứng của khung này (hướng Đông, Tây, Nam hoặc Bắc)
VA (virtual channel allocation): Sau khi biết được ngõ ra, router tính toán khung này sẽ chiếm kênh ảo nào trên ngõ ra đã quyết định ở bước RC
SA (switch location): Sau VA, router sẽ đẩy khung từ buffer của ngõ vào đến buffer ngõ ra tương ứng với kênh ảo được chọn
ST (switch traversal): Sau SA, khung đợi cho đến khi nó được chọn để đẩy ra ngoài Khung này sẽ được đưa đến Crossbar
LT (link traversal): Cuối cùng khung được đưa ra ngoài và truyền đi đến một router kế tiếp
Như vậy có 6 trạng thái cơ bản mà một khung phải trải qua khi đi qua một router Điều này có nghĩa một khung sẽ mất 6 xung clock để được truyền đi tiếp ở các router trung gian Quá trình trên tạo ra độ trễ lớn khi các khung đi qua nhiều router trung gian Để khắc phục điều này, một trong những giải pháp được đưa ra là cơ chế pipeline cho router
2.3.2 Cơ chế hoạt động của router pipeline trong mô hình lưới 2D
Cùng với cấu tạo router của hình 2.6 nhưng được áp dụng cơ chế pipeline, các trạng thái mà khung dữ liệu sẽ đi qua như hình 2.8 [7]
Hình 2.8 Các trạng thái hoạt động pipeline của router [7]
Dựa vào cơ chế pipeline, các trạng thái được làm liên tục, chỉ khung đầu tốn 6 cycle, các khung sau đó chỉ tốn 1 cycle Bên cạnh đó, một số trạng thái được bỏ qua do khung đầu đã được phân tích và định tuyến trước đó
Tuy nhiên khi gói dữ liệu đi qua nhiều router trung gian, vấn đề làm sao để cải thiện thêm nữa về độ trễ ở mỗi router trung gian vẫn được tìm hiểu Thêm một phương pháp khác nhằm cải tiến độ trễ trên mỗi router trung gian được giới thiệu
2.3.3 Mô hình phân xử dữ liệu theo cơ chế “Look Ahead”
Một trong những phương pháp nhằm cải tạo độ trễ gói dữ liệu qua các router trung gian được thảo luận là cơ chế Look Ahead Hình 2.9 [18] đã đưa ra mô hình lưới 2D với sự hổ trợ của kiến trúc Look Ahead
Dựa vào mô hình 2.10, có sự khác biệt so với mô hình dạng lưới 2D thông thường Mỗi 4 router được phân thành một nhóm Tương đương mỗi nhóm có một khối LA (Local Arbitrate) điều khiển Xét một gói dữ liệu đi từ router 0 đến router 15, dựa vào cấu trúc của khối LA, trình tự truyền gói dữ liệu được mô tả
Khi IP của một router 0 truyền dữ liệu vào router và mong muốn chuyển dữ liệu này đến lõi xử lý của router 15, đầu tiên thông tin của khung (RI) được phân tích và truyền đến khối LA Khi nhận được RI từ router, LA sẽ phân tích và thiết lập đường đi của gói dữ liệu trên 3 router còn lại mà nó quản lý Đồng thời nó cũng gửi thông tin này đến các LA khác Khi các LA khác nhận thông tin từ LA quản lý router muốn chuyển dữ liệu, căn cứ tài nguyên đang sử dụng của các router, các LA quyết định đường đi của của gói dữ liệu
Hình 2.9 Mô hình NoC 8x8 với cơ chế “look ahead” [18]
Nói tóm lại trước khi gói dữ liệu được truyền đi, một đường truyền được thiết lập từ trước Chính sự thiết lập này cho phép gói dữ liệu bỏ qua những trạng thái trong những router trung gian giúp giảm độ trễ khi gói dữ liệu đi qua các router trung gian này
Trong hình 2.10, 2.11 và 2.12 [18], khi LA thiết lập xong đường truyền, gói dữ liệu chỉ mất một cycle để đi qua router trung gian sau đó Khi phân tích về độ trễ so với một cấu trúc router thông thường, kết quả được thể hiện ở biểu đồ cột hình 2.12 [18]
Hình 2.10 Cấu trúc tổng quát khối LA và Switch của Router [18]
Ta thấy trong trường hợp tốt nhất nghĩa là truyền dẫn trong mạng ở mật độ thấp, độ trễ được giảm đi một lượng đáng kế Tuy nhiên, mô hình này cũng dẫn đến một số vấn đề như sau
Khi mật độ truyền dẫn tăng cao, việc phải thông qua các LA làm độ trễ không những giảm mà còn có phần tăng cao một ít so với mô hình thông thường
Hình 2.11 Mô tả độ trễ khi qua các router trung gian của gói dữ liệu [18]
Hình 2.12 Biểu đồ tương quan giữa mô hình “look ahead” và mô hình NoC thông thường cho lưới 2D [18]
PHƯƠNG HƯỚNG GIẢI QUYẾT VẤN ĐỀ
Mô hình router mong muốn
Đối với một router bình thường trong mô hình lưới 2D, hình 2.9 đã mô tả 6 trạng thái tương ứng 6 chu kỳ clock mà khung dữ liệu phải trải qua Với cấu tạo router mong muốn mà đề tài tiếp cận Khi khung dữ liệu đi qua các router, số trạng thái sẽ giảm đi mà không làm ảnh hưởng đến chất lượng của đường truyền Điều này giúp cho toàn bộ gói dữ liệu đi nhanh hơn khi qua các router trung gian
Mô hình kiến trúc router cũng được hỗ trợ cơ chế pipeline nhằm tăng tốc quá trình truyền nhận dữ liệu
3.1.1 Mô hình trạng thái cho khung dữ liệu Đối với kiến trúc router mà đề tài tiếp cận, khi một khung dữ liệu được truyền vào router, khung dữ liệu này sẽ chỉ tốn 3 chu kỳ xung clock tương ứng 3 trạng thái để đi ra khỏi router để đến một router khác như hình 3.1
Header flit Setup Lookfor Forward Body/tail flit Setup Lookfor Forward
Hình 3.1 Mô hình trạng thái cho router bypass
Setup : Router tiếp nhận khung dữ liệu và mong muốn cấp phát một kênh ảo cho khung dữ liệu này
Lookfor: Router nhận được mong muốn cấp phát kênh ảo từ trạng thái Setup và thiết lập kênh ảo cho khung dữ liệu yêu cầu
Forward: Khung dữ liệu được truyền đến ngõ ra và sẵn sàng chuyển đi đến router khác
3.1.2 Mô hình kiến trúc router
Do đặc tính router chỉ có 3 trạng thái và hỗ trợ cơ chế pipeline nên kiến trúc tổng quát của router được mô tả bởi các thành phần như hình 3.2
Các FIFO lưu trữ tạm dữ liệu ngõ vào
Khối DataPath mô tả hướng đi của khung dữ liệu từ FIFO ngõ vào đến
Khối Control điều khiển các bộ mux trong khối DataPath nhằm hướng các khung dữ liệu đi đúng theo hướng mong muốn
Khối FIFO lưu trữ tạm dữ liệu ngõ ra
Hình 3.2 Cấu trúc tổng quan router mong muốn
Cấu trúc gói gói dữ liệu và giao diện bus
Đặc tính gói dữ liệu và giao diện bus phụ thuộc vào số kênh ảo mà router muốn hỗ trợ Trong kiến trúc router mà luận văn tiếp cận hỗ trợ 2 kênh ảo trên mỗi ngõ vào/ra Mỗi kênh ảo cần một cặp chân điều khiển ANS/REQ tương ứng Do đó cần 2 cặp ANS/REQ cho mỗi ngõ vào/ra tức là 4 chân cho mỗi ngõ vào/ra của router (Chi tiết về giao thức ANS/REQ được giới thiệu chi tiết trong chương 4)
Gói dữ liệu gồm 14 bit có cấu trúc khác nhau theo từng khung (header - body - tail) như hình 3.3 Header flit, Body flit and Tail flit được nhận biết bởi hai bit đầu mang giá trị 00, 01 và 10 4 bit kế tiếp định vị trí router đích trên trục Ox/Oy
8 bit còn lại trên khung mang dữ liệu cần truyền
00 Xd-2bit Yd-2bit Data - 8 bit 01 Xd-2bit Yd-2bit Data - 8bit 10 Xd-2bit Yd-2bit Data - 8bit
Hình 3.3 Phân loại các khung dữ liệu
Như vậy tổng số chân trên một ngõ vào/ra là 18 bit bao gồm mỗi khung 14 bit và 2 cặp ANS/REQ cho 2 kênh ảo.
Tóm tắt cấu hình router và những đặc tính kỹ thuật
Dựa trên những đề xuất đã nói trên, sau đây sẽ là những tóm tắt chi tiết về khối router mà đề tài sẽ tiếp cận
Mô hình NoC lưới 2D (NoC 3x3)
Mô hình đồng bộ clock đa chu kỳ
Kỹ thuật chuyển mạch: Chuyển mạch gói kết hợp kênh ảo (Wormhold Roting & Virtual Channel) Điều khiển luồng: ANS/REQ
Thủ tục định tuyến : Định tuyến nguồn
Cấu trúc dữ liệu: Mỗi khung có 14 bit (6 bit mã hóa và 8 bit dữ liệu)
Cấu trúc router: Có 10 cổng chia làm 5 cặp vào ra 4 cặp cho 4 hướng đông, tây, nam, bắc liên kết với các router khác Cặp còn lại giao tiếp với IP tương ứng.
Mô hình đánh giá hiệu quả của kiến trúc router
Dựa trên những đặc điểm kiến trúc router mà đề tài tiếp cận, để đánh giá được hiệu quả của router, mô hình kiểm tra được thiết lập như hình 3.4
Hình 3.4 Mô hình kiểm tra thiết kế
Khối Design là các liên kết router cho trước (NoC 3x3 hoặc một router đơn) như hình 3.5 và hình 3.6
Hình 3.5 Mô hình kiểm tra router đơn
Hình 3.6 Mô hình kiểm tra NoC 3x3
Khối InputAdaptive được thiết kế nhằm cung cấp các gói dữ liệu cần truyền vào khối “Design” Khối này đóng vai trò như các NI, cung cấp dữ liệu đã được đóng gói sẵn đi vào ngõ vào của router Khối InputAdaptive được kích bởi tín hiệu cung cấp từ khối Testbench
Khối OutputAdaptive được thiết kế nhằm đánh giá gói dữ liệu được cung cấp bởi khối InputAdaptive sau khi đi qua mô hình NoC trong khối Design
XÂY DỰNG KIẾN TRÚC ROUTER
Chọn lựa mô hình mạng
Mục tiêu của luận văn là xây dựng một cấu hình NoC 3x3 sao cho mỗi khung dữ liệu chỉ mất ba chu kỳ xung clock để đi qua một router Chính vì vậy, việc lựa chọn mô hình (topology) là hết sức quan trọng Mô hình mạng được lựa chọn thực hiện cần đảm bảo ràng buộc về công nghệ chế tạo cũng như thuận lợi cho việc cài đặt các giải thuật định tuyến và cơ chế điều khiển luồng
Như phân tích ở chương 1 và chương 2, mô hình mạng lưới 2D được xem là mô hình mạng cơ bản để phát triển lên các mô hình mạng phức tạp khác Chính vì lẽ đó, mô hình mạng lưới 2D đơn giản được chọn lựa nhằm kiểm tra và đánh giá ý tưởng như hình 4.1
Công việc tiếp theo là quyết định số nút mạng là bao nhiêu? Để đơn giản cho thiết kế, số nút mạng được giới hạn vừa đủ để đánh giá tất cả các trường hợp có thể xảy ra của mô hình thiết kế Luận văn lựa chọn xây dựng mô hình 9 nút mạng như hình 4.1 Trong mô hình mạng này, tất cả các trường hợp tranh chấp mạng đều có thể được giả lập Điều này giúp cho việc kiểm tra mô hình được chính xác.
Lựa chọn giải thuật định tuyến
Giải thuật định tuyến đơn giản được ưa thích trong mô hình lưới 2D là giải thuật định tuyến XY Tương tự, đề tài luận văn cũng sử dụng giải thuật định tuyến này áp dụng cho mô hình NoC 3x3 nhằm mục đích đơn giản hóa trong vấn đề thiết kế và kiểm định hiệu năng của mô hình
Như đã thấy trong hình 4.1, các router trong mạng NoC 3x3 được liên kết với nhau thông qua các ngõ vào và ngõ ra Ngoài liên kết với các router khác, mỗi router còn liên kết với một IP Tuy nhiên trong mô hình kiểm tra, các IP được thay thế bằng các InputAdaptive và OuputAdaptive đã đề cập ở chương 3 Các router được đánh số từ 0000 cho đến 1010 tương ứng 9 router trong mạng NoC 3x3 Hai chữ số đầu của số liệu này thể hiện vị trí của router trên trục Ox Hai chữ số tiếp theo của số liệu thể hiện vị trí của router trên trục Oy Số liệu này sẽ được giới thiệu tiếp ở phần sau khi nói về cấu trúc dữ liệu vì chúng giúp các router biết cần chuyển dữ liệu đến router kế cận nào là chính xác Ví dụ cho thấy router_0100 cho biết ở vị trị 1 trên trục Ox và vị trí 0 trên trục Oy Do 2 chữ số có thể mã hóa 4 trường hợp nên mô hình trên có thể mở rộng tối đa mạng NoC 4x4 (16 routers)
Khi muốn mở rộng mô hình lên NoC nxn với giải thuật này cần nhiều bit hơn để mã hóa cho từng vị trí của các router (nút mạng)
Theo như giải thuật định tuyến XY, khi các gói dữ liệu muốn đi từ nút mạng này đến nút mạng khác, gói dữ liệu sẽ được định tuyến truyền đi theo phương Ox trước Khi gói dữ liệu đến được router có vị trí theo phương Ox trùng với ví trí phương Ox mà gói dữ liệu mong muốn, gói dữ liệu sẽ được định tuyến để được truyền đi theo phương Oy
Hình 4.2 Gói dữ liệu truyền theo giải thuật định tuyến XY
Hình 4.2 mô tả hai đường truyền riêng biệt tuân theo định tuyến XY đã nói trên: Đường tryền màu đỏ và đường truyền màu xanh Hình vẽ 4.2 cho thấy trên đường truyền thứ nhất (màu đỏ), gói dữ liệu đi theo trình tự: IP nguồn router_0010 router_0110 router_1010 router1001 IP đích Gói dữ liệu trên đường truyền thứ hai (màu xanh) đi theo trình tự: IP nguồn router_0101 router_0001 router_0000 IP đích.
Xây dựng cơ chế điều khiển luồng
Cơ chế điều khiển luồng đảm bảo việc cấp phát các tài nguyên sao cho các gói dữ liệu có thể đi qua mạng trên chip từ IP nguồn đến IP đích Trong luận văn này sẽ sử dụng cơ chế Wormhole Routing Trong cơ chế này gói dữ liệu được phân chia thành nhiều khung dữ liệu nhỏ Đối với điều khiển luồng ứng dụng cho mạng trên chip, gói dữ liệu là đơn vị cơ bản để thực hiện việc định tuyến và sắp xếp thứ tự, trong khi đó các khung dữ liệu là đơn vị cơ bản để thực hiện việc cấp phát băng thông và bộ đệm Đặc điểm của cơ chế Wormhole Routing là việc cấp phát băng thông và bộ đệm đều được thực hiện với đơn vị dữ liệu là khung, đó là lý do mà cơ chế này giảm thiểu được thời gian trễ và tận dụng được tài nguyên mạng
Tuy nhiên, bên cạnh những ưu điểm thì nhược điểm của Wormhole Routing là khả năng nghẽn mạng có thể xảy ra nếu một khung dữ liệu không được cấp phát tài nguyên (bộ đệm), và do đó không được chuyển đi như mong muốn Điều này dẫn đến treo toàn bộ kênh truyền tại nút mạng đó Để khắc phục và giảm khả năng tắc nghẽn, việc áp dụng cơ chế điều khiển luồng kết hợp kỹ thuật kênh ảo đã được kiểm chứng kết quả
Mô hình kênh ảo giúp làm giảm khả năng tắc nghẽn mạng trên chip Càng nhiều kênh ảo được hỗ trợ, khả năng tắc nghẽn mạng càng giảm xuống Tuy nhiên việc tăng số kênh ảo cũng làm tăng công việc khối xử lý bên trong router Do đó, luận văn chỉ thực hiện mô hình được hỗ trợ với 2 kênh ảo nhằm hạn chế diện tích cũng như tính phức tạp của router mong muốn nhưng vẫn đảm bảo được yêu cầu đề ra ban đầu Như vậy, có thể tóm tắt các yếu tố cần thiết để thực hiện mô hình NoC mong muốn
Cơ chế định tuyến XY Điều khiển luồng Wormhole Routing kết hợp kỹ thuật kênh ảo
Mô hình kiểm định NoC 3x3.
Mô hình kiến trúc bên ngoài router
Mô hình bên ngoài của router được mô tả như trong hình 4.3, một router gồm 5 ngõ vào và 5 ngõ ra tạo thành 5 cặp ngõ vào ra cho các hướng khác nhau Bốn hướng đông, tây, nam và bắc liên kết với các ngõ vào ra khác của các router kế cận trong mạng NoC 3x3 Hướng còn lại cho liên kết với IP tương ứng của router đó Trong mô hình router này, số chân cho mỗi ngỏ vào và ngõ ra là như nhau (18 chân) Mô tả chi tiết các chân được thực hiện ở phần sau
Như đã nói trên, ngõ vào của router này sẽ là ngõ ra tương ứng của router kế cận Hình 4.4 thể hiện sự kết nối dữ liệu của hai router gần nhau
Hình 4.3 Kiến trúc bên ngoài của router đơn
Dựa trên hình 4.4, các ngõ vào/ra được chia thành hai nhóm chính Nhóm thứ nhất gồm các dây điều khiển (4 dây) Các dây này giữ vai trò điều khiển liên lạc giữa hai router Nhóm thứ hai gồm 14 dây là các đường chứa dữ liệu Lý do chọn số lượng dây cho mỗi nhóm được trình bày chi tiết khi đi vào bên trong cấu trúc của router
Hình 4.4 Giao diện liên kết giữa hai router
Mô hình kiến trúc bên trong router
4.5.1 Giao diện một liên kết truyền nhận giữa hai router Để dễ dàng mô tả các kết nối tín hiệu bên trong một router, một liên kết truyền nhận giữa hai router được phân tích sâu hơn
Hình 4.5 Kiến trúc bên ngoài của router đơn
Giữa hai router có hai liên kết truyền nhận, ngõ ra của router này là ngõ vào của router liên kết Hình 4.5 phân tích một liên kết truyền nhận của hai router Để gói dữ liệu được truyền nhận giữa hai router, ngoài đường dữ liệu (14 bit) còn cần 4 đường điều khiển (2 tín hiệu req và 2 tín hiệu ans) Các đường điều khiển này giúp phân xử gói dữ liệu biết được lấy từ nguồn Fifo nào của router truyền và nhận vào ở Fifo nào của router đích
Như đã nói trên, kiến trúc router được hỗ trợ bởi kỹ thuật kênh ảo Số lượng kênh ảo được hỗ trợ là 2 cho mỗi ngõ vào/ra Với số lượng kênh ảo là 2, ở mỗi ngõ vào/ra của router sẽ có hai bộ đệm (2 Fifo) chứa dữ liệu Tại mỗi thời điểm truyền nhận dữ liệu, chỉ một bộ đệm được xử lý Mỗi bộ đệm cần hai tín hiệu điều khiển (ans và req)
Như vậy với mỗi một liên kết truyền nhận giữa hai router có hỗ trợ hai kênh ảo cần 2 cặp tín hiệu ans và req Mỗi cặp tín hiệu này phục vụ cho một kênh ảo nhằm giúp hai router hiểu được gói dữ liệu được truyền và nhận bởi những Fifo của cùng một kênh ảo
Như vậy cứ mỗi liên kết truyền nhận (vào/ra) giữa hai router, kiến trúc router được thiết kế cần 18 đường tín hiệu 14 đường tín hiệu cho dữ liệu và 4 đường tín hiệu cho điều khiển
Do đặc tính cấu trúc trên và sự hỗ trợ 2 kênh ảo cho mỗi ngõ vào/ra, mỗi router có giao diện như sau
5 luồng (bus) dữ liệu vào data_in, mỗi luồng dữ liệu 14 bit
5 luồng (bus) dữ liệu ra data_out, mỗi luồng dữ liệu 14 bit
10 đường điều khiển ans ngõ vào điều khiển dữ liệu vào
10 đường điều khiển req ngõ vào điều khiển dữ liệu vào
10 đường điều khiển ans ngõ ra điều khiển dữ liệu ra
10 đường điều khiển req ngõ ra điều khiển dữ liệu ra
Khảo sát giao thức req/ans cho một quá trình truyền nhận dữ liệu được thể hiện trong hình 4.6
Giao thức req/ans được sử dụng xuyên suốt trong quá trình giao tiếp giữa các router với nhau trong mạng NoC cũng như giao tiếp giữa các khối bên trong router
Liên kết truyền nhận giữa hai router (Liên kết giữa khối
ContrOutFifoOut của router truyền với khối ControInFifoIn của router nhận)
Liên kết giữa khối ContrOutFifoIn với các khối điều khiển khác trong router
Hình 4.6 Giao thức req/ans
Khi một khung dữ liệu cần truyền, khối điều khiển ngõ ra ContrOutFifoIn phát đi tín hiệu req tại cạnh lên của xung clock Ở khối điều khiển ngõ nhận, khi ContrInFifoOut bắt được sự thay đổi của tín hiệu req, nếu đã sẵn sàng nhận dữ liệu, khối này truyền ngược lại tín hiệu ans tích cực cạnh lên ngay sau đó
Khối khiều khiển ngõ phát nhận tín hiệu phản hồi ans tích cực cạnh lên sẽ truyền dữ liệu đi ở cạnh xuống xung clock kế đó
Tại cạnh lên xung clock kế tiếp, một thiết lập truyền nhận kế tiếp được thực hiện bởi việc thay đổi mức logic của tín hiệu req Cũng chính tại thời điểm này dữ liệu truyền ở thiết lập truyền nhận trước đó được ghi vào ở phía nhận dữ liệu
Như vậy có thể rút ra một số đặc điểm chính của giao thức như sau
Tín hiệu yêu cầu truyền dữ liệu tích cực theo cạnh (lên/xuống)
Tín hiệu báo chấp nhận truyền dữ liệu tích cực theo mức (mức 1)
Thời gian thiết lập, truyền và nhận dữ liệu chỉ tốn một chu kỳ xung clock Chính đặc tính này của giao thức đã góp phần làm giảm đáng thời gian trì hoãn giao tiếp bên trong và bên ngoài router
4.5.3 Cấu trúc khối bên trong của router
Mô hình tổng quan được giới thiệu ở hình 3.2 trong chương 3 cho cấu trúc bên trong router được chi tiết hóa trong hình 4.7 Cấu trúc khối bên trong cho biết các thông tin tổng quan của router như sau
Các đường dữ liệu ngõ vào (14 bit) được truyền từ các router liên kết đến các bộ đệm ngõ vào (FifoIn) Có 5 ngõ vào ở năm hướng khác nhau Mỗi hướng hỗ trợ hai kênh ảo nên tổng cộng có 10 khối FifoIn
Hình 4.7 Mô hình khối bên trong router
Sau khi các gói dữ liệu ngõ vào được lưu trên bộ đệm ngõ vào, chúng sẽ được tiếp tục truyền đến khối Data Tại đây, các hướng đi của gói dữ liệu được phân xử bởi các tín hiệu từ khối Control nhằm giúp chúng đến đúng hướng và đến các bộ đệm ngõ ra một cách chính xác
Khối Data bao gồm hai khối DataPath và ReadEnaCollect o Khối DataPath giúp định hướng gói dữ liệu đi đến đúng bộ đệm ngõ ra o Khối ReadEnaCollect giúp chuyển các tín hiệu điều khiển cho phép đọc đến các bộ đệm ngõ vào để lấy các dữ liệu được lưu trữ trên nó
Các tín hiệu điều khiển các đường dữ liệu ở ngõ vào/ra, ở bên trong router nhận được từ khối Control Khối Controlbao gồm 5 khối nhỏ với các chức năng sau o Khối ContrDataPath: Khối này gửi các tín hiệu đến khối
DataPath điều khiển các luồng dữ liệu đi đúng hướng đến các bộ đệm ngõ ra Do có 5 ngõ ra ở 5 hướng khác nhau nên sẽ có 5 khối
ContrDataPath Mỗi khối đảm nhiệm mỗi hướng o Khối ContrInFifoIn: Khối này nhận các tín hiệu điều khiển ans và req từ các router liên kết nhằm điều khiển quá trình nhận luồng dữ liệu vào từ các router liên kết khác Do có 10 khối FifoIn nên sẽ có tương ứng 10 khối ContrInFifoIn o Khối ContrOutFifoIn: Khối này điều khiển việc cho phép đọc ra các dữ liệu bên trong bộ đệm ngõ vào để truyền đến khối
MÔ PHỎNG KIẾN TRÚC ROUTER & MÔ HÌNH NOC 3x3
Mô hình mô phỏng
Để xác định rõ mô hình mô phỏng cho thiết kế, trước tiên luồng thiết kế vi mạch được xem xét
Hình 5.1 Luồng thiết kế chip cơ bản
Hình 5.1 mô tả mô hình khái quát cho luồng thiết kế chip hiện nay Dựa trên các bảng tóm tắt điều tra [1] về lĩnh vực NoC, mô hình NoC không nằm ngoài khuôn mẫu này
System level design: Đầu tiên để làm rõ các nghi vấn và kiểm định các khía cạnh của bản đặc tả, mô hình NoC được thiết kế dựa bằng ngôn ngữ
C++ với sự hỗ trợ của thư viện systemC Với khả năng linh hoạt của ngôn ngữ C++, các giải thuật và đặc tính của NoC được mô tả khá hoàn chỉnh nhằm đúc kết các kết quả về hiệu năng và tính khả thi của cấu trúc NoC mong muốn Sau khi đã thống nhất những yêu cầu và kết quả mong muốn của mô hình NoC, bản đặc tả cuối cùng được đưa ra (golden specification) để thiết kế ở mức RTL
RTL design: Dựa trên bảng đặc tả của bước thiết kế trước đó (golden specification), cấp độ RTL được thiết kế để mô tả lại cấu trúc đã được chi tiết hóa Sau khi hoàn tất ở cấp độ RTL, thiết kế được kiểm tra sao cho thỏa mãn các chức năng mà bản đặc tả thiết kế (golden specification) đã đưa ra
Sau khi hoàn tất thiết kế ở cấp độ RTL, thiết kế được tổng hợp qua dạng
Netlist Verification: Netlist sau khi được tổng hợp từ mã RTL được kiểm tra và đánh giá những yêu cầu về thời gian thực và diện tích Nếu các điều kiện này được thỏa mãn Netlist được thực hiện bước place & route
Place & route: Netlist được sắp xếp lại và đánh giá lại về timing và diện tích
Vì thời gian dành cho đề tài hạn chế cũng như mục đích của để tài về việc làm rõ tính khả thi khi giảm số chu kì xung clock của gói dữ liệu khi đi qua router Đề tài bỏ qua bước thiết kế ở cấp độ hệ thống (system level design), từ bản đặc tả và chi tiết giải thuật giao tiếp như đã nếu ở chương 4, cấp độ RTL được thiết kế [Phụ lục 1] Đề tài lựa chọn ngôn ngữ Verilog để hiện thực thiết kế ở mức độ RTL Chi tiết về ngôn ngữ Verilog được giới thiệu ở mục 5.2
Sau khi mã Verilog được thiết kế, tiến trình kiểm tra được tiến hành Mô hình kiểm tra, các trường hợp kiểm tra cũng như công cụ để kiểm tra được thể hiện chi tiết ở mục 5.3 và 5.4
Việc tổng hợp và kiểm tra ở cấp độ Netlist cũng sẽ được bỏ qua do yếu tố cơ sở vật chất Thay vào đó, cấp độ RTL sẽ được tổng hợp trên FPGA Thông qua
FPGA, diện tích và sự hao tốn tài nguyên sẽ được thể hiện thay vì tổng hợp ở cấp độ Netlist với thư viện cho trước Việc kiểm định hiệu năng của thiết kế trên FPGA sẽ được thực hiện ở chương 6
Hình vẽ 5.2 sau sẽ tóm tắt công việc mô phỏng thiết kế trong đề tài
Hình 5.2 Mô hình kiểm tra thiết kế NoC 3x3
Ngôn ngữ mô phỏng
Verilog là một trong hai ngôn ngữ mô tả phần cứng chính (gồm VHDL và Verilog HDL) được người thiết kế phần cứng sử dụng để mô tả, thiết kế các hệ thống số, ví dụ như máy tính hay linh kiện điện tử
Verilog dễ học và dễ sử dụng hơn VHDL Verilog được chuẩn hoá theo chuẩn
IEEE vào năm 1995 và 2001 Verilog rất giống ngôn ngữ C và được giới chuyên môn nghiên cứu, sử dụng nhiều
Verilog HDL có thể được sử dụng để thiết kế hệ thống số ở nhiều mức khác nhau, ví dụ ở mức cao như các mô hình đặc trưng đến các mức thấp như mô hình bố trí dây, điện trở, transistor trên một mạch tích hợp; mô tả các cổng logic, flip_flop trong hệ thống số; mô tả thanh ghi và sự di chuyển dữ liệu giữa các thanh ghi (RTL - Register Transfer Level)
Hệ thống số là một hệ thống phức tạp bậc cao Ở cấp độ chi tiết nhất, chúng có thể bao gồm hàng nghìn thành phần như: các transistor hoặc các cổng logic, cho nên với hệ thống số lớn, thiết kế ở mức cổng không còn sử dụng nữa Qua nhiều thập kỷ, giản đồ logic của các thiết kế logic cũng không còn nhiều nữa Ngày nay, sự phức tạp của phần cứng đã tăng lên ở một mức độ mà giản đồ của cổng logic hầu như vô ích khi nó chỉ biểu diễn một mạng lưới phức tạp các liên kết không theo chức năng của thiết kế Từ những năm 1970, các kỹ sư điện và máy tính đổi hướng theo ngôn ngữ mô tả phần cứng (HDL) Hai ngôn ngữ mô tả phần cứng nổi bật trong kỹ thuật là Verilog và VHDL nhưng những nhà thiết kế công nghệ thích sử dụng Verilog hơn
Verilog cho phép các nhà thiết kế logic thiết kế và mô tả hệ thống số ở nhiều mức độ khác nhau và có sự hỗ trợ từ các công cụ thiết kế bằng máy tính để giúp cho việc xử lý thiết kế ở những mức độ khác nhau
Cách sử dụng cơ bản của Verilog HDL trong thiết kế mạch tích hợp là mô phỏng thiết kế và tạo mẫu trên FPGA trước khi chuyển sang sản xuất Mục tiêu của Verilog không phải tạo ra những chip VLSI mà sử dụng Verilog để mô tả một cách chính xác chức năng của bất kỳ hệ thống số nào và nạp chương trình tạo mẫu lên FPGA, ví dụ như máy tính, các bộ vi xử lý,… tuy tốc độ chậm và lãng phí diện tích hơn Những thiết kế mức thấp hơn trong Verilog được thực hiện trên VLSI để đạt đến tốc độ cực đại và có diện tích cực tiểu Tuy nhiên sử dụng thiết kế dùng Verilog trên FPGA sẽ tiết kiệm chi phí và thời gian thiết kế.
Công cụ mô phỏng
Như đã nói ở mục 5.1, sau khi mô hình NoC được đặc tả bởi ngôn ngữ Verilog ở cấp độ RTL, thiết kế sẽ được kiểm tra về mặt chức năng để đảm bảo mô hình NoC hoạt động đúng theo tiêu chí đề ra Ở cấp độ kiểm tra này, bộ công cụ
ModelSim của công ty Mentor được sử dụng để hỗ trợ trong quá trình mô phỏng
Mô hình cũng như các trường hợp kiểm tra được thể hiện ở mục 5.4 Để kiểm tra và đánh giá hiệu quả của mạng NoC 3x3, đầu tiên router đơn lẽ được kiểm tra để đảm bảo chất lượng truyền tải của một nút mạng Trong tất cả các trường hợp kiểm tra một router đơn, chỉ một gói dữ liệu được truyền Các trường hợp truyền nhiều gói dữ liệu được thực hiện kiểm tra trên mô hình NoC 3x3.
Kiểm tra và đánh giá kết quả mô phỏng trên một router đơn
Ở mô hình kiểm tra một router đơn, chỉ một gói dữ liệu được gửi qua để kiểm tra router Số khung dữ liệu trong gói dữ liệu và các luồng dữ liệu thay đổi theo từng trường hợp Khi các trường hợp kênh truyền chia sẻ đường truyền, kỹ thuật kênh ảo được sử dụng và hai khối OutputAdaptive sẽ được thiết kế để nhận dữ liệu từ một đường truyền ra duy nhất (5.4.2, 5.4.3, 5.4.4)
Do kiến trúc router có hỗ trợ hai kênh ảo ở mỗi ngõ vào/ra nên router có thể xử lý nhiều luồng dữ liệu đến từ các hướng khác nhau Dựa trên số lượng luồng dữ liệu đến một router đơn có thể phân chia các trường hợp sau đây
5.4.1 Router đơn nhận một luồng dữ liệu
Trường hợp router nhận duy nhất một luồng dữ liệu được thể hiện trong hình 5.3
Dữ liệu truyền từ West East: Hình 5.3.a
Dữ liệu truyền từ West South: Hình 5.3.b
Dữ liệu truyền từ West North: Hình 5.3.c
Dữ liệu truyền từ West IP: Hình 5.3.d
Hình 5.3 Các trường hợp kiểm tra router đơn nhận một luồng dữ liệu
Hình 5.4 cho thấy kết quả chạy mô phỏng quá trình truyền gói dữ liệu từ West đến East(Hình 5.3 a) Khi chân rst_n không còn tích cực (time = 150 ns), sau 5 chu kỳ xung clock, khung đầu tiên được ghi vào khối OutputAdaptive
Chu kỳ thứ nhất: Thiết lập quá trình truyền nhận giữa InputAdaptive và router
Chu kỳ thứ hai: Dữ liệu được ghi vào router
Chu kỳ thứ 3: Dữ liệu được giải mã để truyền đến ngõ ra của router
Chu kỳ thứ 4: Dữ liệu được ghi vào ngõ ra của router đồng thời thiết lập đường truyền đến khối OutputAdaptive
Chu kỳ thứ 5: Tại cạnh xuống xung clock của chu kỳ này dữ liệu được đọc ra Tại cạnh lên của xung clock (cuối chu kỳ), dữ liệu được ghi vào khối OutputAdaptive
Như vây, tính từ lúc dữ liệu được ghi vào router và đọc ra khỏi router tốn 3 chu kỳ từ chu kỳ thư 2 đến chu kỳ thứ 4 Quá trình tạo kết nối giữa InputAdaptive và router chiếm 1 cycle Quá trình tạo kết nối giữa
OutputAdaptive và router không mất thời gian Bảng 5.1, bảng 5.2, bảng 5.3 và bảng 5.4 phân tích các kết quả đạt được cho cho các trường hợp mô tả ở hình
Phân tích kết quả thu được quá trình truyền dữ liệu qua một router theo một luồng cố định cho thấy khung đầu tiên chỉ tốn 3 chu kỳ xung clock để đi qua router trung gian Nhờ cơ chế pipeline và cơ chế chuyển mạch gói, các khung dữ liệu khác trong gói dữ liệu không mất các chu kỳ xung clock dùng để thiết lập kết nối
Do đó, số chu kỳ xung clock trung bình cho một khung dữ liệu trong gói dữ liệu 48 khung là 1.1~1.15 chu kỳ Số liệu này thay đổi là do vấn đề đầy bộ nhớ các Fifo, một số chu kỳ xung clock trì hoãn để quá trình truyền được thực hiện nhằm giải phóng bộ nhớ cho các Fifo để chúng có thể nhận thêm các gói tin mới time = 100 clk = 1 rst_n = 0 top_req = 1 data_out_check = 00000000000000 time = 110 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 150 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 200 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 300 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 400 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 3 period time = 450 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 500 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 4 period time = 550 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 600 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 650 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00011000000000 ………
48 period time = 4850 clk = 1 rst_n = 1 top_req = 1 data_out_check = 10011000100111
Kết luận Tổng số khung dữ liệu : 40 khung;
Tổng số chu kỳ clock trì hoãn : 46 chu kỳ Trung bình số chu kỳ clock trì hoãn cho một khung dữ liệu: 1.15 chu kỳ/khung
Bảng 5.1 Quá trình truyền một gói dữ liệu từ West East time = 100 clk = 1 rst_n = 0 top_req = 1 data_out_check = 00000000000000 time = 110 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 150 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 200 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 300 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 400 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 3 period time = 450 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 500 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 4 period time = 550 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 600 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 650 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00100100000000 ………
45 period time = 4550 clk = 1 rst_n = 1 top_req = 1 data_out_check = 10100100100111
Kết luận Tổng số khung dữ liệu : 40 khung;
Tổng số chu kỳ clock trì hoãn : 44 chu kỳ Trung bình số chu kỳ clock trì hoãn cho một khung dữ liệu: 1.1 chu kỳ/khung
Bảng 5.2 Quá trình truyền một gói dữ liệu từ West South time = 100 clk = 1 rst_n = 0 top_req = 1 data_out_check = 00000000000000 time = 110 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 150 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 200 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 300 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 400 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 3 period time = 450 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 500 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 4 period time = 550 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 600 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 650 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00010000000000 ………
48 period time = 4850 clk = 1 rst_n = 1 top_req = 1 data_out_check = 10010000100111
Kết luận Tổng số khung dữ liệu : 40 khung
Tổng số chu kỳ clock trì hoãn : 46 chu kỳ Trung bình số chu kỳ clock trì hoãn cho một khung dữ liệu: 1.15 chu kỳ/khung
Bảng 5.3 Quá trình truyền một gói dữ liệu từ West North time = 100 clk = 1 rst_n = 0 top_req = 1 data_out_check = 00000000000000 time = 110 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 150 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 200 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 300 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 400 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 3 period time = 450 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 500 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 4 period time = 550 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 600 clk = 0 rst_n = 1 top_req = 1 data_out_check = 00000000000000 time = 650 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00010100000000 ………
48 period time = 4850 clk = 1 rst_n = 1 top_req = 1 data_out_check = 00010100100111
Kết luận Tổng số khung dữ liệu : 40 khung
Tổng số chu kỳ clock trì hoãn : 46 chu kỳ Trung bình số chu kỳ clock trì hoãn cho một khung dữ liệu: 1.15 chu kỳ/khung
Bảng 5.4 Quá trình truyền một gói dữ liệu từ West IP
5.4.2 Router đơn nhận hai luồng dữ liệu
Trường hợp router nhận hai luồng dữ liệu từ hai hướng khác nhau được thể hiện trong hình 5.8
Dữ liệu truyền từ West, IP East: Hình 5.8.a
Dữ liệu truyền từ West, IP North: Hình 5.8.b
Dữ liệu truyền từ West East, IP North: Hình 5.8.c
Bảng 5.5, bảng 5.6 và bảng 5.7 phân tích các kết quả đạt được cho cho các trường hợp mô tả ở hình 5.4 Trong trường hợp mô phỏng này, kỹ thuật kênh ảo được sử dụng cho ngõ ra của dữ liệu vì có hai luồng dữ liệu cần đi ra cùng một hướng Dựa trên kỹ thuật kênh ảo, từng khung dữ liệu của mỗi hướng sẽ được truyền ra xen kẻ nhau theo mỗi chu kỳ xung clock
Riêng trường hợp c, kỹ thuật kênh ảo không được sử dụng do hai luồng dữ liệu ra hai hướng khác nhau Trường hợp này được kiểm tra nhằm đảm bảo việc phân luồng diễn ra độc lập không phụ thuộc lẫn nhau
Hình 5.4 Các trường hợp kiểm tra router đơn nhận hai luồng dữ liệu
Phân tích kết quả thu được quá trình truyền dữ liệu qua một router theo hai luồng dữ liệu cùng một hướng (Hình 5.9 và hình 5.10) cho thấy khung đầu tiên chỉ tốn 4 chu kỳ xung clock để đi qua router trung gian, việc thêm 1 chu kỳ xung clock là do quá trình phân xử của kênh ảo nhằm phân định độ ưu tiên của của khung dữ liệu trên các FifoOut
Nhờ cơ chế pipeline và cơ chế chuyển mạch gói, các khung dữ liệu khác trong gói dữ liệu không mất các chu kỳ xung clock dùng để thiết lập kết nối
Do đó, số chu kỳ xung clock trung bình cho một khung dữ liệu là 1.23 cho 17 khung dữ liệu time = 100 clk = 1 rst_n = 0 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 time = 110 clk = 0 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 time = 150 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 time = 200 clk = 0 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 time = 300 clk = 0 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00000000000000
7 period time = 750 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00011000000000 time = 500 clk = 0 rst_n = 1 top_req =
1 data_out_check_04 = 00000000000000 data_out_check_05 = 00011000000000 8 period time = 850 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 00011011110000 data_out_check_05 = 00011000000000
22 period time = 2250 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 01011011110111 data_out_check_05 = 10011000000111 time =
1 data_out_check_04 = 01011011110111 data_out_check_05 = 10011000000111 23 period time = 2350 clk = 1 rst_n = 1 top_req =
1 data_out_check_04 = 10011011111000 data_out_check_05 = 10011000000111 Kết luận
Tổng số khung dữ liệu từ West : 8 khung Tổng số khung dữ liệu từ IP : 9 khung Tổng số chu kỳ clock trì: 21 chu kỳ Trung bình số chu kỳ clock trì hoãn cho một khung dữ liệu: 1.23
Bảng 5.5 Quá trình truyền một gói dữ liệu từ West, IP East time = 100 clk = 1 rst_n = 0 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 time =
110 clk = 0 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 time =
150 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 time =
200 clk = 0 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 1 period time = 250 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 time =
300 clk = 0 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000 2 period time = 350 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00000000000000
7 period time = 750 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00011000000000 time =
500 clk = 0 rst_n = 1 top_req = 1 data_out_check_02 = 00000000000000 data_out_check_03 = 00011000000000 8 period time = 850 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 00011011110000 data_out_check_03 = 00011000000000
22 period time = 2250 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 10011011110111 data_out_check_03 = 10011000000111 time =
2300 clk = 0 rst_n = 1 top_req = 1 data_out_check_02 = 10011011110111 data_out_check_03 = 10011000000111 23 period time = 2350 clk = 1 rst_n = 1 top_req = 1 data_out_check_02 = 10011011111000 data_out_check_03 = 10011000000111 Kết luận
HIỆN THỰC KIẾN TRÚC ROUTER TRÊN FPGA
Giới thiệu về kít DE2
Hình 6.1 Mô hình kit DE2 – Altera
Kít DE2 trong hình 6.1 là một trong những kít thực nghiệm của công ty Altera
Trên kít DE2, FPGA dòng Cyclone II được hổ trợ Luận văn không đề cập đến tất cả các tài nguyên của kít mà chỉ giới thiệu những tài nguyên mà đề tài sử dụng
Việc sử dụng và lý do sử dụng các tài nguyên này phụ thuộc vào mô hình thực nghiệm được giới thiệu ở phần sau
Các tài nguyên được sử dụng trên kít DE2 được giới thiệu trong bảng 6.1 [DE2
Led 7 đoạn: Sử dụng 3 led 7 đoạn (Hex7, Hex6, Hex5) Các led 7 đoạn tích cực mức thấp
Các công tắc chuyển mạch: Luận văn chỉ sử dụng hai công tắc chuyển mạch SW17 và SW16 SW17 cho chân rst_n của hệ thống SW16 cho chân top_req, chân này dùng để kích thích khối InputAdaptive thiết lập quá trình truyền dữ liệu với router Các công tắc chuyển mạch này tích cực mức cao
Tài nguyên Tên chân trên kít Mô Tả
CLOCK_50 PIN_N2 Nguồn xung lock
Bảng 6.1 Các tài nguyên và ngõ ra tương ứng trên kít DE2
Mô hình kiểm tra trên FPGA
Để kiểm tra router hoạt động chính xác và tường minh hơn, mô hình kiểm tra cần hổ trợ thêm một số khối kiến trúc được giới thiệu trong hình 6.2
Hình 6.2 Mô hình kiểm tra kiến trúc router trên FPGA
Theo như hình 6.3 ta có thể thấy được các đặc tả sau
SW17: Chân rst_n dùng để khởi tạo lại hệ thống về trạng thái ban đầu, rst_n tích cực mức thấp
SW16: Chân top_req dùng để kích thích khối InputAdaptve hoạt động truyền dữ liệu đến khối OutputAdaptive
CLK 50MHz: Nguồn clock trên kít trước tiên đi qua khối clk devide để làm giảm tần số nhằm giúp mắt thường có thể thấy được sự thay đổi của gói dữ liệu
Hex7: Gói dữ liệu sau khi đi ra khỏi khối InputAdaptive sẽ được lấy ra
3 bit đầu đưa tới khối Decode nhằm giải mã trước khi xuất ra các led 7 đoạn
Hex6: Tương tự Hex7 cho dữ liệu bên trong router
Hex5: Tương tự Hex7 cho dữ liệu từ router đến khối OutputApdaptive
Phân tích gói dữ liệu gồm 5 khung dữ liệu Mỗi khung dữ liệu mang giá trị lần lượt từ 0 đến 4 Các giá trị từ 0 đến 4 có thể được mã hóa bởi 3 bit Đó chính là lý do tại sao các đường dữ liệu được trích ra 3 bit cuối chuyển đến các khối Decode
Do các led 7 đoạn tích cực theo cạnh xuống, để xuất các giá trị tường mình từ 0 đến 4 ta cần bảng giải mã bảng 6.2
Giá trị Mã binary Xuất Led
Bảng 6.2 Bảng giải mã xuất ra led 7 đoạn
Thông qua phần mềm Quatus (phiên bản 11.1 sp2) của công ty Altera, mã Verilog được biên dịch và cấu hình trên FPGA CycloneII của kít DE2 thông qua đường truyền USB Sau khi đã cấu hình trên FPGA, sử dụng các SW17 và SW16 để kích thích việc truyền dẫn.
Hiện thực và đánh giá kết quả trên kít DE2
Kết quả hiện thực cho thấy kiến trúc router hoạt động ổn định theo đúng như trường hợp mô phỏng đơn giản một luồng dữ liệu hình 5.3.a Các giá trị từ 0 đến 4 lần lượt được xuất ra trên các led 7 đoạn như mong muốn Kết quả thử nghiệm trên phần cứng FPGA tuy đơn giản song đã chứng tỏ thiết kế router đã hoạt động chính xác và ổn định với những kiểm tra đơn giản ban đầu Kết quả này cũng chứng minh rằng kiến trúc router đề xuất là khả thi và có thể hiện thực đáp ứng yêu cầu thiết kế và mục tiêu đặt ra ban đầu khi thực hiện đề tài này
Do những ràng buộc về thời gian hoàn thành đề tài nên đến thời điểm này luận văn mới chỉ xây dựng thành công kiến trúc router đơn giản trên phần cứng FPGA, việc kiểm tra chức năng của mạng NoC 3x3 và các dạng mở rộng sẽ được kiến nghị sau
KẾT LUẬN VÀ KIẾN NGHỊ
Với những kết quả đạt được có thể khẳng đề tài đã đáp ứng được những mục tiêu nghiên cứu đặt ra ban đầu Cụ thể, đề tài đạt được những kết quả sau đây
Xây dựng thành công kiến trúc router cải thiện độ trì hoãn số chu kỳ xung clock từ 6 chu kỳ đối với các router thông thường xuống còn 3 chu kỳ
Mô phỏng thành công hoạt động của router và mạng NoC 3x3 trong các trường hợp tiêu biểu, qua đó xác định được giá trị băng thông của bus cho phép trên mạng NoC 3x3
Tổng hợp và thực hiện thành công kiến trúc router trên phần cứng FPGA của kít DE2 – Altera
Bên cạnh đó, sự giới hạn về thời gian hoàn thành luận văn, sự hạn chế về điều kiện tiến hành thực nghiệm đã không cho phép thực hiện được những nghiên cứu sâu hơn về lĩnh vực mới mẻ này Chính vì vậy, xin đề xuất một số hướng nghiên cứu tiếp tục sau đây
Dựa trên kiến trúc router hiện tại, các mô hình NoC nxn đa dạng đã đề cập ở chương 1 được phát triển để đánh giá hiệu quả của kiến trúc router trong các mô hình mới
Tăng số kênh ảo từ 2 sang 4 trên mỗi ngõ vào/ra nhằm tăng cường khả năng chia sẻ đường truyền
Tiếp tục thực hiện các bước STA (Static timing analysis), P&R (Place and Route) để đánh giá chính xác các vấn đề “Timing” và “Area” cho router
Dựa trên đặc tính của router và kiến trúc NoC, xây dựng mô hình
“Flatform” ở cấp độ SystemLevelDesign cho mô hình NoC nhằm đánh giá hiệu năng của các mô hình NoC khác nhau dựa trên nền tảng kiến trúc router đã thiết kế Đây là những hướng nghiên cứu đang được triển khai trên thế giới Những kết quả nghiên cứu trong lĩnh vực này có thể áp dụng trực tiếp vào sản xuất và ứng dụng trong giảng dạy bậc đại học Để tiếp cận được những hướng nghiên cứu này, cần thực hiện các công việc sau
Tập trung trí tuệ tập thể bằng cách xây dựng các nhóm nghiên cứu Bên cạnh đó, thực hiện liên kết và trao đổi với các trường đại học hoặc viện nghiên cứu khác trong nước và trên thế giới về lĩnh vực này
Sử dụng các công cụ tính toán, thiết kế, lập trình và mô phỏng chuyên nghiệp do các công ty hàng đầu trên thế giới cung cấp (PrimeTime-VCS cho STA, Vertusal-Cadence cho P&R)
DANH MỤC TÀI LIỆU THAM KHẢO
[1] Ankur Agarwa, Boca Raton, Cyril Iskander, Ravi Shankar, “Survey of
Network on Chip (NoC) Architecture & Contributions”, Engineering, Computing and Architecture ISSN 1934-7197 Volume 3, Issue 1, 2009, Boca Raton Univ., USA
[2] Huynh Viet Thang, “Nghiên cứu về NetWork-On-Chip và thực hiện
NetWork-On_Chip trên nền FPGA”, Luận văn thạc sĩ kỹ thuật-Đại học Đà Nẵng-2007
[3] Boris Grot, “Express Cube Topologies for On-chip Intercornnects”,
High Performance Computer Architecture, 2009 HPCA 2009 IEEE 15th International Symposium, Dept of Comput Sci., Univ of Texas at Austin, Austin, TX
[4] F Moraes and N Calazan, “An infrastructure for low area overhead packet-switching network on chip”, Integration - The VLSI Journal, vol
Rio Grande do Sul (FACIN-PUCRS), Av Ipiranga, 6681, Prédio 30/BLOCO 4, 90619-900 Porto Alegre, RS, Brazil
[5] Mohammad Arjomand, Hamid Sarbazi-Azad, “Performance Evaluation of Butterfly on-Chip Network for MPSoCs”, SoC Design Conference,
2008 ISOCC '08 International, Comput Eng Dept., Sharif Univ of Technol., Tehran
[6] Chia-Hsin Owen Chen1, Niket Agarwal, Tushar Krishna1, Kyung-Hoae
Koo, Li-Shiuan Peh1, and Krishna C Saraswat, “Physical vs Virtual
Express Topologies with Low-Swing Links for Future Many-core NoCs”, Networks-on-Chip (NOCS), 2010 Fourth ACM/IEEE International
Symposium, Dept of Electr Eng & Comput Sci., Massachusettes Inst of
[7] Amit Kumar Li-Shiuan Peh, Parth Kundu, Niraij K.Jha, ”Toward Ideal
On-Chip Communication Using Express Virtual Channels”, micr-28-01- kuma.3d.IEEE 2008, Princeton University
[8] E Bolotin, I Cidon, R Ginosar and A Kolodny, “Cost considerations in
Network on Chip”, Integration: The VLSI Journal, no 38, 2004, pp 19-
[9] C A Zeferino and A A Susin, “SoCIN: A parametric and scalable network-on-chip”, Integrated Circuits and Systems Design, 2003 SBCCI
2003 Proceedings 16th Symposium on, Instituto de Informatica, Univ
Fed do Rio Grande do Sul, Porto Alegre, Brazil
[10] D Bertozzi, A Jalabert, S Murali, R Tamhankar, S Stergiou, L Benini, and G De Micheli, “NoC synthesis flow for customized domain specific multiprocessor systems-on-chip”, IEEE Transactions on Parallel and
Distributed Systems, vol 16, no 2, pp 113-129, 2005, Bologna Univ., Italy
[11] M Dall’Ossa, G Biccari, L Giovannini, L D Bertozzi, and L Benini,
“XPIPES: A latency insensitive parameterized network-on-chip architecture for multiprocessor SoCs”, Computer Design, 2003
Proceedings 21st International Conference, DEIS, Bologna Univ., Italy
[12] Avinash Kodi, Ahmed Louri, Janet Wang2, “Design of Energy-Efficient
Channel Buffers with Router Bypassing for Network-on-Chips (NoC)”, Department of Electrical and Computer Engineering, University of Arizona, Tucson, AZ 85721, ch of Electr Eng & Comput Sci., Ohio Univ., Athens, OH.