Nghiên cứu NOC cấu hình lại trên FPGA và phát triển thuật toán ánh xạ động ứng dụng

Nghiên cứu noc cấu hình lại trên FPGA và phát triển thuật toán ánh xạ động, ứng dụng trong nền tảng noc, nâng cao hiệu suất hệ thống.

Trường đại học

Đại học Bách khoa Hà Nội

Chuyên ngành

Điện tử và Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

luận án

2017

105
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

MỤC LỤC

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

DANH MỤC CÁC BẢNG BIỂU

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Lý thuyết về mạng trên chip

1.2. Nguồn gốc và thuật ngữ

1.3. Cấu hình mạng

1.4. Mạng lưới n-chiều (n-Dimensional Mesh)

1.5. Mạng K-ary n-cube

1.6. Mạng có số chiều thấp

1.7. Cơ chế điều khiển luồng

1.7.1. Cơ chế điều khiển luồng Store-and-Forward (SAF)

1.7.2. Cơ chế điều khiển luồng Wormhole (WH)

1.7.3. Cơ chế điều khiển luồng Virtual cut-through (VCT)

1.7.4. Cơ chế điều khiển luồng kênh ảo (Virtual Channel)

1.8. Thuật toán định tuyến

1.8.1. Phân loại định tuyến

1.8.2. Các vấn đề trong định tuyến

1.9. Tổng quan kiến trúc bộ định tuyến

1.10. Công nghệ FPGA

1.10.1. Kiến trúc FPGA

1.10.2. Tổng quan kiến trúc FPGA

1.10.3. Kiến trúc FPGA của Xilinx

1.10.4. Cấu hình lại từng phần

1.10.5. Cấu hình lại từng phần động

1.10.6. Các ưu điểm của cấu hình lại từng phần

1.10.7. Hỗ trợ cấu hình lại trong FPGA của Xilinx

1.11. Kỹ thuật ánh xạ ứng dụng lên nền tảng mạng trên chip

1.11.1. Bài toán ánh xạ

1.11.2. Ánh xạ tại thời gian thiết kế

1.11.3. Ánh xạ tại thời gian chạy

1.12. Kết luận chương

2. CHƯƠNG 2: PHÁT TRIỂN NỀN TẢNG PHẦN CỨNG CẤU HÌNH LẠI ĐƯỢC CHO NoC

2.1. Thiết kế bộ định tuyến cho NoC

2.1.1. Đề xuất kiến trúc bộ định tuyến

2.1.2. Lựa chọn các thông số thiết kế

2.1.3. Bộ đệm ngõ vào

2.1.4. Bộ giải mã flit

2.1.5. Chuyển mạch và kênh ảo

2.1.6. Bộ phân xử

2.1.7. Kết quả và đánh giá

2.1.7.1. Kết quả tổng hợp
2.1.7.2. Kết quả mô phỏng

2.2. Thiết kế bộ giao tiếp mạng cho NoC

2.2.1. Phương pháp tiếp cận

2.2.2. Đề xuất kiến trúc bộ giao tiếp mạng

2.2.3. Kết quả và đánh giá

2.3. Phát triển nền tảng phần cứng cấu hình lại từng phần động

2.3.1. Xây dựng hệ thống (nền tảng phần cứng) cấu hình

2.3.2. Luồng thiết kế

2.3.3. Thiết lập hệ thống

2.3.4. Các trường hợp nghiên cứu

2.3.4.1. Cấu hình lại cơ sở hạ tầng truyền thông
2.3.4.2. Cấu hình lại các PE

2.3.5. Kết quả thực nghiệm

2.4. Kết luận chương

3. CHƯƠNG 3: TRIỂN KHAI CÁC ỨNG DỤNG CÓ THỂ ĐIỀU CHỈNH MỨC CHẤT LƯỢNG VÀO NỀN TẢNG CẤU HÌNH LẠI ĐƯỢC DỰA TRÊN NoC TẠI THỜI GIAN CHẠY

3.1. Mô tả bài toán ánh xạ

3.2. Các định nghĩa và xây dựng bài toán ánh xạ

