1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc

107 355 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 107
Dung lượng 2,78 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC CÁC TỪ VIẾT TẮT Ký hiệu Nghĩa tiếng Anh của từ viết tắt Nghĩa tiếng Việt ABP Adaptive BackPressure ACMD Average Communication ASIC Application-Specific Integrated ATG Applica

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN ÁN TIẾN SĨ KỸ THUẬT ĐIỆN TỬ

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS TS PHẠM NGỌC NAM

Hà Nội – 2017

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan rằng các kết quả khoa học được trình bày trong quyển luận án này

là kết quả nghiên cứu của bản thân tôi trong suốt thời gian làm nghiên cứu sinh và chưa từng xuất hiện trong công bố của các tác giả khác Các kết quả nghiên cứu là chính xác và trung thực

Hà Nội, ngày 08 tháng 05 năm 2017

Giáo viên hướng dẫn Tác giả

Trang 4

LỜI CẢM ƠN

Đầu tiên, tôi xin bày tỏ lời cảm ơn sâu sắc và kính trọng đến thầy giáo PGS TS Phạm Ngọc Nam, người đã hướng dẫn và định hướng khoa học cho tôi trong suốt khóa học Cảm ơn các thành viên nhóm NoC của Lab ESRC đã hỗ trợ và cùng tôi thực hiện một số thí nghiệm trong luận án này

Tôi xin trân trọng cảm ơn Ban Lãnh đạo, quý thầy cô và cán bộ, chuyên viên trong Viện Điện tử Viễn thông, Bộ môn Điện tử và Kỹ thuật máy tính và Viện Đào tạo Sau Đại học đã tạo các điều kiện thuận lợi về nơi học tập, nghiên cứu, các thủ tục hành chính và góp ý chuyên môn cho tôi trong suốt quá trình học tập và nghiên cứu tại trường Đại học Bách khoa Hà Nội

Tôi cũng xin trân trọng cảm ơn Ban Giám hiệu trường Đại học Công nghiệp Tp.HCM, Ban Lãnh đạo và đồng nghiệp của tôi tại Phân hiệu Quảng Ngãi đã tạo các điều kiện thuận lợi về thời gian để tôi học tập và nghiên cứu tại trường Đại học Bách khoa Hà Nội Xin cảm ơn các nghiên cứu sinh đã quan tâm và động viên tôi trong suốt khóa học Cuối cùng, tôi xin bày tỏ lòng biết ơn đến gia đình, đặc biệt là vợ và các con của tôi Những người đã luôn động viên và giúp đỡ tôi trong suốt thời gian vừa qua Đây cũng là động lực lớn nhất để tôi vượt qua các khó khăn và hoàn thành luận án này

Tác giả

Trang 5

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

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

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

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

MỞ ĐẦU 1

1 Đặt vấn đề 1

2 Mục tiêu, đối tượng, phương pháp và phạm vi nghiên cứu 3

3 Các kết quả đạt được của luận án 5

4 Cấu trúc của luận án 6

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

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

1.1.1 Nguồn gốc và thuật ngữ 7

1.1.2 Cấu hình mạng 8

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

1.1.2.2 Mạng K-ary n-cube 9

1.1.2.3 Mạng có số chiều thấp 10

1.1.3 Cơ chế điều khiển luồng 10

1.1.3.1 Bản tin 10

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

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

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

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

1.1.4 Thuật toán định tuyến 13

1.1.4.1 Phân loại định tuyến 13

1.1.4.2 Các vấn đề trong định tuyến 14

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

1.2 Công nghệ FPGA 16

Trang 6

1.2.1 Kiến trúc FPGA 17

1.2.1.1 Tổng quan kiến trúc FPGA 17

1.2.1.2 Kiến trúc FPGA của Xilinx 18

1.2.2 Cấu hình lại từng phần 19

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

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

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

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

1.3.1 Bài toán ánh xạ 24

1.3.2 Ánh xạ tại thời gian thiết kế 25

1.3.3 Ánh xạ tại thời gian chạy 26

1.4 Kết luận chương 26

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

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

2.1.1 Giới thiệu 28

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

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

2.1.2.2 Bộ đệm ngõ vào 32

2.1.2.3 Bộ giải mã flit 32

2.1.2.4 Chuyển mạch và kênh ảo 33

2.1.2.5 Bộ phân xử 34

2.1.3 Kết quả và đánh giá 34

2.1.3.1 Kết quả tổng hợp 35

2.1.3.2 Kết quả mô phỏng 36

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

2.2.1 Giới thiệu 40

2.2.2 Phương pháp tiếp cận 40

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

2.2.4 Kết quả và đánh giá 44

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 45

2.3.1 Giới thiệu 45

Trang 7

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

2.3.2.1 Luồng thiết kế 47

2.3.2.2 Thiết lập hệ thống 48

2.3.3 Các trường hợp nghiên cứu 50

2.3.3.1 Cấu hình lại cơ sở hạ tầng truyền thông 50

2.3.3.2 Cấu hình lại các PE 53

2.3.4 Kết quả thực nghiệm 54

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

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 57

3.1 Giới thiệu 57

3.2 Mô tả bài toán ánh xạ 59

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

3.3.1 Mô hình ứng dụng 60

3.3.1.1 Đồ thị tác vụ ứng dụng 61

3.3.1.2 Mô hình chất lượng 61

3.3.2 Mô hình phần cứng 62

3.3.3 Xây dựng bài toán ánh xạ 63

3.4 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 65

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

3.4.1.1 Thuật toán 66

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

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

3.4.2.1 Chiến lược chọn vùng gần lồi 70

3.4.2.2 Thuật toán ánh xạ heuristic 73

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

3.5 Kết luận chương 82

KẾT LUẬN 83

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

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

Trang 8

Hướng phát triển của luận án 85 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN 86 TÀI LIỆU THAM KHẢO 87

Trang 9

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

Ký hiệu Nghĩa tiếng Anh của từ viết tắt Nghĩa tiếng Việt

ABP Adaptive BackPressure

ACMD Average Communication

ASIC Application-Specific Integrated

ATG Application Task Graph Đồ thị tác vụ ứng dụng

AXI Advanced eXtensible Interface Giao diện mở rộng tiên tiến C2R Core to Router Từ lõi IP đến bộ định tuyến

CAGR Compound Annual Growth Rate Tốc độ tăng trưởng kép hàng năm

CLB Configurable Logic Block Khối Logic cấu hình

CMPS Chip Multi-Processors Chip đa xử lý

CPU Central Processing Unit Đơn vị xử lý trung tâm

DDR Double Data Rate Tốc độ dữ liệu kép

DDRAM Double Data Rate RAM Bộ nhớ truy cập ngẫu nhiên tốc

độ dữ liệu kép DMA Direct Memory Access Truy nhập bộ nhớ trực tiếp

DPR Dynamic Partial Reconfigurable Cấu hình lại từng phần động DSP Digital Signal Processor Xử lý tín hiệu số

EDK Embedded Development KIT Bộ công cụ phát triển nhúng

FFT Fast Fourier Transform Biến đổi Fourier nhanh

FIFO First In First Out Vào trước ra trước

FPGA Field Programmable Gate Array Mảng các cổng có thể lập trình tại

chỗ

GPIO General Purpose Input Output Các giao tiếp vào ra mục đích

chung HDL Hardware Description Language Ngôn ngữ mô tả phần cứng

HTTP-VS HTTP video streaming Truyền tải video qua giao thức

http HW/SW Hardware/Software Phần cứng/Phần mềm

Trang 10

Ký hiệu Nghĩa tiếng Anh của từ viết tắt Nghĩa tiếng Việt

ICAP Internal Configuration Access Port Cổng truy nhập cấu hình bên

trong InP Indefinite Postponement Trì hoãn không xác định

IP Intellectual Property (IP Core) Lõi sở hữu trí tuệ

ISE Integrated Software Environment Môi trường phần mềm tích hợp ISP Instruction Set Processor Vi xử lý tập lệnh

JTAG Joint Test Action Group Cable Cáp JTAG

LCD Liquid Crystal Display Màn hình tinh thể lỏng

LUT Logic Look-up Table Bảng tra logic

MPEG-4 Moving Picture Experts Group

MPSoC Multiprocessor System on Chip Hệ thống đa xử lý trên chip MWD Multi-Window Display

NI Network Interface Bộ giao tiếp mạng

NN Nearest Neighbor Thuật toán ánh xạ nearest

neighbor

OB Overall Benefit Giá trị lợi ích tổng thể

PCB Printed circuit board Bảng mạch in

PE Processing Element Phần tử xử lý (tính toán)

PIP Picture In Picture

PL Programmable Logic Logic lập trình

PLB Processor Local Bus

PLD Programmable Logic Device Thiết bị logic khả trình

PR Partial Reconfiguration Cấu hình lại được từng phần QoS Quality of service Chất lượng dịch vụ

R2C Router to Core Từ bộ định tuyến đến lõi IP RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên

RI Routing Information Thông tin định tuyến

RPA Reprogrammability Khả năng lập trình lại

RR Reconfigurable Region Vùng cấu hình lại được

RTL Register Transfer Level Mức truyền thanh ghi

SAF Store-And-Forward

SDK Software Development KIT Bộ công cụ phát triển phần mềm

của Xilinx

Trang 11

Ký hiệu Nghĩa tiếng Anh của từ viết tắt Nghĩa tiếng Việt

SOF System-on-an-FPGA Hệ thống trên một FPGA

SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh TGFF Task Graphs For Free Công cụ tạo đồ thị tác vụ miễn

phí UART Universal Asynchronous

VHSIC Very High Speed Integrated

VLSI Very-large-scale integration Mạch tích hợp rất cao

XPS Xilinx Platform Studio Bộ công cụ xây dựng phần cứng

hệ thống nhúng của Xilinx

Trang 12

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

Trang

Hình 1 Các ưu điểm của FPGA hiện đại [89] 3

Hình 1.1 Cấu trúc của một NoC dạng lưới 3x3 8

Hình 1.2 Phân loại cấu hình mạng NoC 9

Hình 1.3 Mạng lưới n-chiều 9

Hình 1.4 Mạng k-ary n-cube 10

Hình 1.5 Mạng hai chiều mesh và torus 10

Hình 1.6 Cơ chế điều khiển luồng SAF và WH 11

Hình 1.7 Phân loại các thuật toán định tuyến trong NoC 13

Hình 1.8 Kiến trúc tổng quát của một bộ định tuyến [7] 15

