Mô hình hóa, mô phỏng trên mạng 2×2

Một phần của tài liệu Nghiên cứu, thiết kế và mô hình hóa một mạng trên chip NOC Network-On-Chip với cấu trúc liên kết 2D-MESH (Trang 44)

Ở các mô hình trên ta đã kiểm chứng về mô hình hệ thống gồm có một và hai bộ định tuyến. Với các kết quả thu được cho thấy, bộ định tuyến đã hoạt động đúng như yêu cầu đặt ra. Để thực hiện được việc kiểm chứng mô hình mạng lưới 2×2 ở các mức RTL ta xây dựng mô hình mạng 2×2 đơn giản có kết nối các lõi IP như mô tả trong Hình 3.15. .’; IP nhận R_01 R_00 R_10 R_11

Testbench Mạch kiểm tra

Lõi IP11

IP nhận

IP phát

Lõi IP00

IP phát

Hình 3.15: Môi trường kiểm tra, mô phỏng chức năng hoạt động của một mạng lưới 2×2. Trong mô hình này, testbench cũng bao gồm 3 khối chính: Khối thứ nhất (lõi IP00) và khối thứ ba (lõi IP11) là các lõi xử lý đơn giản được xây dựng với mục đích tạo ra các gói dữ liệu để truyền trên mạng và tiêu thụ các gói dữ liệu nếu nhận được. Khối thứ hai, hệ thống kiểm tra là một mạng lưới 2×2 gồm bốn bộ định tuyến (R_00, R_01, R_10 và R_11), các bộ định tuyến này đã được thực thi tại phòng thí nghiệm

SIS với 5 cặp cổng vào/ra. Mô hình này cũng thực hiện truyền liên tiếp hai gói tin, một gói trên kênh ảo 0 còn một gói trên kênh ảo 1.

Quá trình mô phỏng nhằm kiểm tra chức năng hoạt động của mạng 2×2 được thực hiện thông qua việc truyền nhận dữ liệu giữa các lõi IP với các đường định tuyến khác nhau, ví dụ: Từ lõi IP00 truyền dữ liệu tới lõi IP11 và ngược lại, hoặc truyền dữ liệu từ IP00 tới IP10 theo một vòng qua các bộ định tuyến, hoặc là thực hiện truyền hai gói tin cùng đến tại một thời điểm và có cùng đích đến… Sau đây là kết quả mô phỏng của một số trường hợp.

* Truyền dữ liệu từ IP00 tới IP11: Từ Hình 3.15 ta thấy, để thực hiện truyền dữ liệu từ IP00 tới IP11 có hai đường đi, một là theo đường định tuyến từ IP00 tới R_00 → R_01 → R_11→ IP11, hai là theo đường từ IP00→ R_00 → R_10 → R_11→ IP11, khi đó IP00 coi như IP phát còn IP11 coi như IP nhận. Việc truyền dữ liệu trên đường thứ nhất hay đường thứ hai hoàn toàn giống nhau, chỉ khác về đường path (hướng dữ liệu tới đích). Vì trong thiết kế sử dụng thuật toán định tuyến xác định nên việc xác định đường đi (path) của chúng tương đối đơn giản. Ứng với đường thứ nhất ta xác định đường định tuyến (path) của nó là “0000000000001001”, còn trên đường định tuyến thứ hai ta xác định path là “0000000000110110”. Kết quả mô phỏng được chỉ ra trong hai trường hợp như Hình 3.16 và Hình 3.17 như sau:

Ứng với đường truyền dữ liệu thứ nhất (Hình 3.16), ta thấy dữ liệu sẽ được truyền trên các đường tín hiệu từ O_data qua R_00 tới O_data_e_00 qua R_01 tới O_data_s_01 qua R_11 tới IP nhận (I_data). Quá trình truyền/nhận dữ liệu luôn tuân theo giao thức truyền thông bắt tay (send-accept) và được thực hiện bắt đầu tại thời điểm 51 ns. Tại đây, tín hiệu O_send0, O_accept0 đều bằng „1‟ và tại sườn dương của xung clock thì IP phát bắt đầu truyền dữ liệu ra kênh (kênh ảo 0), khi đó tín hiệu O_data có giá trị “200000009” ( tương đương với 34 bit nhị phân “100000000000000000000000000000001001”), với giá trị quan sát được ta thấy đây là flit tiêu đề của gói (vì bit đầu tiên của nó mang giá trị là „1‟), flit này được truyền đến bộ định tuyến R_00, vì hai bit cuối của trường thông tin định tuyến là “01” nên bộ định tuyến chuyển flit này ra cổng phía Đông, tại đây (thời điểm 53 ns) hai bit đó được dịch sang phải và thêm vào đầu trường định tuyến là hai bit “00” nên trên tín hiệu O_data_e_00 lúc này có giá trị “200000002”. Flit này lại tiếp tục được truyền trên kênh tới R_01, khi nhận được flit này R_01 thực hiện kiểm tra hai bit cuối của trường thông tin định tuyến và dịch phải sau đó lại thêm hai bit “00” vào đầu trường, lúc này trên tín hiệu O_data_s_01 có giá trị “200000000” (tại thời điểm 55 ns) và flit này lại tiếp tục được truyền trên kênh tới R_11, khi nhận được flit này R_11 lại thực hiện kiểm tra hai bit cuối của trường thông tin định tuyến và dịch phải sau đó thêm hai bit “00” vào trường rồi xác định đích đến của gói. Tại thời điểm 57 ns, IP nhận nhận được flit đầu tiên có giá trị “200000000” và hoàn tất thủ tục thiết lập kênh truyền. Đồng thời quá trình thiết lập kênh là thực hiện truyền lần lượt các flit dữ liệu, các flit dữ liệu được truyền khi kênh truyền thỏa mãn các điều kiện O_accept0, O_send0 bằng „1‟ và tại sườn dương của xung clock. Quá trình truyền và nhận các flit được diễn ra tương tự cho đến thời điểm 93 ns, IP phát truyền flit dữ liệu có giá trị “1FFFFFFFF” (tương ứng với “0111111111111111111111111111111111”) tới R_00 báo hiệu đây là flit cuối cùng của gói (vì bit thứ 2 (End-of-Packet) từ trái sang có giá trị bằng „1‟). Ở thời điểm 95 ns flit này được đưa tới O_data_e_00 và truyền tới R_01, sau khi qua R_01 và R_11 nó được truyền đến nơi nhận (IP nhận). Và tại thời điểm 103 ns, O_send0 bằng „0‟, O_send1 và O_accept1 bằng „1‟ nên dữ liệu được truyền trên kênh ảo 1. Quá trình truyền dữ liệu trên kênh ảo 1 hoàn toàn tương tự như trên kênh ảo 0.

Kết quả mô phỏng trường hợp thứ hai được chỉ ra trên Hình 3.17. Ở trường hợp này dữ liệu cũng được truyền từ IP00 tới IP11 nhưng đi trên đường định tuyến từ IP00→R_00→R_10→R_11→IP11. Khi đó ta chỉ cần thay đường dẫn (đường định tuyến) theo hướng đi đã được lựa chọn và trường định tuyến của trường hợp này là “0000000000110110”. Quá trình truyền dữ liệu cũng hoàn toàn giống so với trường hợp thứ nhất. Với các tín hiệu thực hiện trong quá trình truyền dữ liệu: O_data, O_send0, O_send1, O_accept0, O_accept1 là các tín hiệu ra của IP phát; O_data_s_00,

O_send0_ s_00, O_send1_ s_00, O_accept0_ s_00, O_accept1_ s_00 là các tín hiệu ra phía Nam của R_00; O_data_e_10, O_send0_e_10, O_send1_e_10, O_accept0_e_10, O_accept1_e_10 là các tín hiệu ra phía Đông của R_10; O_data_ip11, O_send0_ip11, O_send1_ip11, O_accept0_ip11, O_accept1_ip11 là các tín hiệu ra IP của R_11.

Hình 3.17: Kết quả mô phỏng quá trình truyền dữ liệu IP00→R_00→R_10→R_11→IP11.

* Truyền thông trong trường hợp các gói tin đến cùng một thời điểm và cùng đích đến.

Mô hình kiểm chứng của trường hợp này cũng giống như các mô hình trước. Chỉ khác ở khối thứ nhất các dữ liệu đầu vào có hai hướng dữ liệu đến, dữ liệu đến từ cổng phía Bắc và dữ liệu đến từ cổng phía Tây của R_00. Trên hai cổng đều truyền liên tiếp hai gói tin (một gói truyền trên kênh ảo 0 và gói tiếp theo trên kênh ảo 1), với gói tin đến từ cổng phía Bắc có 8 flit, còn gói tin đến từ cổng phía Tây có 4 flit dữ liệu. Kết quả mô phỏng trường hợp các gói tin đến cùng lúc và có cùng đích đến được chỉ ra trong Hình 3.18.