3.2.1. Mô hình ứng dụng

3.2.2. Đồ thị tác vụ ứng dụng

3.2.3. Mô hình chất lượng

3.2.4. Mô hình phần cứng

3.2.5. Xây dựng bài toán ánh xạ

3.3. Các giải pháp cho bài toán ánh xạ các ứng dụng lên NoC tại thời gian chạy

3.3.1. Giải pháp tối ưu sử dụng thuật toán tìm kiếm đầy đủ

3.3.2. Kết quả mô phỏng và đánh giá

3.3.3. Giải pháp heuristic cho bài toán ánh xạ tại thời gian chạy

3.3.3.1. Chiến lược chọn vùng gần lồi
3.3.3.2. Thuật toán ánh xạ heuristic
3.3.3.3. Kết quả mô phỏng và đánh giá

3.4. Kết luận chương

Nội dung và các kết quả đạt được của luận án

Đóng góp khoa học của luận án

Hướng phát triển của luận án

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về NOC và FPGA

NOC (Network-on-Chip) là một kiến trúc truyền thông tiên tiến cho các hệ thống trên chip (SoC). Nó cho phép kết nối nhiều lõi xử lý (Processing Elements - PE) một cách hiệu quả. FPGA (Field Programmable Gate Array) là một công nghệ cho phép cấu hình lại phần cứng, mang lại tính linh hoạt cao cho việc thiết kế hệ thống. Việc kết hợp NOC với FPGA tạo ra một nền tảng mạnh mẽ cho các ứng dụng yêu cầu hiệu suất cao và khả năng mở rộng. NOC cung cấp một cơ sở hạ tầng truyền thông có khả năng xử lý song song, trong khi FPGA cho phép cấu hình lại động, giúp hệ thống thích ứng với các yêu cầu thay đổi của ứng dụng. "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".

1.1. Cấu hình lại trên FPGA

Cấu hình lại trên FPGA cho phép thay đổi chức năng của phần cứng mà không cần thay đổi thiết kế vật lý. Điều này rất quan trọng trong việc phát triển các ứng dụng có thể điều chỉnh mức chất lượng. Việc sử dụng kỹ thuật ánh xạ động giúp tối ưu hóa việc sử dụng tài nguyên và cải thiện hiệu suất. "Khả năng cấu hình động cho phép nền tảng thích nghi với các yêu cầu xử lý thay đổi của các ứng dụng".

1.2. Thuật toán ánh xạ động

Thuật toán ánh xạ động là một phần quan trọng trong việc triển khai các ứng dụng trên nền tảng NOC. Nó cho phép điều chỉnh mức chất lượng của ứng dụng theo tài nguyên sẵn có của nền tảng phần cứng. Các giải pháp tối ưu và heuristic được đề xuất để giải quyết bài toán ánh xạ, giúp cải thiện hiệu suất và giảm thiểu độ trễ trong quá trình truyền thông. "Kỹ thuật ánh xạ ứng dụng động kết hợp với khả năng cấu hình lại từng phần động của thiết bị phần cứng như FPGA sẽ tạo ra một giải pháp hứa hẹn".

II. Phát triển nền tảng phần cứng

Phát triển nền tảng phần cứng cho NOC trên FPGA bao gồm thiết kế bộ định tuyến và bộ giao tiếp mạng. Kiến trúc bộ định tuyến được đề xuất nhằm tối ưu hóa việc truyền thông giữa các PE. Bộ giao tiếp mạng cũng được thiết kế để hỗ trợ các giao thức truyền thông khác nhau, đảm bảo tính linh hoạt và hiệu suất cao. "Thiết kế bộ định tuyến cho NoC là một yếu tố quan trọng trong việc tối ưu hóa hiệu suất truyền thông".

2.1. Kiến trúc bộ định tuyến

Kiến trúc bộ định tuyến được thiết kế để hỗ trợ nhiều phương thức điều khiển luồng khác nhau như Store-and-Forward (SAF) và Wormhole (WH). Điều này giúp cải thiện hiệu suất truyền thông và giảm thiểu độ trễ. "Tổng quan kiến trúc bộ định tuyến cho thấy sự cần thiết phải tối ưu hóa các cơ chế điều khiển luồng".