Hình 1.9 Thị trường cung cấp FPGA bởi các nhà sản xuất [78] 16

Hình 1.10 Quy mô thị trường ứng dụng của FPGA khu vực Châu Á Thái Bình Dương [42] 17

Hình 1.11 Kiến trúc chung của FPGA 17

Hình 1.12 Một Slice của FPGA Xilinx Virtex-6 [95] 19

Hình 1.13 Minh họa thiết kế cấu hình lại từng phần 20

Hình 1.14 Quy trình thực hiện cấu hình từng phần cho FPGA [97] 21

Hình 1.15 Tổng quan cấu hình lại từng phần động và bộ nhớ cấu hình [77] 23

Hình 2.1 Bộ định tuyến 30

Hình 2.2 Cấu trúc của các flit 30

Hình 2.3 Kiến trúc bộ định tuyến đề xuất 30

Hình 2.4 Sơ đồ khối của bộ đệm ngõ vào 32

Hình 2.5 Sơ đồ khối bộ giải mã flit 32

Hình 2.6 Thuật toán XY 33

Hình 2.7 Cấu trúc của chuyển mạch 33

Hình 2.8 Bộ phân xử 2:1 34

Hình 2.9 Bộ phân xử 4:1 34

Hình 2.10 Kết quả mô phỏng RTL cho các kịch bản 37

Hình 2.11 Trễ trung bình toàn mạng 38

Hình 2.12 Thông lượng trung bình toàn mạng 38

Hình 2.13 Quá trình ghi/đọc dữ liệu vào/ra bộ đệm đơn 41

Hình 2.14 Quá trình ghi/đọc dữ liệu vào/ra bộ đệm kép 41

Hình 2.15 Kiến trúc tổng quát của bộ giao tiếp mạng 42

Trang 13

Hình 2.16 Biểu đồ thời gian truyền các gói tin từ tài nguyên đến bộ định tuyến 45

Hình 2.17 Mô hình kiến trúc cấu hình trên FPGA 46

Hình 2.18 Sơ đồ luồng thiết lập hệ thống 47

Hình 2.19 Sơ đồ khối tổng quát của hệ thống 48

Hình 2.20 Thiết lập phần cứng trên công cụ XPS 49

Hình 2.21 Phân chia khu vực cấu hình các bộ đệm ngõ vào trong bộ định tuyến của NoC 50

Hình 2.22 Lưu đồ thuật toán điều khiển quá trình cấu hình 52

Hình 2.23 Phân chia khu vực cấu hình lại bộ định tuyến hoặc topo mạng 2x2 của NoC 53

Hình 2.24 Mô hình cấu hình lại các PE trong mạng 2x2 54

Hình 2.25 Vị trí vật lý của các thành phần trong hệ thống theo các kịch bản khác nhau 55

Hình 3.1 Ví dụ mô tả bài toán ánh xạ 59

Hình 3.2 Ảnh hưởng của dữ liệu đến chất lượng video [33, 91] 60

Hình 3.3 Mô hình hệ thống 63

Hình 3.4 Đồ thị tác vụ của ứng dụng A6 và ứng dụng MPEG-4 66

Hình 3.5 Vị trí đặt các tác vụ vào nền tảng phần cứng sau khi ánh xạ 68

Hình 3.6 Minh họa quá trình ánh xạ của thuật toán heuristic đã đề xuất 74

Hình 3.7 So sánh lợi ích chi phí theo các thuật toán ánh xạ 74

Hình 3.8 Giá trị lợi ích tổng thể của các ứng dụng đã được ánh xạ lên kích thước mạng 5x5 76

Hình 3.9 Giá trị lợi ích tổng thể của các ứng dụng đã được ánh xạ lên kích thước mạng 6x6 77

Hình 3.10 Giá trị lợi ích tổng thể của các ứng dụng đã được ánh xạ lên kích thước mạng 7x7 77

Hình 3.11 Giá trị AMD của các ứng dụng đã được ánh xạ theo các thuật toán khác nhau 79

Hình 3.12 Giá trị ACMD của các ứng dụng đã được ánh xạ theo các thuật toán 80

Hình 3.13 Các cải thiện trong chiến lược chọn vùng của tác giả 82

Trang 14

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

Trang

Bảng 2.1 Các thông số mô phỏng 35

Bảng 2.2 Tài nguyên sử dụng của các bộ định tuyến trên FPGA 35

Bảng 2.3 Một vài so sánh tham khảo với kiến trúc bộ định tuyến đã đề xuất 39

Bảng 2.4 Kết quả tổng hợp trên FPGA 44

Bảng 2.5 Tốc độ hoạt động của các bộ giao tiếp mạng 44

Bảng 2.6 Tài nguyên sử dụng của các hệ thống cấu hình 55

Bảng 2.7 Thời gian và tốc độ cấu hình của các kịch bản 56

Bảng 3.1 Các ứng dụng tổng hợp được tạo ra từ TGFF và các ứng dụng thực 65

Bảng 3.2 Giá trị lợi ích tại mỗi mức chất lượng 67

Bảng 3.3 Kết quả mô phỏng của các kịch bản ánh xạ 69

Bảng 3.4 Chất lượng và giá trị lợi ích của các ứng dụng 78

Bảng 3.5 Giá trị AMD khi ánh xạ các ứng dụng lên nền tảng 5x5, 6x6 và 7x7 78

Bảng 3.6 Giá trị ACMD khi ánh xạ các ứng dụng lên nền tảng 5x5, 6x6 và 7x7 79

Bảng 3.7 Thời gian chạy trung bình của các chiến lược chọn vùng 81

Trang 15

xử lý song song các tác vụ này là rất cao Một yếu tố khác đó là hành vi của người sử dụng thiết bị luôn thay đổi theo thời gian như nghe nhạc, xem phim hoặc chơi trò chơi, v.v Theo các yêu cầu này, chúng ta dễ thấy rằng các ứng dụng được đưa vào và rời khỏi

hệ thống tại bất kỳ thời điểm nào Thứ tự các ứng dụng được đưa vào và rời hệ thống cũng không thể biết trước Ngoài ra, mức chất lượng của các ứng dụng cũng có thể bị thay đổi theo hành vi của người dùng hoặc theo tình trạng tài nguyên sẵn có của thiết bị (ví dụ: yêu cầu mức chất lượng, hiệu năng cho từng ứng dụng) Do vậy, việc phát triển các nền tảng phần cứng có nhiều khả năng linh hoạt và khả năng thích nghi với các yêu cầu như trên là hết sức cần thiết Một xu hướng mới trong thiết kế các nền tảng tiên tiến đó là tạo ra một nền tảng có thể tái cấu hình các mô đun vật lý sau khi chế tạo, kết hợp giữa bộ vi xử lý và các thiết bị cấu hình lại [90], chẳng hạn như FPGA (Field Programmable Gate Array), để tăng thêm tính linh hoạt cho hệ thống trong các môi trường khác nhau [63] Tuy nhiên, khả năng của các phần tử cấu hình lại trong thiết bị luôn có giới hạn Do vậy, cần lựa chọn thêm một giải pháp quản lý động cho hệ thống Một trong những giải pháp quan trọng và rất linh hoạt đó là kỹ thuật ánh xạ ứng dụng động Kỹ thuật này 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

để giải quyết yêu cầu triển khai nhiều ứng dụng có thể điều chỉnh được mức chất lượng lên nền tảng có tài nguyên tái cấu hình hạn chế [8, 86]

Hơn nữa, do độ phức tạp của các thiết bị nhúng hiện đại ngày càng tăng, một số lượng ngày càng nhiều ứng dụng với chất lượng dịch vụ (QoS: Quality of Service) khác nhau có

Trang 16

thể được triển khai lên thiết bị, thường là trong một môi trường các nền tảng cấu hình lại không đồng nhất Bởi vì một nền tảng cấu hình lại không đồng nhất với sự linh hoạt của các bộ xử lý nhúng và hiệu quả tính toán của một số vùng cấu hình lại đã được chứng minh là có nhiều ưu điểm hơn so với nền tảng đồng nhất [1, 49] Trong một nền tảng như vậy, các bộ xử lý nhúng thường được sử dụng để quản lý và thực hiện một số tác vụ phức tạp thấp trong khi các vùng cấu hình lại được sử dụng để tăng tốc độ tính toán cho các tác

vụ phức tạp 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

Mặt khác, các yêu cầu truyền thông ngày càng gia tăng trong một hệ thống trên chip (SoC: System on Chip) phức tạp như nền tảng đa lõi không đồng nhất cấu hình lại được

Do vậy việc lựa chọn một cơ sở hạ tầng truyền thông phù hợp là cần thiết Điều này phải đảm bảo các kết nối cần thiết với một QoS được xác định trước, chẳng hạn như thông lượng hoặc trễ tối đa Tuy nhiên, trong nhiều trường hợp mức ưu tiên của các ứng dụng chưa được biết trước tại lúc thiết kế mà chỉ biết được khi chúng được triển khai vào hệ thống tại thời gian chạy Trong trường hợp này, các yêu cầu truyền thông hiệu quả không được biết đến tại thời gian tổng hợp, do đó một cơ sở hạ tầng truyền thông linh hoạt sẽ được lựa chọn Hơn nữa, một SoC phức tạp còn yêu cầu tích hợp một số lượng lớn các lõi

IP (Intellectual Property) lên nó, vì vậy, một cơ sở hạ tầng truyền thông hiệu năng cao, khả năng xử lý song song để kết nối các IP khác nhau cần được sử dụng Với yêu cầu này, các kiến trúc truyền thống như Bus chia sẻ hay kết nối trực tiếp điểm-điểm không thể áp dụng được Kiến trúc mạng trên chip (NoC: Network on Chip) ra đời 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 theo hướng công nghệ này 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, có khả năng mở rộng

và khả năng xử lý song song 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

Ngoài ra, hầu hết các nền tảng phần cứng SoC hiện nay được chế tạo trên công nghệ ASIC (Application-Specific Integrated Circuit) đó là một dạng thiết kế tĩnh, có nghĩa là các IP, hạ tầng truyền thông và các thiết bị ngoại vi không thể thay đổi sau khi sản phẩm được chế tạo Do vậy chúng khó có thể đáp ứng được các yêu cầu cho khả năng thích nghi, thay đổi một số mô đun hay sửa lỗi sau khi chế tạo Để phát triển một nền tảng SoC dạng ASIC cần phải có quỹ thời gian dài và chi phí khá cao khi yêu cầu thiết kế với số lượng sản phẩm không lớn Điều này rõ ràng bất lợi và không phù hợp với các yêu cầu như: Thời gian thiết kế sản phẩm mẫu ngắn, số lượng sản phẩm nhỏ, sản phẩm có độ linh hoạt và thích nghi cao Các hạn chế này có thể được khắc phục bằng công nghệ FPGA Một trong những tính năng đặc biệt của một FPGA hiện đại là khả năng cấu hình lại và

