Chương 1, tác giả trình bày ngắn gọn các nội dung kiến thức liên quan đến luận án để làm cơ sở cho những đề xuất trong các chương tiếp theo như kiến trúc NoC, công nghệ FPGA, khả năng cấu hình lại từng phần động của FPGA và bài toán ánh xạ các ứng dụng lên NoC. Các kiến thức về NoC như: Kiến trúc của bộ định tuyến, cấu hình mạng, thuật toán định tuyến, cơ chế điều khiển luồng, chuyển mạch, v. Công nghệ FPGA hiện tại và tương lai, các điểm mạnh của các FPGA hiện đại. Các khái niệm và các kỹ thuật ánh xạ các ứng dụng lên kiến trúc NoC cũng được trình bày trong phần cuối của chương này.
Chương 2 tóm tắt các nghiên cứu trong nước và quốc tế; nêu ra các hạn chế của các nghiên cứu này, từ đó đề xuất và phát triển các mô hình kiến trúc; các kết quả thí nghiệm và đánh giá cũng được trình bày trong chương này. Các kiến trúc được đề xuất bao gồm: kiến trúc bộ định tuyến, bộ giao tiếp mạng và phát triển một nền tảng phần cứng đầy hứa hẹn trên FPGA cho NoC bằng cách sử dụng khả năng cấu hình lại từng phần động của FPGA. Phần cuối sẽ tổng kết các nội dung, các đề xuất nổi bật của chương. Trong Chương 3, tác giả trình bày một mô hình mới cho bài toán ánh xạ các ứng dụng có thể điều chỉnh mức chất lượng lên nền tảng phần cứng đã được phát triển trong Chương 2 bằng cách mô hình hóa nền tảng này bằng mô hình toán học và mô phỏng trên PC.
Trong chương này, các mô tả, các định nghĩa, mô hình ứng dụng, mô hình chất lượng và mô hình phần cứng sẽ được trình bày. Ngoài ra, một thuật toán phân vùng và một vài thuật toán ánh xạ cũng sẽ được giới thiệu. Các nội dung quan trọng và các đóng góp chính sẽ được tóm lược trong phần cuối của chương. Cuối cùng là kết luận về những nội dung chính, các đóng góp khoa học quan trọng của luận án cũng như hướng nghiên cứu và phát triển trong tương lai.
7 CHƢƠNG 1 CƠ SỞ LÝ THUYẾT Trong chương này, tác giả sẽ trình bày ngắn gọn các kiến thức liên quan đến nội dung nghiên cứu của luận án để làm cơ sở cho những đề xuất trong các chương tiếp theo. Lý thuyết về NoC gồm kiến trúc của bộ định tuyến, cấu hình mạng, thuật toán định tuyến, cơ chế điều khiển luồng và chuyển mạch; công nghệ FPGA hiện tại và tương lai, các điểm mạnh và khả năng cấu hình lại từng phần động của các FPGA hiện đại; các kỹ thuật ánh xạ như phương pháp ánh xạ tại thời gian thiết kế và tại thời gian chạy sẽ được giới thiệu và phân tích. Lý thuyết về mạng trên chip 1. Nguồn gốc và thuật ngữ Với sự phát triển không ngừng của công nghệ bán dẫn và công nghệ nano, số lượng các ứng dụng được tích hợp lên chip ngày càng tăng.
Kiến trúc Bus và kết nối điểm-điểm truyền thống không còn đáp ứng được yêu cầu này vì chúng có một số hạn chế trong khả năng mở rộng, khả năng sử dụng lại các IP, đồng bộ, v. Kiến trúc NoC đã được đề xuất và xem như một giải pháp thay thế cho kiến trúc Bus và kết nối điểm-điểm. Kiến trúc NoC cung cấp một cơ sở hạ tầng truyền thông có hiệu năng cao, thích hợp cho việc tích hợp một số lượng lớn các lõi IP lên một SoC [9, 50]. Do vậy, NoC được đề xuất như là một giải pháp cho truyền thông giữa các IP trong thiết kế các SoC phức tạp.
Ý tưởng xây dựng NoC bắt nguồn từ mô hình mạng máy tính đã được phát triển trong lịch sử của hệ thống máy tính.1 mô tả một NoC điển hình dạng lưới hai chiều 3x3. Tiếp theo, các thuật ngữ thường được sử dụng trong NoC sẽ được trình bày. Tài nguyên (Resource) hay lõi IP (IP core) hoặc PE (Processing Element): Là các khối logic thực hiện xử lý dữ liệu trong mạng. Khối logic này có thể là một lõi vi xử lý, một bộ biến đổi FFT (Fast Fourier Transform), một lõi xử lý DSP (Digital Signal Processor), v.
Bộ giao tiếp mạng (NI: Network Interface): Là khối logic làm nhiệm vụ kết nối tài nguyên vào mạng tại các vị trí giao diện dữ liệu vào ra của bộ định tuyến. Do sự khác biệt về kích thước dữ liệu, giao diện tín hiệu điều khiển của các tài nguyên với mạng, bộ giao tiếp mạng có thể thay đổi tùy theo tài nguyên được kết nối với mạng. Bộ định tuyến (Router): Là khối logic thực hiện chức năng định tuyến, điều khiển luồng cho dòng dữ liệu trong mạng. Đóng vai trò là hạt nhân trong NoC với mỗi mô hình 8 NoC khác nhau, bộ định tuyến được thiết kế riêng để thực hiện thuật toán định tuyến, cơ chế điều khiển luồng riêng biệt.
IP core core core (0,0) (0,1) (0,2) Router Router Router links core core core (1,0) (1,1) (1,2) Router Router Router core core core (2,0) (2,1) (2,2) Router Router Router Hình 1. Cấu trúc của một NoC dạng lưới 3x3 Liên kết vật lý (Physical link): Là các kết nối vật lý giữa các bộ định tuyến trong mạng NoC. Liên kết bao gồm các đường truyền dữ liệu và các tín hiệu điều khiển/báo hiệu. Cấu hình mạng (Topology): Là cấu trúc hình học của NoC, cấu trúc hình học này sẽ quyết định cách liên kết giữa các bộ định tuyến với nhau, giải thuật định tuyến và thậm chí cả cơ chế điều khiển luồng.
Định tuyến (Routing): Là cơ chế tìm đường đi cho gói tin (Packet) từ tài nguyên nguồn đến tài nguyên đích thông qua các kết nối trong mạng. Điều khiển luồng (Flow control): Là cơ chế cấp phát tài nguyên bộ đệm, liên kết cho gói tin khi gói tin đang truyền trong mạng. Độ trễ (Latency): Là thời gian cần thiết để truyền một gói tin đi từ nguồn đến đích. Trong NoC, có nhiều yếu tố ảnh hưởng tới độ trễ bao gồm trễ do định tuyến, độ chiếm dụng kênh, trễ do tranh chấp tài nguyên, thời gian ghép và tách gói tin (packetization and depacketization), thời gian ghép và tách flit (flitization and deflitization), sự đồng bộ giữa các bộ định tuyến.
Băng thông (Bandwidth): Là tốc độ cao nhất của luồng thông tin trong mạng được đo bằng số bit/giây. Thông lượng (Throughput): Là tổng số gói tin đến được đích của chúng trên mỗi đơn vị thời gian. Cấu hình mạng Một cấu hình mạng được định nghĩa là cách kết nối các bộ định tuyến trong mạng với nhau thông qua các kênh liên kết. Cấu hình mạng thường được biểu diễn dưới dạng đồ thị.
9 Cấu hình mạng có thể chia thành hai nhóm chính: Bất quy tắc (Irregular) và quy tắc (Regular) [46]. Các cấu hình mạng quy tắc đơn giản hơn so với các cấu hình bất quy tắc. Do vậy, định tuyến trong cấu hình mạng quy tắc dễ dàng hơn, kích thước của chuyển mạch có khả năng nhỏ hơn, hiệu quả hơn, băng thông cao, chu kỳ đồng hồ nhanh hơn và khả năng mở rộng hệ thống cũng dễ hơn [44].2 chỉ ra cách phân loại cấu hình mạng. Topologies Irregular Regular Trees Meshes Cubes Others n-dimensional Cube-connected Fat tree k-ary n-cubes meshes cycles 2D meshes Torus (n=2) Hình 1.
Phân loại cấu hình mạng NoC 1. Mạng lưới n-chiều (n-Dimensional Mesh) Trong cấu hình mạng lưới n-chiều, các nút mạng được sắp thành một mảng n chiều. Dọc theo mỗi chiều có ki nút (ki ≥ 2, i là số thứ tự của chiều, 0 ≤ i ≤ n-1). Mạng sẽ có tổng số nút là k0,k1,…,kn-1.
Mỗi nút có từ n đến 2n nút lân cận tùy vào vị trí của nó trong mạng như Hình 1. Nếu lưu lượng dữ liệu trong mạng là đều giữa các nút thì các kênh truyền dẫn gần trung tâm sẽ mang nhiều lưu lượng hơn do chúng có nhiều liên kết giữa các nút nhất [72]. Mạng lưới n-chiều 1. Mạng K-ary n-cube Trong cấu hình mạng này, các nút được sắp xếp thành một mảng n chiều và số nút trên mỗi chiều bằng nhau và bằng k như Hình 1.
Do đó tổng số nút có trong mạng là kn 10 nút. Với cấu hình này, các nút tại vị trí giao nhau giữa các cạnh của mạng sẽ có thêm liên kết với nhau [19]. Mạng k-ary n-cube 1. Mạng có số chiều thấp Khi cấu hình mạng lưới n-chiều và k-ary n-cube ở trên có n = 2, mạng lưới n-chiều trở thành mạng lưới hai chiều (2D-mesh) và mạng k-ary n-cube trở thành mạng torus hai chiều (2D-torus).
Đây là các cấu hình mạng thông dụng được sử dụng trong thiết kế NoC dành cho các hệ thống SoC. Trong mạng lưới hai chiều, liên kết giữa các nút là liên kết hai chiều và trong cấu hình mạng torus hai chiều liên kết giữa các nút là liên kết một chiều [22].5 trình bày cấu hình mạng lưới hai chiều và torus. a) Mesh b) Torus Hình 1. Mạng hai chiều mesh và torus 1.
Cơ chế điều khiển luồng 1. Bản tin Trong NoC, nút nguồn và nút đích trao đổi thông tin với nhau thông qua các bản tin (Message), mỗi bản tin được chia thành nhiều gói tin và mỗi gói tin được chia thành nhiều phần nhỏ gọi là flit (Flow control digit). Mỗi flit mang theo các Phit (Physical Transfer Digit). Các liên kết trong mạng sẽ truyền từng flit của gói tin đi từ nguồn đến đích.
Để đảm bảo toàn bộ bản tin truyền đến được đích và tiết kiệm được lưu lượng cho mạng đồng 11 thời nâng cao hiệu năng mạng, người thiết kế cần lựa chọn cơ chế điều khiển luồng thích hợp theo cấu hình mạng của NoC [32]. Gói tin: Là đơn vị cơ bản để thực hiện định tuyến và sắp xếp thứ tự cũng như trạng thái điều khiển cho gói tin. Phần Header của gói tin chứa thông tin định tuyến và có thể chứa số thứ tự gói tin. Trong đó, thông tin định tuyến dùng để xác định đường di chuyển của gói tin từ nút nguồn đến nút đích.
Mỗi gói tin thường có kích thước từ 128 bit đến 512 Kbit. Flit: Là đơn vị cơ bản để thực hiện cấp phát băng thông và tài nguyên kênh truyền, bộ đệm trong các cơ chế điều khiển luồng. Có ba loại flit được sử dụng: Header flit, body flit và tail flit. Trong đó, header flit là flit đầu tiên của gói tin và được gọi là flit tiêu đề, flit này mang theo thông tin định tuyến như địa chỉ nút đích của gói tin.
Body flit và tail flit không mang theo thông tin định tuyến mà mang theo thông tin về loại flit và dữ liệu của gói tin, do đó body flit và tail flit được truyền cùng đường đi với flit tiêu đề. Mỗi flit có kích thước từ 16 bit đến 512 bit và mỗi Phit có kích thước từ 1 bit đến 64 bit.