2.2. Kết quả và đánh giá

Kết quả mô phỏng cho thấy nền tảng phần cứng cấu hình lại được có khả năng xử lý nhiều ứng dụng cùng lúc với hiệu suất cao. Việc đánh giá hiệu suất dựa trên các chỉ số như thông lượng và độ trễ cho thấy nền tảng này đáp ứng tốt các yêu cầu của các ứng dụng đa phương tiện. "Kết quả mô phỏng và đánh giá cho thấy nền tảng phần cứng có khả năng đáp ứng các yêu cầu khắt khe của các ứng dụng hiện đại".

III. Ứng dụng và triển khai

Việc triển khai các ứng dụng có thể điều chỉnh mức chất lượng vào nền tảng cấu hình lại được dựa trên NOC tại thời gian chạy là một thách thức lớn. Các ứng dụng này cần được mô hình hóa và ánh xạ một cách hiệu quả để đảm bảo chất lượng dịch vụ (QoS). "Mô hình ứng dụng và đồ thị tác vụ là những công cụ quan trọng trong việc xây dựng bài toán ánh xạ".

3.1. Mô hình ứng dụng

Mô hình ứng dụng được xây dựng dựa trên đồ thị tác vụ, cho phép xác định các tác vụ và mối quan hệ giữa chúng. Điều này giúp tối ưu hóa việc phân phối tài nguyên và cải thiện hiệu suất tổng thể của hệ thống. "Mô hình hóa ứng dụng là bước quan trọng trong việc phát triển các thuật toán ánh xạ".

3.2. Kết quả triển khai

Kết quả triển khai cho thấy khả năng điều chỉnh mức chất lượng của các ứng dụng dựa trên tài nguyên sẵn có. Việc sử dụng các thuật toán ánh xạ động giúp cải thiện hiệu suất và giảm thiểu độ trễ trong quá trình truyền thông. "Kết quả triển khai cho thấy nền tảng có khả năng thích ứng với các yêu cầu thay đổi của ứng dụng".

25/01/2025

Trích đoạn nội dung tài liệu

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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài luận án "Nghiên cứu NOC cấu hình lại trên FPGA và phát triển thuật toán ánh xạ động ứng dụng" của tác giả Nguyễn Văn Cường, dưới sự hướng dẫn của PGS. Phạm Ngọc Nam tại Đại học Bách khoa Hà Nội, tập trung vào việc nghiên cứu và phát triển các giải pháp tối ưu cho mạng trên chip (NOC) sử dụng công nghệ FPGA. Bài viết không chỉ trình bày các phương pháp cấu hình lại NOC mà còn phát triển thuật toán ánh xạ động, giúp cải thiện hiệu suất và khả năng mở rộng của hệ thống. Độc giả sẽ tìm thấy những lợi ích thiết thực từ nghiên cứu này, đặc biệt là trong việc ứng dụng công nghệ FPGA vào các lĩnh vực như điện tử và kỹ thuật máy tính.

Nếu bạn quan tâm đến các khía cạnh khác liên quan đến công nghệ thông tin và mạng, hãy khám phá thêm về Khảo Sát Mạng LAN với Các Phần Mở Rộng Không Dây, nơi bạn có thể tìm hiểu về các giải pháp mở rộng mạng LAN. Ngoài ra, bài viết Các Tấn Công Tích Cực Lên Hệ Thống Thông Tin Di Động 5G sẽ cung cấp cái nhìn sâu sắc về bảo mật trong các hệ thống thông tin hiện đại. Cuối cùng, bài viết Tăng Tốc FPGA cho Phát Hiện Tình Trạng Đỗ Xe Thời Gian Thực cũng sẽ giúp bạn hiểu rõ hơn về ứng dụng của FPGA trong các hệ thống thực tế. Những tài liệu này sẽ mở rộng kiến thức của bạn về công nghệ và ứng dụng trong lĩnh vực điện tử và kỹ thuật máy tính.