Trang 17

cấu hình lại từng phần động Với khả năng này, FPGA có thể thay đổi nhiều lần và thay đổi động các chức năng đã thực hiện trên các thiết bị vật lý của nó ngay khi đang còn hoạt động Do đó, FPGA được lựa chọn như một nền tảng hứa hẹn để tạo mẫu nhanh cho một

hệ thống trên chip so với ASIC [84] Điều này cũng thích hợp để xây dựng một hệ thống thích nghi Một hệ thống thích nghi [2, 87] là mô hình trong đó tác vụ tính toán có thể thay đổi và thích nghi với tình trạng tài nguyên của hệ thống hoặc các yêu cầu của ứng dụng hay hành vi của người dùng tại thời gian chạy Hơn nữa, nhờ vào sự phát triển không ngừng của công nghệ bán dẫn và công nghệ nano mà số lượng tài nguyên và tốc độ

xử lý trên FPGA đang dần tăng; giá thành và tiêu thụ năng lượng tiếp tục giảm (Hình 1) Thêm vào đó xu hướng thiết kế kết hợp giữa bộ vi xử lý và FPGA [28, 43] làm cho nó có thể phù hợp với các thiết kế hệ thống phức tạp linh hoạt trên một FPGA [6, 41]

Hình 1 Các ưu điểm của FPGA hiện đại [89]

Với những yêu cầu như vậy, việc phát triển một nền tảng nhúng đa lõi cấu hình lại được động trên FPGA dựa theo mô hình NoC có hiệu năng cao và triển khai các ứng dụng

có thể điều chỉnh mức chất lượng lên nền tảng này tại thời gian chạy là các vấn đề mới cần được nghiên cứu Đó cũng chính là động lực mạnh mẽ thôi thúc nghiên cứu sinh chọn

và thực hiện các nội dung nghiên cứu này trong luận án

2 Mục tiêu, đối tượng, phương pháp và phạm vi nghiên cứu

Mục tiêu nghiên cứu:

Xuất phát từ những vấn đề đặt ra như trên, mục tiêu chính của luận án tập trung vào phát triển một nền tảng phần cứng nhúng đa lõi cấu hình lại được kiến trúc NoC trên FPGA theo các yêu cầu thay đổi của các ứng dụng và triển khai các ứng dụng có thể điều chỉnh mức chất lượng lên nền tảng hệ thống này tại thời gian chạy Để đạt được các mục tiêu chính này luận án cần thực hiện các mục tiêu cụ thể sau đây:

Trang 18

(i) Đề xuất kiến trúc NoC hiệu năng cao bao gồm kiến trúc bộ định tuyến và bộ

giao tiếp mạng

(ii) Xây dựng nền tảng phần cứng đa lõi linh hoạt có khả năng cấu hình lại được

từng phần trên FPGA dựa trên kiến trúc NoC Nền tảng này cho phép thay đổi

tự động một số mô đun trong lớp truyền thông hoặc lớp tính toán của NoC tại thời gian chạy để thích nghi với các yêu cầu thay đổi của các ứng dụng

(iii) Xây dựng và đề xuất các thuật toán cho bài toán ánh xạ các ứng dụng có thể

điều chỉnh mức chất lượng vào nền tảng phần cứng cấu hình lại được dựa trên NoC Các vấn đề này giúp hệ thống có các khả năng: Đ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ó thể triển khai được nhiều ứng dụng hơn lên nền tảng trong điều kiện giới hạn tài nguyên phần cứng; và cho phép thêm vào hệ thống các ứng dụng mới trong tương lai

Đối tượng nghiên cứu:

Các đối tượng được nghiên cứu chính trong luận án bao gồm:

(i) Mô hình kiến trúc mạng trên chip

(ii) Công nghệ FPGA và khả năng cấu hình lại từng phần động trên FPGA

(iii) Thiết kế hệ thống nhúng trên FPGA

(iv) Các kỹ thuật ánh xạ các ứng dụng vào kiến trúc đa lõi

Phương pháp nghiên cứu:

Đầu tiên, phương pháp điều tra và phân tích dựa trên sách, tạp chí và các nguồn tài liệu khác từ Internet sẽ được sử dụng Các ưu điểm và hạn chế của các vấn đề nghiên cứu liên quan đến luận án sẽ được chỉ ra Từ đó, tác giả sẽ đề xuất một số mô hình và thuật toán cho vấn đề nghiên cứu

Cuối cùng, tính chính xác và đúng đắn của các mô hình và thuật toán đã đề xuất sẽ được kiểm chứng và phân tích bằng mô phỏng phần mềm và thực nghiệm trên các thiết bị thực tế

Phạm vi nghiên cứu:

Để thực hiện được các mục tiêu đặt ra, luận án tập trung vào nghiên cứu các vấn đề cụ thể dưới đây:

(i) Nghiên cứu mô hình kiến trúc NoC sử dụng cấu hình lưới hai chiều, kỹ thuật

điều khiển luồng wormhole, kênh ảo và giải thuật định tuyến XY để xây dựng

mô hình truyền thông NoC có hiệu năng cao

Trang 19

(ii) Nghiên cứu công nghệ FPGA của Xilinx, công nghệ cấu hình lại từng phần

động của FPGA để phát triển nền tảng phần cứng có khả năng cấu hình lại được lớp truyền thông hoặc lớp tính toán

(iii) Nghiên cứu bài toán ánh xạ các ứng dụng động có thể điều chỉnh mức chất

lượng vào nền tảng phần cứng đa lõi cấu hình lại được dựa trên NoC với giả thiết kiến trúc lớp truyền thông là cố định và chỉ cấu hình lại lớp tính toán (các PE) của NoC để thích nghi với sự chuyển đổi từ ứng dụng này đến ứng dụng khác lên nền tảng phần cứng hoặc sự thay đổi mức chất lượng của các ứng dụng Ngoài ra, luận án cũng chỉ tập trung vào nghiên cứu mô hình ứng dụng dưới dạng đồ thị tác vụ

3 Các kết quả đạt đƣợc của luận án

Luận án đã tập trung vào phát triển nền tảng phần cứng có khả năng cấu hình lại từng phần trên FPGA dựa theo kiến trúc NoC tại thời gian chạy Nền tảng này cho phép tự động cấu hình lại các mô đun của lớp truyền thông (bộ định tuyến hoặc các mô đun trong

bộ định tuyến) hoặc lớp tính toán để tối ưu hóa kiến trúc truyền thông hoặc các phần tử tính toán nhằm nâng cao hiệu năng cho hệ thống và đáp ứng với các yêu cầu thay đổi của ứng dụng Ngoài ra, một kiến trúc truyền thông NoC cũng được phát triển Trong đó, một

bộ định tuyến và một bộ giao tiếp mạng mới có hiệu năng cao cũng được đề xuất Bộ định tuyến và bộ giao tiếp mạng là các thành phần quan trọng để phát triển nền tảng phần cứng linh hoạt có khả năng cấu hình lại được nói trên

Dựa trên nền tảng đã được phát triển, một mô hình mới được xây dựng để giải quyết 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 này Mô hình này đã được mô hình hóa bằng mô hình toán học và được mô phỏng trên máy tính cá nhân (PC: Personal Computer) với xem xét ánh xạ nhiều ứng dụng vào nền tảng phần cứng tại thời gian chạy Tùy theo tình trạng tài nguyên sẵn có của nền tảng mà mô hình cho phép ánh xạ ứng dụng với một mức chất lượng phù hợp Giải pháp này tạo ra một sự linh hoạt

và thích nghi khi triển khai các ứng dụng lên nền tảng trong môi trường động, tức là tải làm việc của các ứng dụng thay đổi động và các yêu cầu chất lượng của các ứng dụng thay đổi theo hành vi của người dùng Giải pháp cũng cho phép khai thác hiệu quả và cân bằng giữa sức mạnh tính toán của các phần tử phần cứng cấu hình và sự linh hoạt của các vi xử

lý nhúng nhằm đáp ứng cho các ứng dụng yêu cầu sức mạnh tính toán lớn và có nhiều mức chất lượng Thêm vào đó, một thuật toán phân vùng và hai thuật toán ánh xạ cũng được phát triển để giải quyết bài toán ánh xạ nói trên với mục tiêu chung đó là triển khai linh hoạt các ứng dụng lên nền tảng phần cứng cấu hình lại được sao cho chất lượng dịch

vụ tổng thể của các ứng dụng sau khi triển khai đạt được cực đại Ngoài ra, giải pháp này cũng cho phép thêm vào hệ thống các ứng dụng mới trong tương lai một cách dễ dàng

Trang 20

Các kết quả đạt được của luận án đã được công bố trên các tạp chí khoa học chuyên ngành uy tín trong nước và các hội nghị quốc tế có phản biện độc lập khác nhau Một kiến trúc NoC hiệu năng cao bao gồm một bộ định tuyến và bộ giao tiếp mạng đã được đề xuất

và đăng tải trong [TC1] và [HN1] Một nền tảng phần cứng linh hoạt hỗ trợ cấu hình lại cho các mô đun truyền thông tại thời gian chạy được xuất bản trong [TC2] Một mô hình mới được xây dựng để giải quyết 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ấu hình lại được và các thuật toán ánh xạ động có chất lượng giải pháp tốt hơn một vài thuật toán liên quan cũng được đăng tải trên [HN2] và [TC3]

4 Cấu trúc của luận án

Cấu trúc của luận án bao gồm ba chương:

Trong 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.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

Trang 21

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

đề 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 Hình 1.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.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

Trang 22

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 (0,0)

Router NI

IP core (0,1)

Router NI

IP core (0,2)

Router NI

IP core (1,0)

Router NI

IP core (1,1)

Router NI

IP core (1,2)

Router NI

IP core (2,0)

Router NI

IP core (2,1)

Router NI

IP core (2,2)

Router NI

Hình 1.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

1.1.2 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ị

Trang 23

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] Hình 1.2 chỉ ra cách phân loại cấu hình mạng

Topologies