Dữ liệu được truyền từ nơi gửi đến nơi nhận thông qua các đường tín hiệu, trong đó các tín hiệu O_data, O_send0, O_send1, O_accept0, O_accept1 là các tín hiệu ra của IP phát 1 được đưa vào cổng phía Bắc của R_00; Out_data, Out_send0, Out_send1, Out_accept0, Out_accept1 là các tín hiệu ra của IP phát 2 được đưa vào cổng phía Tây của R_00; O_data_e_00, O_send0_e_00, O_send1_e_00, O_accept0_e_00, O_accept1_e_00 là các tín hiệu ra phía Đông của R_00; O_data_s_01, O_send0_s_01, O_send1_s_01, O_accept0_s_01, O_accept1_s_01 là các tín hiệu ra phía Nam của R_01; O_data_ip11, O_send0_ip11, O_send1_ip11, O_accept0_ip11, O_accept1_ip11, là các tín hiệu ra IP11 của R_01.

Hình 3.18: Kết quả mô phỏng trường hợp các gói tin đến cùng một thời điểm và cùng đích đến.

Từ kết quả Hình 3.18 ta thấy, việc truyền và nhận dữ liệu luôn tuân theo giao thức truyền thông bắt tay và bộ định tuyến thực hiện nhiệm vụ phân quyền các gói tin di chuyển vào trong mạng tương đối rõ nét, cụ thể tại một thời điểm chỉ có một kênh ảo làm việc, các gói đến cùng một thời điểm và có cùng đích đến thì phải tuân theo quyền ưu tiên. Thực vậy, tại thời điểm 51 ns, trên cả hai cửa Bắc và Tây đều truyền dữ liệu tới R_00 (vì các tín hiệu O_accept0, Out_accept0, O_send0 và Out_send0 bằng „1‟, chứng tỏ dữ liệu được truyền trên kênh ảo 0). Tại đây, bộ định tuyến R_00 nhận được cả hai flit đến từ hai cửa, vì đây là flit tiêu đề mang thông tin định tuyến của gói

nên tạid đây bộ định tuyến có nhiệm vụ phân quyền cho các gói và xác định hướng đi tiếp theo của gói. Do gói đến từ cổng Bắc có quyền ưu tiên cao hơn gói đến từ cổng Tây (theo thứ tự ưu tiên giảm dần Bắc, Đông, Nam, Tây) nên được truyền trước và căn cứ vào hai bit cuối cùng của trường định tuyến thì tại thời điểm 53 ns, flit đầu tiên đến từ cổng Bắc được đưa ra cổng phía Đông của R_00. Flit tiêu đề lại được gửi tới R_01, tại đây R_01 dựa vào hai bit cuối cùng của trường thông tin định tuyến xác định hướng đi tiếp theo của flit và tại 57 ns thì flit tiêu đề đã được truyền đến đích. Đồng thời với quá trình truyền flit tiêu đề thì tại thời điểm 57 ns, flit dữ liêu đầu tiên từ cổng Bắc cũng bắt đầu được truyền vào trong mạng theo đường mà flit tiêu đề đã thiết lập và các flit tiếp theo của gói cũng lần lượt được truyền vào trong mạng đến flit dữ liệu cuối cùng. Flit cuối cùng của gói được truyền tới R_00 tại thời điểm 93 ns, khi đó R_00 xóa thiết lập kênh và tại chu kỳ xung nhịp kế tiếp nó thực hiện truyền flit tiêu đề của gói đến từ cổng phía Tây và đưa tín hiệu Out_accept0 lên „1‟ (báo hiệu sẵn sàng nhận dữ liệu) do đó IP phát 2 bắt đầu gửi các flit kế tiếp. Đồng thời với quá trình này tại IP phát 1, sau khi truyền hết gói tin 1 trên kênh ảo 0 thì thực hiện truyền gói tin 2 trên kênh ảo 1 tới R_00, nhưng vì R_00 đã tiếp nhận việc truyền dữ liệu đến từ cổng phía Tây nên tại đây gói tin 2 (từ cổng Bắc bị gián đoạn). Gói tin này chỉ được truyền khi gói tin 1 đến từ cổng Tây kết thúc. Quá trình truyền/nhận dữ liệu diễn ra tuần tự cho đến khi gói tin 2 đến từ cổng phía Tây được truyền đến đích thì quá trình truyền/nhận lại lặp lại quá trình trên.

Kết luận

Mô hình mạng trên chip là một mô hình truyền thông mới, hứa hẹn thay thế mô hình truyền thông dạng bus thông thường trên các hệ thống trên chip. Đề tài luận văn đã thực hiện các nghiên cứu lý thuyết và mô hình hoá một kiến trúc mạng trên chip 2×2 với cấu trúc liên kết dạng lưới phục vụ cho việc triển khai các nghiên cứu tiếp theo về mô hình này. Trong quá trình thực hiện luận văn, tôi đã thu được nhiều kiến thức bổ ích liên quan đến hướng thiết kế vi mạch, truyền thông trên chip, những kinh nghiệm trong thiết kế, mô phỏng và đạt được một số kết quả cụ thể như sau:

Tôi đã tìm hiểu về các phương pháp xây dựng hệ thống trên chip, xu thế phát triển và các vấn đề tới hạn trong thiết kế hệ thống trên chip. Từ đó, tìm hiểu lý do xuất hiện mô hình mạng trên chip, các khái niệm cơ bản, những ràng buộc và vấn đề cần quan tâm khi triển khai mô hình mạng trên chip.

Tôi đã xây dựng được một mô hình mạng trên chip đơn giản với cấu trúc liên kết dạng lưới 2×2 và xây dựng được môi trường kiểm tra chức năng hoạt động của mô hình đã thực thi. Theo đó, tôi đã mô phỏng và kiểm chứng được chức năng hoạt động của một bộ định tuyến, của hai bộ định tuyến và của một mạng 2×2 theo các đường định tuyến khác nhau ở mức chuyển dịch thanh ghi RTL (mô hình mạng trên chip này có thể tổng hợp lôgic và thực thi phần cứng). Kết quả mô phỏng và kiểm chứng cho thấy các mô hình này đã hoạt động đúng như đặc tả đề ra. Với kết quả đạt được, mô hình mạng trên chip đã xây dựng có thể được dùng để triển khai các nghiên cứu liên quan đến mô hình mạng trên chip trong thời gian tới.

Cuối cùng, qua quá trình thực hiện đề tài tôi đã làm chủ ngôn ngữ mô tả phần cứng VHDL, công cụ phần mềm hỗ trợ thiết kế như ModelSim (Mentor Graphics), và các phương pháp thiết kế phần cứng có độ tích hợp cao.

Do thời gian có hạn nên đề tài mới triển khai một mô hình mạng trên chip đơn giản ở mức chuyển dịch thanh ghi RTL. Trong thời gian tới, nếu có điều kiện tôi sẽ xây dựng một mạng đủ lớn với một bối cảnh ứng dụng cụ thể để đánh giá hiệu năng của mạng.

Tài liệu tham khảo

Tiếng Việt

[1] Trần Xuân Tú (06/2010). Thiết kế và mô hình hoá bộ định tuyến mạng dùng cho các kiến trúc truyền thông trên vi mạch. Báo cáo nghiệm thu đề tài khoa học công nghệ cấp Đại học Quốc gia Hà Nội.

Tiếng Anh (adsbygoogle = window.adsbygoogle || []).push({});

[2] ARM (2004). AMBA Advanced eXtensible Interface (AXI) Protocol Specification, Version 1.0. http://www.arm.com.

[3] Tobias Bjerregaard and Jens Sparsø (2005). A scheduling discipline for latency and bandwidth guarantees in asynchronous network-on-chip. Proceedings of the 11th IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC‟05), pp. 34-43.

[4] Sylvester, D. and Keutzer (2000). A global wiring paradigm for deep submicron design. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on , pp. 242-252.

[5] Tobias Bjerregaard and Shankar Mahadevan (March 2006). A Survey of Research and Practices of Network-on-Chip. ACM Computing Surveys, Vol. 38.

[6] Terry Tao Ye (2006). On – Chip Multiprocessor Communication Network Design and analysis. University Committee on Graduate. PhD Thesis

[7] Tobias Bjerregaard and Jens Spars (2005). A Router Architecture for Connection -Oriented Service Guarantees in the MANGO Clockless Network-on-Chip. Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE‟05).

[8] Jens Sparso (2006). Virtual Circuits in Network – on – Chip. Master of Science thesis, pp.5-7.

[9] Minghua Tang and Xiaola Lin (08/2006). Network on Chip Routing Algorithms. TUCS Technical Report. University of Turku, Department of Information Technology.

[10] W.J. Dally, B. Towles (2004). Principles and Practices of Interconnection Network. Morgan Kaufmann; 1 edition (January 1, 2004).

[11] A. Hemani, A. Jantsch, S. Kumar, A. Postula, J. Oberg, M. Millberg, and D. Lindqvist. Network on Chip: An Architecture for Billion Transistor Era. In Proceedings of the IEEE NorChip Conference, Finland, November 2000.

Websites

[12] http://en.wikipedia.org/wiki/system-on-chip

Một phần của tài liệu Nghiên cứu, thiết kế và mô hình hóa một mạng trên chip NOC Network-On-Chip với cấu trúc liên kết 2D-MESH (Trang 44)