1. Trang chủ
  2. » Tất cả

Luận án 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

105 0 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 105
Dung lượng 3,78 MB

Nội dung

Trang 1

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ả

PGS TS Phạm Ngọc Nam Nguyễn Văn Cường

Trang 2

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 ý chun mơn cho tơi trong suốt q 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à hồn thành luận án này

Trang 3

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

Trang 4

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

Trang 5

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 tốn ánh xạ 59

3.3 Các định nghĩa và xây dựng bài tố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 tốn tìm kiếm đầy đủ 66

3.4.1.1 Thuật tố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

Trang 7

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

Manhattan Distance

Khoảng cách Manhattan truyền thơng trung bình

AMD Average Manhattan Distance Khoảng cách Manhattan trung

bình

ARM Advanced RISC Machine Vi xử lý ARM

ASIC Application-Specific Integrated

Circuit Vi mạch tích hợp chuyên dụng

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

CF CompactFlash Bộ nhớ flash

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

DP Dynamic Part Phần động

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ố

DT Design-time Thời gian thiết kế

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

FF First Fit Thuật toán ánh xạ first fit

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ỗ

FT Flit Type Loại flit

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

Trang 8

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

IC Integrated Circuit Mạch tích hợp

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

InP Indefinite Postponement Trì hỗ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

LE Logic Element Phần tử logic

LUT Logic Look-up Table Bảng tra logic

MD Manhattan Khoảng cách Manhattan

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

NoC Network-on-Chip Mạng trên chip

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

PC Personal Computer Máy tính cá nhân

PCB Printed circuit board Bảng mạch in

PE Processing Element Phần tử xử lý (tính tố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

RT Run-time Thời gian chạy

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 9

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

SoC System-on-Chip Hệ thống trên chip

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

SP Static Part Phần tĩnh

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

Receiver/Transmitter

Bộ truyền nhận nối tiếp không đồng bộ

VC Virtual Channel Kênh ảo

VCT Virtual Cut-Through

VHDL VHSIC Hardware Description

Language

Ngôn ngữ mô tả phần cứng VHSIC

VHSIC Very High Speed Integrated

Circuit Mạch tích hợp tốc độ rất cao

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

WH Wormhole Chuyển mạch lỗ sâu

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

Trang 10

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 tố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 tố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 tồn mạng 38

Hình 2.12 Thơng lượng trung bình tồ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

Trang 11

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 tốn điều khiển q 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 tố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 tốn heuristic đã đề xuất 74

Hình 3.7 So sánh lợi ích chi phí theo các thuật tố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 tố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

Trang 12

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

Trang 13

MỞ ĐẦU

1 Đặt vấn đề

Ngày nay, các thiết bị nhúng đang trở nên quan trọng trong cuộc sống của chúng ta (ví dụ: điện thoại thơng minh, các thiết bị di động) Khi thiết kế hệ thống nhúng, người thiết kế cần xem xét kỹ lưỡng các tiêu chí ràng buộc như hiệu năng, thời gian đưa sản phẩm ra thị trường, tiêu thụ năng lượng, kích thước thực hiện, khả năng nâng cấp, cập nhật các ứng dụng và các tính năng mới trong tương lai, v.v Bên cạnh đó, các ứng dụng đa phương tiện tiên tiến như HD-video, xử lý ảnh, các trò chơi 3D, v.v ln u cầu một sức mạnh tính tốn lớn và chuyển tải dữ liệu nhanh Các ứng dụng này được thiết kế theo cách mà mức chất lượng của chúng có thể được điều chỉnh phù hợp với khả năng xử lý của nền tảng phần cứng [52, 70] Ví dụ khi xem video trên Internet, tùy thuộc vào băng thông của mạng cũng như khả năng xử lý của thiết bị mà người dùng có thể xem được video ở mức chất lượng HD hoặc SD, v.v Thêm vào đó, các ứng dụng được mơ hình hóa dưới dạng đồ thị tác vụ với số lượng lớn các tác vụ truyền thơng và các đặc tính khác nhau do vậy yêu cầu 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ụ: 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ị ln 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 ngun tái cấu hình hạn chế [8, 86]

Trang 14

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 tố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 tố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

Trang 15

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 tốn có thể thay đổi và thích nghi với tình trạng tài ngun 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:

Trang 16

(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 tố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 tố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 tố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:

Trang 17

(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 tố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 tố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 tốn để tối ưu hóa kiến trúc truyền thơng hoặc các phần tử tính tố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

Trang 18

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 tố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 tố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 tố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 tố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 Ngồi ra, một thuật tố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

Trang 19

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 tố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

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

1.1.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 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.v [35, 55] 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 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

Trang 20

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)RouterNIIP core(0,1)RouterNIIP core(0,2)RouterNIIP core(1,0)RouterNIIP core(1,1)RouterNIIP core(1,2)RouterNIIP core(2,0)RouterNIIP core(2,1)RouterNIIP core(2,2)RouterNIPhysical links

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 ngun nguồn đến tài ngun đí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

Trang 21

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

IrregularRegular

TreesMeshesCubesOthers

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

2D meshesTorus (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

Trang 22

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

a) Mesh b) 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

Trang 23

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)