Fat tree n-dimensionalmeshes k-ary n-cubes Cube-connectedcycles

2D meshes Torus (n=2)

Hình 1.2 Phân loại cấu hình mạng NoC

1.1.2.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.3 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]

Hình 1.3 Mạng lưới n-chiều

1.1.2.2 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.4 Do đó tổng số nút có trong mạng là kn

Trang 24

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]

Hình 1.4 Mạng k-ary n-cube

1.1.2.3 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] Hình 1.5 trình bày cấu hình mạng lưới hai chiều và torus

Hình 1.5 Mạng hai chiều mesh và torus

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

1.1.3.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

Trang 25

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

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

Cơ chế điều khiển luồng này thực hiện như sau: Một flit đơn được gửi đến một cổng

ra của một bộ định tuyến tại mỗi đơn vị thời gian Bộ định tuyến sẽ gửi flit tiêu đề đến bộ định tuyến kế tiếp khi đã nhận được tail flit của gói tin như Hình 1.6a Để chống tràn bộ đệm kênh truyền ngõ vào, bộ đệm ngõ vào cần phải lớn hơn dung lượng của gói tin [32]

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

Hình 1.6 Cơ chế điều khiển luồng SAF và WH

Trong cơ chế điều khiển luồng này, một flit được định tuyến và truyền đi đến bộ định tuyến kế tiếp trước khi flit tiếp theo được truyền đến Các bộ định tuyến sẽ lưu một phần các flit của một gói tin đơn Điều này yêu cầu bộ đệm trong bộ định tuyến có kích thước

Trang 26

nhỏ Theo lý thuyết, kích thước của bộ đệm kênh truyền trong bộ định tuyến chỉ cần bằng một flit đơn (Hình 1.6b) Vì mỗi bộ định tuyến có thể chuyển tiếp các flit của một gói tin trước khi nhận đầy đủ cả gói tin, các flit được lưu trên nhiều bộ định tuyến dọc theo đường đi của gói tin [32]

Cơ chế điều khiển luồng WH tốt hơn cơ chế điều khiển SAF cả về kích thước bộ đệm yêu cầu và độ trễ Tuy nhiên, cơ chế này cũng có nhược điểm riêng là hiệu năng của mạng

bị giảm khi một gói tin bị nghẽn Các phần của một gói tin có thể được lưu trong các bộ định tuyến dọc theo đường đi của gói tin, vì thế một gói tin đơn sẽ chiếm dụng các bộ đệm trên nhiều bộ định tuyến khi nó di chuyển Khi phần đầu của gói tin không thể tiếp tục di chuyển do có xung đột Trường hợp này gọi là nghẽn HoL (Head-of-Line) Các bộ đệm bị chiếm bởi HoL sẽ ngăn các gói tin khác đang muốn đi qua đường đi của gói tin bị nghẽn

và dẫn đến giảm hiệu năng của mạng

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

Để khắc phục hiện tượng HoL xảy ra trong WH, mỗi bộ định tuyến được bổ sung một

bộ đệm kênh có kích thước đủ để chứa cả một gói tin, gói tin bị chặn sẽ được lưu tại bộ định tuyến đến khi gói tin chặn nó được truyền hết qua bộ định tuyến Ngoài ra, cơ chế này cũng cho phép truyền gói tin đi theo từng flit như kỹ thuật WH Do đó, kỹ thuật này cho phép trễ nhỏ và ít xảy ra HoL [32]

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

Trong các cơ chế điều khiển luồng trên đây, mỗi kênh liên kết vật lý cần một bộ đệm kết hợp với một FIFO để lưu trữ các flit đi vào bộ định tuyến Bộ đệm này chứa các flit của một gói tin đơn và nếu như gói tin bị chặn thì liên kết vật lý sẽ ở trạng thái rỗi do không có gói tin nào khác có thể yêu cầu tài nguyên bộ đệm để truy cập kênh truyền

Cơ chế điều khiển luồng kênh ảo được đưa ra để khắc phục nhược điểm này Cơ chế này tạo ra nhiều bộ đệm cho mỗi kênh trong mạng Mỗi bộ đệm có thể chứa một hay nhiều flit của một gói tin kết hợp với thông tin trạng thái gói tin Nếu gói tin hiện đang sử dụng kênh liên kết vật lý bị chặn thì các gói tin khác có thể yêu cầu các bộ đệm ngõ vào khác để sử dụng kênh liên kết vật lý Như vậy, các gói tin có thể dùng chung một kênh vật

lý đồng thời và chia sẻ băng thông của mạng Mỗi gói tin sẽ sử dụng một kênh logic – kênh ảo Do vậy, vài kênh ảo có thể cùng dùng chung một kênh vật lý Khi các kênh ảo trong mạng tăng thì sẽ kéo theo hiệu năng mạng và băng thông cũng tăng lên

Trang 27

1.1.4 Thuật toán định tuyến

1.1.4.1 Phân loại định tuyến

Có nhiều cách phân loại thuật toán định tuyến dựa trên các tiêu chí khác nhau Nếu phân loại theo vị trí mà tại đó thực hiện định tuyến, ta có hai loại định tuyến: Định tuyến nguồn (Source Routing) và định tuyến phân tán (Distribution Routing) Phân loại theo việc lựa chọn thông tin định tuyến có hai loại định tuyến: Định tuyến xác định (Deterministic routing) và định tuyến thích nghi (Adaptive routing) Phân loại theo đường

đi của gói tin được chọn có hai loại định tuyến: Định tuyến ngắn nhất (Minimal routing)

và định tuyến không ngắn nhất (non-minimal routing) [72] Hình 1.7 trình bày các phương pháp phân loại định tuyến trong NoC

Định tuyến nguồn: Bộ định tuyến nguồn gói tin quyết định toàn bộ đường đi của gói tin trước khi gói tin được truyền đi Thuật toán này đòi hỏi gói tin phải mang thêm nhiều thông tin định tuyến và đường đi của gói tin là cố định trong quá trình di chuyển

Định tuyến phân tán: Các bộ định tuyến đích được gói tin và quyết định chuyển tiếp gói tin cho bộ định tuyến kế tiếp nào Như vậy trong mỗi bộ định tuyến sẽ chứa bảng định tuyến riêng và độ trễ định tuyến tại mỗi bộ định tuyến sẽ ảnh hưởng đến hiệu năng của mạng

Định tuyến xác định: Việc lựa chọn đường đi của gói tin trong mạng được xác định bởi thông tin địa chỉ của bộ định tuyến nguồn và bộ định tuyến đích

Định tuyến thích nghi: Việc lựa chọn đường đi của gói tin trong mạng được xác định dựa vào thông tin về địa chỉ của bộ định tuyến nguồn, bộ định tuyến đích và các thông tin khác như điều kiện hoạt động của mạng tại thời điểm định tuyến (lỗi kênh truyền, nghẽn mạng) Định tuyến này đòi hỏi mỗi bộ định tuyến cần có thông tin của toàn bộ mạng và dẫn đến việc tăng thêm lưu lượng mạng dành cho việc truyền thông tin định tuyến

Routing

Distributed Source

Minimal Non-min Minimal Non-min Minimal Non-min Minimal Non-min

Hình 1.7 Phân loại các thuật toán định tuyến trong NoC

Định tuyến ngắn nhất: Đường đi của gói tin được chọn là một trong số những đường

đi ngắn nhất giữa bộ định tuyến nguồn và bộ định tuyến đích

Trang 28

Định tuyến không ngắn nhất: Đường đi của gói tin được chọn có thể là ngắn nhất hoặc không là ngắn nhất

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

Các thuật toán định tuyến ra đời với nhiều cơ chế và hoạt động riêng, với mỗi thuật toán sẽ có sự phù hợp nhất định với một kiểu cấu hình mạng hay nhu cầu băng thông cũng như sử dụng tài nguyên phần cứng Nhưng tất cả các thuật toán định tuyến đều hướng đến giải quyết bài toán tìm đường và chống lại những vấn đề gây ra nghẽn mạng, giảm băng thông và giảm hiệu năng của toàn mạng Những vấn đề chính trong định tuyến bao gồm: Deadlock, Livelock và trì hoãn không xác định (Indefinite Postponement) [21]

Deadlock: Khi gói tin di chuyển trong mạng bị một gói tin khác tranh giành tài nguyên kênh truyền dẫn đến nghẽn mạng, một loạt các gói tin chặn lẫn nhau trong mạng làm mạng không thể tiếp tục vận chuyển các gói tin khác

Livelock: Gói tin bị chuyển tiếp liên tục trong mạng không dừng do không tìm được

bộ định tuyến đích

Trì hoãn không xác định: Gói tin chờ được phục vụ trong hàng đợi hay bộ đệm kênh truyền nhưng không bao giờ được phục vụ do tài nguyên cần cấp phát liên tục bị chiếm dụng bởi gói tin khác

Như vậy, yêu cầu được đặt ra là các thuật toán định tuyến phải đảm bảo không bị Deadlock (Deadlock-free), không bị Livelock (Livelock-free) và tính xác định cho việc cấp phát tài nguyên cho mỗi gói tin đến bộ định tuyến Các yêu cầu này song song cùng với những yêu cầu cơ bản hay gặp trong các thiết kế mạng nói chung bao gồm: Trễ truyền thông nhỏ, băng thông mạng cao và dễ dàng triển khai thực tế

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

Bộ định tuyến được xem như trái tim của một mạng trên chip Nó ảnh hưởng trực tiếp đến hiệu năng và chi phí toàn mạng Tuy nhiên, hiệu năng, chi phí và hiệu quả của bộ định tuyến phụ thuộc chủ yếu vào kiến trúc của nó Kiến trúc tổng quát của bộ định tuyến được trình bày như Hình 1.8

Chức năng chính của bộ định tuyến là chuyển tiếp các flit từ các kênh ngõ vào đến các kênh ngõ ra một cách thích hợp Các mô đun chính trong bộ định tuyến bao gồm:

Mô đun tính toán định tuyến: Mô đun này có nhiệm vụ chọn một cổng ra phù hợp và một tập hợp các ứng viên kênh ảo ngõ ra cho mỗi gói tin theo thuật toán định tuyến được thực hiện trong mạng Bước này chỉ được thực hiện cho flit tiêu đề, các flit tiếp theo của gói tin này chỉ đơn giản chuyển đến cổng ra đã được chọn

Trang 29

Hình 1.8 Kiến trúc tổng quát của một bộ định tuyến [7]

Mô đun cấp phát kênh ảo: Điều khiển luồng VC yêu cầu mỗi gói tin để đảm bảo truy cập độc quyền đến một VC ngõ ra, VC tại cổng đích đã chọn trước khi các flit có thể được chuyển tiếp Mô đun cấp phát VC gán các VC ngõ ra sẵn có để đợi các gói tin ở cổng vào của bộ định tuyến

Mô đun cấp phát chuyển mạch: Khi một gói tin đã được gán đến một cổng ra và VC,

nó có thể tham gia cấp phát chuyển mạch Cấp phát chuyển mạch chịu trách nhiệm thiết lập một lịch trình crossbar bằng cách gán các khe thời gian để đợi các flit tại cổng vào của

bộ định tuyến Đặc biệt, nó phải giải quyết xung đột giữa các flit đã được dành riêng từ trước cho cùng một cổng ra

Switch traversal: Cuối cùng, sau khi nhận được một sự cho phép từ mô đun cấp phát chuyển mạch, một flit có thể đi qua chuyển mạch crossbar trung tâm của bộ định tuyến trong chu kỳ tiếp theo để đi đến ngõ ra của nó và tiếp tục cuộc hành trình của nó trong mạng

Tránh tắc nghẽn, giảm HoL và cải thiện hiệu năng mạng là các tiêu chí được quan tâm trong nghiên cứu của tác giả Để giải quyết vấn đề này, nhiều nghiên cứu tập trung vào tối

ưu bộ đệm hoặc sử dụng hợp lý các kênh ảo trong bộ định tuyến Bởi vì, khi các gói tin không thể chuyển tiếp tức thời, lúc đó chúng sẽ được lưu trữ tạm thời trong bộ đệm FIFO tại cổng vào (ra) của bộ định tuyến cho đến khi chúng có thể chuyển đến các mô đun kế tiếp Không gian đệm được cấp phát theo kích thước cố định của các flit, do đó một hoặc nhiều trong số đó được chia hợp lý vào các VC để tránh bế tắc và giảm HoL [20-21]

Trang 30

1.2 Công nghệ FPGA

FPGA là một mạch tích hợp đặc biệt (IC: Integrated Circuit) được thiết kế để cấu hình bởi các nhà thiết kế sau khi nó được chế tạo để đạt được các tùy chọn về chức năng logic hoặc số học FPGA được giới thiệu lần đầu tiên vào thị trường IC thương mại năm 1985 bởi Xilinx Ngày nay, FPGA đang được sử dụng rộng rãi trong các lĩnh vực và đóng vai trò quan trọng trong các thiết kế nhúng hiện đại Các sản phẩm FPGA hiện đại [26] tận dụng các tiến bộ công nghệ bán dẫn, kết hợp cả hai phần tử Logic lập trình (LE: Logic Element) và các lõi IP cứng trên cùng một đế bán dẫn, đặc biệt với khả năng cấu hình lại động từng phần giúp FPGA có thể thay đổi các chức năng đã được thực hiện trên thiết bị vật lý tại thời gian chạy mà không cần phải dừng hệ thống Chúng cung cấp đầy đủ các khả năng của chip và thiết kế thuận tiện Do vậy, FPGA là một nền tảng hứa hẹn để tạo mẫu nhanh chóng cho một hệ thống trên một FPGA (System-on-an-FPGA)[6], trong đó

có bộ vi xử lý, bộ điều khiển bộ nhớ, các bộ tăng tốc phần cứng cũng như các bộ điều khiển thiết bị ngoại vi, v.v Điều này được chứng minh qua các kết quả báo cáo về thị trường tiêu thụ và các lĩnh vực ứng dụng công nghệ FPGA Hình 1.9 cho thấy sự tăng công suất của các sản phẩm từ các nhà cung cấp FPGA trên thị trường trong giai đoạn từ năm 1999 đến năm 2013 và dự báo đến năm 2020

Hình 1.9 Thị trường cung cấp FPGA bởi các nhà sản xuất [78]

FPGA được sử dụng rộng rãi trong các lĩnh vực ứng dụng khác nhau Hình 1.10 cho thấy số liệu thống kê của một số lĩnh vực quan trọng nhất Các lĩnh vực viễn thông chiếm hơn 33% thị phần của FPGA trong năm 2014 và dự kiến sẽ tiếp tục thống trị trong bảy năm tiếp theo Điều này có được là do nhu cầu băng thông cao cho các ứng dụng video Các nhà khai thác đang chuyển hướng tới các giải pháp xanh để giảm chi phí năng lượng

và tăng hiệu quả hoạt động tổng thể

Trang 31

Hình 1.10 Quy mô thị trường ứng dụng của FPGA khu vực Châu Á Thái Bình Dương [42]

Xu hướng tăng các mạch tích hợp nhúng trong xe ô tô cũng được dự báo sẽ là động lực quan trọng đối với phân khúc thị trường ô tô Nó chiếm hơn 17% tổng thị trường FPGA vào năm 2014 và được dự báo sẽ có tốc độ tăng trưởng kép hàng năm CAGR (Compound Annual Growth Rate) trên 8,5% từ 2015-2022 Cũng theo báo cáo này, rõ ràng thị trường sử dụng FPGA tiếp tục tăng trưởng nhanh trong những năm tiếp theo

1.2.1 Kiến trúc FPGA

1.2.1.1 Tổng quan kiến trúc FPGA

FPGA bao gồm các thành phần: Các khối logic cấu hình được (Logic block), hệ thống mạch liên kết cấu hình được, các khối vào/ra (I/O block) và có thể có các khối logic chuyên dụng khác như bộ nhân, khối điều khiển bộ nhớ, khối điều khiển ethernet-MAC, v.v như Hình 1.11

Hình 1.11 Kiến trúc chung của FPGA

Các khối logic đóng vai trò là nguồn tạo ra các hàm logic Các khối logic chứa LUT (Lookup Table) thực hiện các mạch tổ hợp, các flip-flop thực hiện các thanh ghi hay phần

tử nhớ cho mạch tuần tự Ngoài ra, các khối logic này còn chứa bộ cờ nhớ để thực hiện

Trang 32

các mạch toán học và các bộ chọn kênh, ghép các LUT lại tạo thành mạch điện có nhiều ngõ vào hơn

Các khối vào/ra cho phép FPGA liên kết với mô đun ngoại vi qua các chân của FPGA Mỗi khối này đều có khả năng cấu hình để chọn chiều tín hiệu, chuẩn điện áp tín hiệu hay độ trễ tín hiệu vào/ra FPGA

Mạch liên kết hay các dây nối thực hiện kết nối các khối logic với nhau và kết nối các khối logic với chân của FPGA, các mạch liên kết này giao nhau bằng các chuyển mạch cấu hình được

Tùy theo công nghệ cấu hình của các khối logic, các khối vào/ra và các dây nối khác nhau mà FPGA có thể sử dụng các công nghệ cấu hình khác nhau như EPROM, EEPROM, flash, SRAM và antifuse [26] Trong đó, các công nghệ dựa trên flash, SRAM

và antifuse được sử dụng nhiều hơn trong các FPGA hiện nay

Thiết kế với FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL (Hardware Description Language) như VHDL, Verilog, AHDL [16-17, 26] Các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các bộ công cụ phần mềm và thiết bị phụ trợ cho quá trình thiết kế [3, 94] Ngoài ra, cũng có một số các hãng thứ ba cung cấp các công cụ phần mềm khác hỗ trợ cho thiết kế FPGA như Synopsys, Synplify, v.v Các

bộ phần mềm này có khả năng thực hiện tất cả các bước trong toàn bộ quy trình thiết kế FPGA

1.2.1.2 Kiến trúc FPGA của Xilinx

Trong luận án này, tác giả sử dụng dòng FPGA Virtex-6 của Xilinx do đó tác giả tiếp tục giới thiệu sơ lược về kiến trúc FPGA do hãng Xilinx sản xuất để làm rõ thêm vấn đề Kiến trúc chung FPGA của Xilinx tương đồng với các thành phần của FPGA như đã nêu ở trên Tuy nhiên, FPGA của Xilinx có một số đặc điểm thiết kế đặc trưng khác đó là: Các khối logic khả cấu hình (CLB: Configurable logic block): Là tên gọi của các khối logic với FPGA của Xilinx Mỗi CLB chứa 2 hoặc 4 slice logic, mỗi slice logic chứa 2 hoặc 4 LUT Tùy vào kiến trúc của họ FPGA mà trong mỗi slice sẽ có số flip-flop bằng số LUT hoặc gấp đôi và số ngõ vào của LUT có thể là 4 hay 6 Hình 1.12 mô tả một slice của FPGA Virtex-6 Các LUT trong FPGA của Xilinx có thể làm việc như các mạch tổ hợp, các bộ nhớ phân tán hoặc các thanh ghi dịch [26]

Các khối logic chuyên dụng (Dedicated block): Xilinx tích hợp các khối logic chuyên dụng, việc tích hợp này tùy vào dòng chip khác nhau mà số lượng khối logic được tích hợp sẽ khác nhau Thông dụng nhất là các khối nhân, các khối cộng, các khối xử lý xung nhịp, các khối đệm xung nhịp Các dòng chip hiệu năng cao hay xử lý tín hiệu số có các

Trang 33

khối DSP chuyên dụng, các khối giao tiếp tuần tự tốc độ cao Một số dòng chip có tích hợp lõi vi xử lý PowerPC/ARM và các khối điều khiển Ethernet tốc độ cao, các khối điều khiển bộ nhớ DDR (Double Data Rate), các khối điều khiển cấu hình ICAP (Internal Configuration Access Port), v.v

Hình 1.12 Một Slice của FPGA Xilinx Virtex-6 [95]

Trong những năm gần đây, Xilinx [96] đã cho ra đời các dòng sản phẩm FPGA mới

từ dòng phổ thông đến dòng cao cấp như Virtex-6,7 dòng chip hiệu năng cao; Spartan-6,7

và Artix-7 dòng chip rẻ tiền nhất; Kintex-7 dòng chip dùng cho ứng dụng xử lý tín hiệu; Zynq-7000 dòng chip SoC Các dòng này được sản xuất theo công nghệ 28 nm, tiết kiệm điện năng Dòng cao cấp như Virtex và Kintex UltraScale được sản xuất với công nghệ 20nm Dòng Virtex và Kintex UltraScale+ được sản xuất với công nghệ 16nm Với sự phát triển không ngừng của công nghệ FPGA, mật độ tích hợp tài nguyên và tốc độ hoạt động của chúng ngày càng tăng, giá thành và tiêu thụ năng lượng liên tục giảm [89] Thêm vào đó, các chức năng đặc biệt cũng được tích hợp lên chúng giúp cho việc thiết kế một nền tảng phần cứng trên FPGA cấu hình lại được trở nên dễ dàng và nhanh chóng

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