Buffer

a) Store-and-Forward packet

data flitheader flit

Buffer

b) WormholeRouter

Router

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

Trang 24

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

Trang 25

1.1.4 Thuật tố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 tồn bộ đường đi của gói tin trước khi gói tin được truyền đi Thuật tố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 q 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 tồ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

DistributedSource

MinimalNon-minMinimalNon-minMinimalNon-minMinimalNon-min

DeterministicAdaptiveDeterministicAdaptive

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

Trang 26

Đị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 tố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 tố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 tồn mạng Những vấn đề chính trong định tuyến bao gồm: Deadlock, Livelock và trì hỗ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ì hỗ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í tồ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:

Trang 27

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

Trang 28

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]

Trang 29

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

Trang 30

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] Ngồ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 tồ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]

Trang 31

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

Trang 32

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:

Trang 33

ISE

IPXPS

Complier

ELF

SDK

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 đã hồ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)

Trang 34

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 ngồ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

Trang 35

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 tồ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 tồ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 u cầu thay đổi của ứng dụng ở hiện tại và tương lai Ngồ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 tố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 số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]

Trang 36

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à q 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

MN

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

Trang 37

(iii) Các tham số ràng buộc của ứng dụng (ví dụ: Hiệu năng tính tố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

Trang 38

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 tố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 ngun 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 q 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ó 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

Trang 40

CHƢƠNG 2

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

Trong chương này, tác giả tập trung vào phân tích các kiến trúc của bộ định tuyến sử dụng kênh ảo, kiến trúc bộ giao tiếp mạng và các nền tảng phần cứng cấu hình lại được trên FPGA Giới hạn của các phương pháp tiếp cận sẽ được chỉ ra Từ đó, tác giả đề xuất một vài kiến trúc mới và phát triển một nền tảng phần cứng linh hoạt cấu hình lại được trên FPGA Các đề xuất bao gồm: Kiến trúc bộ định tuyến sử dụng kênh ảo không đều tại các cổng ngõ ra nhằm cải thiện chi phí thực hiện phần cứng nhưng vẫn đảm bảo được hiệu năng cho mạng; kiến trúc bộ giao tiếp mạng sử dụng bộ đệm kép cho phép thực hiện song song quá trình ghi đọc dữ liệu vào bộ đệm để cắt giảm trễ cho bộ giao tiếp mạng Dựa trên hai đề xuất này, tác giả tiếp tục phát triển một nền tảng phần cứng linh hoạt và thích nghi với sự thay đổi của các ứng dụng bằng cách sử dụng khả năng cấu hình lại được từng phần của FPGA để cấu hình lại một số mơ đun trong lớp truyền thơng hoặc lớp tính tốn của NoC tại thời gian chạy

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

Mạng trên chip được đề xuất như một giải pháp cho truyền thông giữa các IP trong thiết kế các hệ thống trên chip phức tạp Tránh bế tắc, cắt giảm tắc nghẽn để tăng hiệu năng cho mạng là những thử thách lớn khi thiết kế NoC bởi vì chúng ảnh hưởng trực tiếp đến hiệu năng toàn mạng Để giải quyết các vấn đề này, các bộ định tuyến thường sử dụng kiến trúc kênh ảo đều tại mỗi cổng Trong mục này, tác giả đề xuất một kiến trúc cho bộ định tuyến sử dụng điều khiển luồng wormhole kết hợp với số lượng kênh ảo không đều trên cổng tại ngõ ra để cắt giảm chi phí nhưng vẫn đảm bảo “deadlock free” và hiệu năng trong trường hợp lưu lượng dữ liệu đi qua mạng là cao nhất Chi phí và hiệu năng của bộ định tuyến đã đề xuất sẽ được phân tích, đánh giá và so sánh với các bộ định tuyến sử dụng 2 và 4 kênh ảo

2.1.1 Giới thiệu

Ngày đăng: 16/02/2023, 15:40

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

TÀI LIỆU LIÊN QUAN