Cấu hình lại được từng phần (PR: Partial Reconfiguration) là khả năng thay đổi một cách linh hoạt các khối logic phần cứng bằng cách cấu hình lại các phân vùng tương ứng trên thiết bị bằng các tập tin bitstream từng phần

Trang 34

Với khả năng này, phần cứng của FPGA có thể tái lập trình giống như phần mềm Khả năng này giúp FPGA mềm dẻo hơn, có thể tái cấu hình lại khi đang sử dụng để phù hợp với một thiết kế mới mà không cần phải chế tạo lại nền tảng phần cứng Đặc biệt hơn

PR cho phép thay đổi một thiết kế FPGA khi đang hoạt động bằng việc nạp xuống một file cấu hình, thường là file cấu hình BIT từng phần Sau khi một file cấu hình BIT toàn phần được nạp xuống chip FPGA, file BIT từng phần có thể được nạp xuống để thay đổi chức năng phần cứng của một vùng cấu hình mà không làm ảnh hưởng đến bất kỳ một hoạt động nào của hệ thống FPGA cũng như các vùng không cấu hình Các dòng Virtex, Kintex, Spartan 6,7 và cả Zynq đều được hỗ trợ chức năng PR

Hình 1.13 Minh họa thiết kế cấu hình lại từng phần

Hình 1.13 minh họa một thiết kế sử dụng cấu hình lại từng phần Mỗi ô vuông là một CLB trên chip FPGA Những ô vuông tô màu là những SLB được sử dụng cho thiết kế Thiết kế này được chia làm hai phần: Phần không cấu hình lại (Static) và phần cấu hình lại được (RM: Reconfigurable Modul)

Thông thường, cấu hình lại một FPGA yêu cầu việc thiết lập lại với một bộ điều khiển bên ngoài để tải và nạp lại một thiết kế vào nó Cấu hình lại từng phần cho phép các bộ phận quan trọng của thiết kế tiếp tục hoạt động trong khi một bộ điều khiển trên FPGA hoặc bên ngoài nó tải một thiết kế từng phần vào trong một mô đun cấu hình lại được Cấu hình lại từng phần cũng có thể được sử dụng để tiết kiệm không gian lưu trữ bằng cách chỉ lưu trữ những thiết kế từng phần mà có sự thay đổi giữa các thiết kế Quy trình thực hiện cấu hình lại từng phần cho FPGA được chỉ ra như Hình 1.14

Dựa vào đặc điểm quá trình cấu hình mà cấu hình lại từng phần có thể được chia thành hai loại sau:

Cấu hình lại từng phần động cho phép thay đổi từng phần của hệ thống trong khi phần còn lại của FPGA vẫn hoạt động bình thường

Trang 35

Hình 1.14 Quy trình thực hiện cấu hình từng phần cho FPGA [97]

Cấu hình lại từng phần tĩnh cho phép cấu hình lại một phần của hệ thống và các phần còn lại phải ngừng hoạt động Hệ thống sẽ hoạt động trở lại sau khi phần cấu hình lại đã hoàn thành

Loại cấu hình được tập trung sử dụng trong luận án này là cấu hình lại từng phần động Tiếp theo, chúng ta thảo luận kỹ hơn về loại cấu hình này

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

Khả năng cấu hình lại động trong các FPGA hiện đại đã làm tăng thêm tính linh hoạt,

độ tin cậy và khả năng thích nghi với hệ thống thiết kế Khả năng cấu hình lại tại thời gian chạy vượt qua những giới hạn trong thiết kế tĩnh trước đây [18] Những hạn chế này là nguyên nhân chính làm giảm tính linh hoạt và độ tin cậy Thông thường, một hệ thống cấu hình lại từng phần động (DPR: Dynamic Partial Reconfiguration) được thiết kế bao gồm các thành phần sau:

• Phần động (Dynamic Part)

Phần động là những phần độc lập của thiết kế đầu vào mà không cần phải hoạt động trong suốt thời gian chạy của ứng dụng Các vùng được tạo ra trên vùng này có thể được thay đổi tại thời gian chạy bằng cách nạp lại các bitstream từng phần

• Phần tĩnh (Static Part)

Phần tĩnh là một phần của thiết kế đầu vào và nó hoạt động trong suốt thời gian chạy ứng dụng Nó được đặt trong khu vực tĩnh của một thiết bị và được giữ nguyên vẹn trong suốt quá trình hệ thống hoạt động Ngoài chức năng tiêu chuẩn của nó, nó còn cung cấp

Trang 36

một cơ sở hạ tầng để tải và gỡ bỏ các bộ phận khác của thiết kế, đó là hệ thống lập lịch, quản lý dữ liệu và quản lý giao diện Phần tĩnh bao gồm bộ điều khiển cấu hình và logic cần thiết cho việc quản lý dữ liệu và giao diện Tất cả các đầu vào/đầu ra của các ứng dụng được quản lý bởi phần tĩnh, giao tiếp với các mô đun động thông qua một giao diện

cố định

• Macro bus (Bus Macro)

Macro bus được sử dụng như các đường dẫn dữ liệu cố định cho các tín hiệu đi qua giữa một mô đun cấu hình lại và thành phần khác Các thiết kế phải đảm bảo rằng bất kỳ tín hiệu nào của mô đun cấu hình lại được giao tiếp với một thành phần khác chỉ bằng cách thông qua một macro bus Macro bus là một phần trung tâm của một thiết kế cấu hình lại Nó chuyển tải lệnh và dữ liệu vào/ra các mô đun cấu hình lại và nó là đường duy nhất để các mô đun cấu hình lại tiếp cận với thế giới bên ngoài

• Bộ điều khiển cấu hình (Configuration Controller)

Bộ điều khiển cấu hình là một phần của mô đun tĩnh Nó có nhiệm vụ tải hoặc gỡ bỏ các mô đun động Thông thường, bộ điều khiển cấu hình là một bộ vi điều khiển Bộ điều khiển cấu hình làm việc một cách tự động Điều đó có nghĩa cấu hình lại không cần bất kỳ một việc điều khiển bằng tay Tất cả việc chúng ta cần làm là lập trình cho vi điều khiển biết khi nào cần cấu hình và cấu hình với mô đun nào để nó thực thi Điều này có thể được thực hiện bằng cách sử dụng chương trình C hoặc C++ tùy thuộc vào sự thuận tiện của các phương tiện thiết kế

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

Cấu hình lại từng phần động là một trong những tính năng quan trọng làm cho FPGA trở nên độc đáo Sau đây là các lợi ích quan trọng có thể đạt được khi khai thác chức năng cấu hình lại động từng phần

(i) Diện tích cấu hình lại được có thể được khai thác hiệu quả hơn so với một thiết kế tĩnh Có những ứng dụng đòi hỏi phải có một diện tích phù hợp cho việc triển khai hệ thống Trong trường hợp này nhiều tài nguyên cấu hình lại được phải được thêm vào hệ thống hoặc cấu hình từng phần động của tài nguyên có sẵn có thể được thực hiện, đặc biệt nếu một ứng dụng có thể được phân chia thành các giai đoạn khác nhau, mỗi giai đoạn được xây dựng theo các kết quả trước đó, trên một tập dữ liệu cụ thể Trong trường hợp này, các mô đun khác nhau của ứng dụng có thể được cấu hình trên thiết bị theo các giai đoạn khác nhau để xử lý dữ liệu và có được kết quả cuối cùng, trong khi vẫn tiết kiệm được tài nguyên và diện tích

(ii) Một vài phần của ứng dụng phải thay đổi theo thời gian và tác động trở lại với những thay đổi trong môi trường của nó Với cấu hình lại từng phần động, một phần của

Trang 37

các phần cứng có thể được điều chỉnh theo thời gian để đối phó với các yêu cầu ứng dụng mới, mở ra một sự linh hoạt cao trong thiết kế hệ thống Theo cách này, hệ thống thích nghi có thể được tạo ra, khắc phục các nhược điểm vốn có của giải pháp thiết kế phần cứng tĩnh

(iii) Giảm thời gian cấu hình lại: Thời gian cấu hình tỷ lệ thuận với kích thước của bitstream Cấu hình lại từng phần cho phép thực hiện các thay đổi nhỏ mà không cần phải cấu hình lại toàn bộ thiết bị Bằng cách cấu hình lại bitstream từng phần thay vì cấu hình lại toàn bộ thiết bị, nên tổng thời gian cấu hình lại sẽ được rút ngắn

Giải pháp cấu hình từng phần động sẽ giải quyết được tình trạng thiết bị thiếu tài nguyên trong khi yêu cầu triển khai nhiều ứng dụng Thêm vào đó, nó cũng là giải pháp tốt để thiết kế các hệ thống có khả năng thích nghi với các yêu cầu thay đổi của ứng dụng

ở hiện tại và tương lai Ngoài ra, khả năng cấu hình lại từng phần động cũng được xem như một giải pháp cân bằng giữa tốc độ tính toán của phần cứng và sự linh hoạt của phần mềm

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

Một hoặc nhiều bitstream là cần thiết để cấu hình một FPGA với ứng dụng yêu cầu Một bitstream là một tập tin nhị phân trong đó thông tin cấu hình cho một thiết bị Xilinx

cụ thể được lưu trữ, đó là nơi mà các dữ liệu được sao chép vào các tế bào cấu hình SRAM, bộ nhớ cấu hình được lưu giữ cùng với các lệnh thích hợp cho việc kiểm soát các chức năng chip Do đó các thiết bị Virtex như Virtex-6 hoặc Virtex-7 được cấu hình bằng cách tải dữ liệu ứng dụng cụ thể vào bộ nhớ cấu hình của chúng, điều này được thể hiện như trong Hình 1.15

Hình 1.15 Tổng quan cấu hình lại từng phần động và bộ nhớ cấu hình [77]

Trên FPGA Virtex các bộ nhớ cấu hình được phân đoạn thành các khung Một khung

là đơn vị nhỏ nhất của cấu hình lại Tùy theo thiết bị, phần tử này có thể kéo dài toàn bộ

Trang 38

FPGA, chẳng hạn như trong Virtex-II pro hoặc chỉ một phần của nó như trong Virtex-6

Số khung và bit trong mỗi khung là xác định cho mỗi họ thiết bị Số lượng các khung tỉ lệ với chiều rộng CLB Các bitstream có thể là một phần hoặc toàn phần Một bitstream toàn phần cấu hình cả bộ nhớ cấu hình và được sử dụng cho thiết kế tĩnh hoặc bắt đầu thực hiện của một hệ thống cấu hình lại động để xác định trạng thái ban đầu của các tế bào SRAM Các bitstream từng phần cấu hình chỉ một phần của các thiết bị và một trong những sản phẩm cuối cùng của luồng thiết kế cấu hình lại từng phần bất kỳ

Các FPGA cung cấp các phương tiện khác nhau cho cấu hình, dưới hình thức của các giao diện khác nhau đến logic cấu hình trên chip Có một vài chế độ và các giao diện để cấu hình một họ FPGA cụ thể, trong đó có cáp tải về JTAG, giao diện SelectMAP, một cổng truy cập cấu hình bên trong ICAP và tùy thuộc vào họ FPGA cụ thể ICAP cung cấp một giao diện mà có thể được sử dụng bởi logic bên trong để cấu hình lại và đọc ngược bộ nhớ cấu hình Trong mỗi FPGA một logic cấu hình được xây dựng trên chip, với mục đích thực hiện các giao diện khác nhau để trao đổi dữ liệu cấu hình và diễn giải bitstream để cấu hình thiết bị Một tập hợp các thanh ghi cấu hình xác định trạng thái của logic cấu hình này tại bất kỳ thời điểm nào Các thanh ghi cấu hình là bộ nhớ chứa file bitstream có quyền truy cập trực tiếp Dữ liệu cấu hình thực tế đầu tiên được ghi bởi các bitstream vào các thanh ghi và sau đó được sao chép bởi logic cấu hình trong các SRAM cấu hình

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

1.3.1 Bài toán ánh xạ

Bài toán ánh xạ ứng dụng lên nền tảng NoC đã được xây dựng trong [39] đó là quá trình gán các tác vụ của ứng dụng vào các PE của Noc Nó là một trường hợp của phép gán bậc hai (quadratic assignment) đã được chứng minh là một vấn đề NP-hard [31] Không gian tìm kiếm tăng giai thừa lần theo kích thước hệ thống Ví dụ, một NoC có kích thước 8x8, theo lý thuyết có thể có 64! trường hợp ánh xạ

Tổng quát, nếu ánh xạ N tác vụ vào M nút mạng (NM) thì có thể có

M

trường hợp ánh xạ các tác vụ vào các nút của NoC Trong trường hợp số tác vụ bằng số

nút mạng (M=N) thì số trường hợp ánh xạ trở thành M! Ánh xạ có ảnh hưởng trực tiếp

đến hiệu năng của NoC như độ trễ, thông lượng, tiêu thụ điện năng, năng lượng, v.v Vì vậy cần phải có các kỹ thuật ánh xạ hiệu quả để tối ưu các thông số này Kỹ thuật ánh xạ phụ thuộc vào các yếu tố sau đây:

(i) Mô hình ứng dụng (ví dụ: Task Graph [25], Data Flow Graph [88], v.v.)

(ii) Mô hình kiến trúc nền tảng phần cứng (ví dụ: Nền tảng đồng nhất, không đồng nhất, số lượng PE và loại PE, v.v.)

Trang 39

(iii) Các tham số ràng buộc của ứng dụng (ví dụ: Hiệu năng tính toán, trễ truyền thông, mức chất lượng, v.v.)

(iv) Mô hình thực hiện truyền thông giữa các PE (ví dụ: Thời gian thực hiện, năng lượng tiêu thụ, v.v.)

(v) Ước lượng thời gian thực hiện trên các PE khác nhau

Bài toán ánh xạ các tác vụ của ứng dụng lên nền tảng NoC có thể được thực hiện tại thời gian thiết kế (design-time) hoặc sau khi thiết kế tức là khi hệ thống đang hoạt động (run-time) Đối với kỹ thuật ánh xạ tại thời gian thiết kế hay gọi là ánh xạ tĩnh thì kiến trúc nền tảng và ứng dụng đã được biết trước, vì vậy chúng không phù hợp cho việc thêm các ứng dụng mới vào hệ thống tại thời gian chạy Đối với kỹ thuật ánh xạ tại thời gian chạy hay gọi là ánh xạ động thì gần như các ứng dụng đều có thể chạy trên hệ thống khi

hệ thống đang hoạt động, kỹ thuật này là một giải pháp phù hợp cho việc triển khai nhiều ứng dụng lên hệ thống có tài nguyên giới hạn Sau khi ánh xạ các tác vụ lên hệ thống thì một số tác vụ đã được ánh xạ có thể được điều chỉnh vị trí, nếu yêu cầu người dùng thay đổi hoặc có ứng dụng mới đưa vào hệ thống

Trong phần tiếp theo, các kỹ thuật ánh xạ tĩnh và ánh xạ động sẽ thảo luận chi tiết hơn Tuy nhiên, luận án này sẽ tập trung vào kỹ thuật ánh xạ động, do đó chúng ta nghiên cứu sâu hơn về kỹ thuật này

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

Kỹ thuật ánh xạ tại thời gian thiết kế cho kiến trúc nền tảng đa lõi dựa trên kiến trúc NoC được trình bày trong [65, 79] Trong [65], Murali và cộng sự trình bày một phương pháp mà cho phép ánh xạ nhiều yêu cầu của nhiều người dùng lên NoC và các tham số ràng buộc cho mỗi người dùng có thể được điều chỉnh Rhee và cộng sự [79] nghiên cứu bài toán ánh xạ CSM, theo phương pháp này thì các tác vụ được ánh xạ lên PE trên NoC sao cho công suất tiêu thụ thấp nhất và các gói tin được truyền nhận là ít tắc nghẽn nhất Các phương pháp tìm kiếm cũng được sử dụng để phát triển các kỹ thuật ánh xạ tĩnh nhằm tìm ra các vị trị đặt tối ưu cho các tác vụ lên các PE Phương pháp Genetic được sử dụng trong [53, 93], tìm kiếm Tabu trong [59], Simulated Annealing [56] Orsila và cộng

sự [73] đề xuất một thuật toán Simulated Annealing để tối ưu hóa thời gian thực hiện và công suất tiêu thụ, trong khi các phương pháp truyền thống chỉ tập trung vào thời gian thực hiện

Các kỹ thuật ánh xạ tĩnh đều tìm vị trí để đặt các tác vụ vào các PE tại thời gian thiết

kế Vì thế, các kỹ thuật này là không phù hợp cho việc thực hiện lúc hệ thống đang hoạt động Do đó, một kỹ thuật ánh xạ động là cần thiết để triển khai các ứng dụng tại thời gian chạy để có thể tối ưu hóa hiệu năng cho hệ thống tại thời gian chạy

Trang 40

1.3.3 Ánh xạ tại thời gian chạy

Ngược lại với ánh xạ tại thời gian thiết kế là kỹ thuật ánh xạ tại thời gian chạy Kỹ thuật này yêu cầu xem xét về thời gian để ánh xạ các tác vụ bởi vì nó làm tăng tổng thời gian thực hiện của ứng dụng Do đó, thuật toán tham lam thường được sử dụng để ánh xạ hiệu quả nhằm tối ưu các thông số như năng lượng tiêu thụ, độ trễ truyền thông, thời gian thực hiện, v.v

Một vài ưu điểm của ánh xạ động so với ánh xạ tĩnh được tóm tắt như sau:

(i) Khả năng thích nghi với nguồn tài nguyên sẵn có: Các nguồn tài nguyên sẵn có sẽ thay đổi khi các ứng dụng được đưa vào hệ thống lúc đang hoạt động

(ii) Khả năng cho phép nâng cấp hệ thống: Nó có thể nâng cấp hệ thống để cho phép ứng dụng mới có thể hoạt động được hoặc thay đổi các tiêu chuẩn mà không được biết đến tại lúc thiết kế, thậm chí sau khi đã đưa tới tay người dùng

(iii) Khả năng để tránh các phần bị hỏng trong một nền tảng: Nếu một hoặc nhiều PE hoạt động không đúng chức năng sau khi sản xuất, hoặc theo thời gian làm cho một số phần tử xử lý bị hỏng mà chúng ta không thể biết trước tại lúc thiết kế thì các bộ phận lỗi đó có thể bị vô hiệu hóa trước khi thực hiện quá trình ánh xạ [61] Khi các ứng dụng đã được ánh xạ bắt đầu thực thi, quá trình ánh xạ một hoặc nhiều ứng dụng đang chạy cần phải được xem xét các vấn đề sau:

(i) Một ứng dụng mới được đưa vào hệ thống và nó cần tài nguyên từ các ứng dụng vừa mới thực hiện

(ii) Các thông số của một ứng dụng đang chạy được sửa đổi

(iii) Một ứng dụng đang chạy cần phải kết thúc để giải phóng tài nguyên chiếm giữ (iv) Yêu cầu hiệu năng của một ứng dụng đang chạy bị thay đổi Điều này có thể cần thêm tài nguyên để thực hiện các chức năng bổ sung

(v) Quá trình ánh xạ hiện tại là không đủ tối ưu, nó yêu cầu ánh xạ lại

Những vấn đề nêu trên chỉ có thể được giải quyết bằng các kỹ thuật ánh xạ tại thời gian chạy

1.4 Kết luận chương

Trong chương này, tác giả đã trình bày cơ sở lý thuyết về kiến trúc NoC, công nghệ FPGA và ánh xạ các ứng dụng vào NoC Mạng trên chip ra đời như là một giải pháp thay thế cho kiến trúc Bus và kết nối điểm-điểm trong việc phát triển một nền tảng phần cứng

đa lõi Có nhiều nghiên cứu cho NoC, một trong những hướng nghiên cứu được quan tâm nhiều trong thời gian gần đây đó là nghiên cứu cải tiến kiến trúc bộ định tuyến và ánh xạ động các ứng dụng vào NoC để tăng hiệu năng mạng, tiết kiệm chi phí thực hiện Ngoài

Ngày đăng: 17/05/2017, 20:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Abdelfattah Mohamed S, Andrew Bitar, and Vaughn Betz (2015), "Take the highway: Design for embedded NoCs on FPGAs", in Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pp.98–107 Sách, tạp chí
Tiêu đề: Take the highway: Design for embedded NoCs on FPGAs
Tác giả: Abdelfattah Mohamed S, Andrew Bitar, and Vaughn Betz
Năm: 2015
[2] Agarwal Anant, Jason Miller, Jonathan Eastep, David Wentziaff, and Harshad Kasture (2009), "Self-aware computing", DTIC Document Sách, tạp chí
Tiêu đề: Self-aware computing
Tác giả: Agarwal Anant, Jason Miller, Jonathan Eastep, David Wentziaff, and Harshad Kasture
Năm: 2009
[3] Altera "Software". [Online]. Available: https://www.altera.com/products/design-software/overview.html Sách, tạp chí
Tiêu đề: Software
[4] Attia Brahim, Wissem Chouchene, Abdelkrim Zitouni, Abid Nourdin, and Rached Tourki (2010), "Design and implementation of low latency network interface for network on chip", in 2010 5th International Design and Test Workshop, pp. 37–42 Sách, tạp chí
Tiêu đề: Design and implementation of low latency network interface for network on chip
Tác giả: Attia Brahim, Wissem Chouchene, Abdelkrim Zitouni, Abid Nourdin, and Rached Tourki
Năm: 2010
[5] Attia Brahim, Wissem Chouchene, Abdelkrim Zitouni, and Rached Tourki (2011), "Network interface sharing for SoCs based NoC", in Communications, Computing and Control Applications (CCCA), 2011 International Conference on, pp. 1–6 Sách, tạp chí
Tiêu đề: Network interface sharing for SoCs based NoC
Tác giả: Attia Brahim, Wissem Chouchene, Abdelkrim Zitouni, and Rached Tourki
Năm: 2011
[6] Baklouti Mouna, Ph Marquet, Jean-Luc Dekeyser, and Mohamed Abid (2015), "FPGA-based many-core System-on-Chip design". Microprocess. Microsyst., vol.39, no. 4, pp. 302–312 Sách, tạp chí
Tiêu đề: FPGA-based many-core System-on-Chip design
Tác giả: Baklouti Mouna, Ph Marquet, Jean-Luc Dekeyser, and Mohamed Abid
Năm: 2015
[7] Becker Daniel U (2012), "Efficient microarchitecture for network-on-chip routers", 2012. Stanford University, 2012 Sách, tạp chí
Tiêu đề: Efficient microarchitecture for network-on-chip routers
Tác giả: Becker Daniel U
Năm: 2012
[8] Becker Jrgen, Michael Hubner, Gerhard Hettich, Rainer Constapel, Joachim Eisenmann, and Jrgen Luka (2007), "Dynamic and partial FPGA exploitation".Proc. IEEE, vol. 95, no. 2, pp. 438–452 Sách, tạp chí
Tiêu đề: Dynamic and partial FPGA exploitation
Tác giả: Becker Jrgen, Michael Hubner, Gerhard Hettich, Rainer Constapel, Joachim Eisenmann, and Jrgen Luka
Năm: 2007
[9] Benini Luca and Giovanni De Micheli (2002), "Networks on chips: a new SoC paradigm". Computer (Long. Beach. Calif)., vol. 35, no. 1, pp. 70–78 Sách, tạp chí
Tiêu đề: Networks on chips: a new SoC paradigm
Tác giả: Benini Luca and Giovanni De Micheli
Năm: 2002
[10] Carvalho Ewerson, Ney Calazans, and Fernando Moraes (2007), "Heuristics for dynamic task mapping in NoC-based heterogeneous MPSoCs", in 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP‟07), pp. 34–40 Sách, tạp chí
Tiêu đề: Heuristics for dynamic task mapping in NoC-based heterogeneous MPSoCs
Tác giả: Carvalho Ewerson, Ney Calazans, and Fernando Moraes
Năm: 2007
[11] Chen Xuning and Li-Shiuan Peh (2003), "Leakage power modeling and optimization in interconnection networks", in Proceedings of the 2003 international symposium on Low power electronics and design, pp. 90–95 Sách, tạp chí
Tiêu đề: Leakage power modeling and optimization in interconnection networks
Tác giả: Chen Xuning and Li-Shiuan Peh
Năm: 2003
[12] Chou Chen-Ling and Radu Marculescu (2007), "Incremental run-time application mapping for homogeneous NoCs with multiple voltage levels", in Proceedings of the 5th IEEE/ACM international conference on Hardware/software codesign and system synthesis, pp. 161–166 Sách, tạp chí
Tiêu đề: Incremental run-time application mapping for homogeneous NoCs with multiple voltage levels
Tác giả: Chou Chen-Ling and Radu Marculescu
Năm: 2007
[13] Chou Chen-Ling and Radu Marculescu (2008), "User-aware dynamic task allocation in networks-on-chip", in 2008 Design, Automation and Test in Europe, pp. 1232–1237 Sách, tạp chí
Tiêu đề: User-aware dynamic task allocation in networks-on-chip
Tác giả: Chou Chen-Ling and Radu Marculescu
Năm: 2008
[14] Chou Chen Ling, Umit Y. Ogras, and Radu Marculescu (2008), "Energy- and performance-aware incremental mapping for networks on chip with multiple voltage levels". IEEE Trans. Comput. Des. Integr. Circuits Syst., vol. 27, no. 10, pp.1866–1879 Sách, tạp chí
Tiêu đề: Energy- and performance-aware incremental mapping for networks on chip with multiple voltage levels
Tác giả: Chou Chen Ling, Umit Y. Ogras, and Radu Marculescu
Năm: 2008
[16] Chu Pong P (2011), FPGA prototyping by VHDL examples: Xilinx Spartan-3 version. John Wiley & Sons Sách, tạp chí
Tiêu đề: FPGA prototyping by VHDL examples: Xilinx Spartan-3 version
Tác giả: Chu Pong P
Năm: 2011
[17] Chu Pong P (2011), FPGA prototyping by Verilog examples: Xilinx Spartan-3 version. John Wiley & Sons Sách, tạp chí
Tiêu đề: FPGA prototyping by Verilog examples: Xilinx Spartan-3 version
Tác giả: Chu Pong P
Năm: 2011
[18] Compton Katherine and Scott Hauck (2002), "Reconfigurable computing: a survey of systems and software". ACM Comput. Surv., vol. 34, no. 2, pp. 171–210 Sách, tạp chí
Tiêu đề: Reconfigurable computing: a survey of systems and software
Tác giả: Compton Katherine and Scott Hauck
Năm: 2002
[19] Dally William J (1990), "Performance analysis of k-ary n-cube interconnection networks". IEEE Trans. Comput., vol. 39, no. 6, pp. 775–785 Sách, tạp chí
Tiêu đề: Performance analysis of k-ary n-cube interconnection networks
Tác giả: Dally William J
Năm: 1990
[20] Dally William J (1992), "Virtual-channel flow control". IEEE Trans. Parallel Distrib. Syst., vol. 3, no. 2, pp. 194–205 Sách, tạp chí
Tiêu đề: Virtual-channel flow control
Tác giả: Dally William J
Năm: 1992
[21] Dally William J and Charles L Seitz (1987), "Deadlock-free message routing in multiprocessor interconnection networks". IEEE Trans. Comput., vol. 100, no. 5, pp. 547–553 Sách, tạp chí
Tiêu đề: Deadlock-free message routing in multiprocessor interconnection networks
Tác giả: Dally William J and Charles L Seitz
Năm: 1987

HÌNH ẢNH LIÊN QUAN

Hình 1.8.  Kiến trúc tổng quát của một bộ định tuyến [7] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.8. Kiến trúc tổng quát của một bộ định tuyến [7] (Trang 29)
Hình 1.9.  Thị trường cung cấp FPGA bởi các nhà sản xuất [78] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.9. Thị trường cung cấp FPGA bởi các nhà sản xuất [78] (Trang 30)
Hình 1.10. Quy mô thị trường ứng dụng của FPGA khu vực Châu Á Thái Bình Dương [42] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.10. Quy mô thị trường ứng dụng của FPGA khu vực Châu Á Thái Bình Dương [42] (Trang 31)
Hình 1.12. Một Slice của FPGA Xilinx Virtex-6 [95] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.12. Một Slice của FPGA Xilinx Virtex-6 [95] (Trang 33)
Hình 1.13. Minh họa thiết kế cấu hình lại từng phần - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.13. Minh họa thiết kế cấu hình lại từng phần (Trang 34)
Hình 1.14. Quy trình thực hiện cấu hình từng phần cho FPGA [97] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.14. Quy trình thực hiện cấu hình từng phần cho FPGA [97] (Trang 35)
Hình 1.15. Tổng quan cấu hình lại từng phần động và bộ nhớ cấu hình [77] - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 1.15. Tổng quan cấu hình lại từng phần động và bộ nhớ cấu hình [77] (Trang 37)
Hình 2.15.  Kiến trúc tổng quát của bộ giao tiếp mạng - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 2.15. Kiến trúc tổng quát của bộ giao tiếp mạng (Trang 56)
Hình 2.16.  Biểu đồ thời gian truyền các gói tin từ tài nguyên đến bộ định tuyến - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 2.16. Biểu đồ thời gian truyền các gói tin từ tài nguyên đến bộ định tuyến (Trang 59)
Hình 2.18.  Sơ đồ luồng thiết lập hệ thống - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 2.18. Sơ đồ luồng thiết lập hệ thống (Trang 61)
Hình 2.21.  Phân chia khu vực cấu hình các bộ đệm ngõ vào trong bộ định tuyến của NoC - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 2.21. Phân chia khu vực cấu hình các bộ đệm ngõ vào trong bộ định tuyến của NoC (Trang 64)
Hình 2.22.  Lưu đồ thuật toán điều khiển quá trình cấu hình - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 2.22. Lưu đồ thuật toán điều khiển quá trình cấu hình (Trang 66)
Hình 3.3.  Mô hình hệ thống 3.3.3.  Xây dựng bài toán ánh xạ - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 3.3. Mô hình hệ thống 3.3.3. Xây dựng bài toán ánh xạ (Trang 77)
Hình 3.5.  Vị trí đặt các tác vụ vào nền tảng phần cứng sau khi ánh xạ - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 3.5. Vị trí đặt các tác vụ vào nền tảng phần cứng sau khi ánh xạ (Trang 82)
Hình 3.12.  Giá trị ACMD của các ứng dụng đã được ánh xạ theo các thuật toán - Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc
Hình 3.12. Giá trị ACMD của các ứng dụng đã được ánh xạ theo các thuật toán (Trang 94)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w