Mạng trên chip - Hội đồng Giáo sư nhà nước

237

Transcript of Mạng trên chip - Hội đồng Giáo sư nhà nước

Mục lục 1

PGS.TS. TRẦN XUÂN TÚ

MẠNG TRÊN CHIP

NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI

2 Mạng trên chip

Mục lục 3

MỤC LỤC

DANH MỤC HÌNH VẼ ........................................................................................ 8

DANH MỤC BẢNG .......................................................................................... 13

DANH MỤC TỪ VIẾT TẮT ................................................................................ 14

LỜI NÓI ĐẦU .................................................................................................. 17

LỜI CẢM ƠN ................................................................................................... 20

Chương 1

HỆ THỐNG TRÊN CHIP VÀ KIẾN TRÚC TRUYỀN THÔNG TRUYỀN THỐNG

1.1. Hệ thống trên chip ................................................................................ 21

1.2. Kiến trúc truyền thông truyền thống vĖ những hạn chế .......................... 24

1.3. Phương phėp thiết kế hệ thống trên chip ............................................... 27

1.4. Mạng trên chip – một kiến trúc truyền thông mới .................................. 29

1.5. Kết luận chương ................................................................................... 31

Chương 2

MẠNG TRÊN CHIP: CÁC KHÁI NIỆM CƠ BÂN

2.1. Tô-pô hay cấu trúc liên kết cûa mạng trên chip ..................................... 33

2.2. Kỹ thuật truyền thông ........................................................................... 35

2.3. Cơ chế truyền thông ............................................................................. 37

2.4. Chiến lược lưu trữ ................................................................................. 39

2.5. Thuật toėn đðnh tuyến ........................................................................... 40

2.6. Tắc nghẽn vĖ kỹ thuật điều khiển luồng dữ liệu ..................................... 42

2.7. Chất lượng dðch vụ mạng ...................................................................... 45

2.8. Giao thức truyền thông ......................................................................... 47

2.9. Kết luận chương ................................................................................... 48

4 Mạng trên chip

Chương 3

THIẾT KẾ, MÔ HÌNH HÓA VÀ KIỂM CHỨNG BỘ ĐỊNH TUYẾN MẠNG

3.1. Bài toėn thiết kế ................................................................................... 50

3.2. Mô hình bộ đðnh tuyến .......................................................................... 52

3.3. Thiết kế chi tiết kiến trúc bộ đðnh tuyến ................................................. 55

3.3.1. Khối phân luồng dữ liệu cûa mô-đun lối vĖo ......................................... 56

3.3.2. Khối điều khiển cûa mô-đun lối vĖo ...................................................... 56

3.4. Khối phân luồng dữ liệu cûa mô-đun lối ra ............................................ 57

3.4.1. Khối điều khiển cûa mô-đun lối ra ........................................................ 58

3.4.2. Crossbar .............................................................................................. 58

3.5. Mô hình hòa, kiểm chứng vĖ thực thi thiết kế ........................................ 59

3.5.1. Phương phėp mô hình hòa, kiểm chứng ................................................ 59

3.5.2. Kết quĘ mô phóng vĖ kiểm chứng ........................................................ 61

3.5.3. Kết quĘ thực thi phần cứng bộ đðnh tuyến ............................................. 65

3.6. Kết luận chương ................................................................................... 66

Chương 4

THIẾT KẾ, MÔ HÌNH HÓA VÀ KIỂM CHỨNG BỘ GIAO TIẾP MẠNG

4.1. Giới thiệu ............................................................................................. 67

4.2. Kiến trúc NoC sử dụng ......................................................................... 71

4.2.1. Tô-pô mạng ......................................................................................... 71

5.2.2. Thuật toėn đðnh tuyến vĖ đðnh dạng dữ liệu ........................................... 72

4.2.3. Vi kiến trúc cûa bộ đðnh tuyến mạng ..................................................... 73

4.3. Thiết kế bộ phối ghép mạng AXI-NoC ................................................... 74

4.3.1. Đðnh dạng gòi tin .................................................................................. 76

4.3.2. Bộ phối ghép mạng Master ................................................................... 78

4.4. Phương phėp mux-selection ................................................................. 86

4.4.1. Ưu vĖ nhược điểm cûa phương phėp bắt tay truyền thống dựa vĖo FSM ...... 86

4.4.2. Phương phėp mux-selection vĖ thực thi trong MNA ............................... 87

4.5. Thực thi vĖ kiểm chứng phần cứng ....................................................... 89

4.6. Kết luận chương ................................................................................... 93

Mục lục 5

Chương 5

TỐI ƯU NĂNG LƯỢNG TIÊU THỤ CHO MẠNG TRÊN CHIP

5.1. Công suất tiêu thụ trên mạch tích hợp .................................................. 94

5.1.1. Công suất tiêu thụ động ....................................................................... 95

5.1.2. Công suất tiêu thụ tïnh ......................................................................... 98

5.2. Một số phương phėp thiết kế vi mạch công suất thấp ......................... 100

5.2.1. Phương phėp chặn cấp xung nhðp ....................................................... 101

5.2.2. Phương phėp thiết kế đa điện ėp nguồn .............................................. 102

5.2.3. Phương phėp thiết kế đa điện ėp ngưỡng ............................................ 103

5.3. Phương phėp thiết kế đa điện ėp nguồn .............................................. 104

5.3.1. Phương phėp điều khiển tỷ lệ điện ėp vĖ tần số động .......................... 105

5.3.2. Một số thėch thức trong thiết kế đa điện ėp nguồn .............................. 112

5.4. Một số giĘi phėp thiết kế mạng trên chip theo hướng giĘm thiểu

công suất tiêu thụ .............................................................................. 112

5.4.1. Kiến trúc mạng trên chip công suất thấp ALPIN .................................. 114

5.4.2. Mô hình điều khiển tần số vĖ điện ėp dựa trên kỹ thuật PSTR .................. 119

5.4.3. Kiến trúc Producer-Consumer FIFO ..................................................... 121

5.4.4. Bộ phối ghép mạng công suất thấp theo chuẩn OCP ........................... 124

5.5. Kết luận chương ................................................................................. 127

Chương 6

ỨNG DỤNG LÔ-GIC MỜ

TRONG THIẾT KẾ MẠNG TRÊN CHIP CÔNG SUẤT THẤP

6.1. Giới thiệu về thuật toėn lô-gic mờ ....................................................... 128

6.1.1. Lý thuyết mờ ...................................................................................... 130

6.1.2. Thiết kế hệ thống mờ .......................................................................... 135

6.1.3. Mô hình thuật toėn Sugeno ................................................................. 137

6.2. Bộ điều khiển tần số - điện ėp dùng cho bộ đðnh tuyến mạng trên chip ..... 138

6.2.1. Đề xuất mô hình bộ điều khiển tần số - điện ėp cho bộ đðnh tuyến ........... 138

6.2.2. Thiết kế vĖ mô hình hòa bộ điều khiển tần số - điện ėp ....................... 143

6 Mạng trên chip

6.3. Kiểm chứng hoạt động cûa bộ điều khiển tần số - điện ėp .................. 154

6.3.1. Kiểm chứng hoạt động cûa khối đo lưu lượng ..................................... 154

6.3.2. Kiểm chứng hoạt động cûa khối xėc đðnh lưu lượng cực đại .................... 155

6.3.3. Kiểm chứng hoạt động cûa khối xėc đðnh biến thiên lưu lượng ................... 155

6.3.4. Kiểm chứng hoạt động cûa bộ xử lý lô-gic mờ .................................... 156

6.3.5. Kiểm chứng hoạt động cûa bộ điều khiển tần số - điện ėp .................. 157

6.4. Mô phóng vĖ đėnh giė hiệu quĘ cûa bộ điều khiển tần số - điện ėp ..... 158

6.4.1. Ước lượng công suất tiêu thụ cûa một mạng trên chip ......................... 159

4.4.2. Đėnh giė hiệu quĘ cûa bộ điều khiển tần số - điện ėp ......................... 166

6.4.3. Đėnh giė hiệu năng với dạng truyền thông UNIFORM........................... 168

6.4.4. Đėnh giė hiệu năng với dạng truyền thông SELF-SIMILAR ................... 171

6.5. Kết luận chương ................................................................................. 178

Chương 7

THIẾT KẾ KIỂM TRA CHO MẠNG TRÊN CHIP

7.1. Giới thiệu ........................................................................................... 180

7.2. Kiểm tra cėc hệ thống trên chip dựa trên NoC ..................................... 181

7.2.1. Sử dụng kiến trúc mạng để kiểm tra cėc tài nguyên tính toán .................. 181

7.2.2. Kiểm tra kiến trúc kết nối .................................................................... 182

7.3. Giới thiệu về kiến trúc NoC không đồng bộ ......................................... 184

7.4. Phương phėp kiểm tra đề xuất cho ANOC ........................................... 185

7.5. Thiết kế vĖ thực thi ............................................................................. 188

7.5.1. Kiến trúc test wrapper ........................................................................ 188

7.5.2. Kiến trúc test cells .............................................................................. 190

7.5.3. Các test cell với chức năng bypass ..................................................... 192

7.5.4. Mô-đun điều khiển wrapper ................................................................ 194

7.6. Tạo dữ liệu kiểm tra ............................................................................ 199

7.6.1. Mô hình lỗi cho mạch không đồng bộ QDI .......................................... 199

7.6.2. Dữ liệu kiểm tra cho cėc liên kết mạng ............................................... 201

7.6.3. Dữ liệu kiểm tra cho cėc bộ đðnh tuyến mạng ..................................... 202

Mục lục 7

7.7. Chiến lược kiểm tra ............................................................................ 205

7.8. Kết quĘ thực nghiệm .......................................................................... 208

7.8.1. Chi phí không gian thực thi ................................................................. 208

7.8.2. Độ trễ tăng thêm ................................................................................ 209

7.8.3. Thời gian thực thi kiểm tra .................................................................. 210

7.8.4. Độ bao phû lỗi .................................................................................... 210

7.8.5. Chẩn đoėn lỗi vĖ đðnh vð điểm khiếm khuyết ....................................... 212

7.8.6. Tėi cấu hình bộ đðnh tuyến trong trường hợp cò lỗi đơn ....................... 213

7.9. Kết luận chương ................................................................................. 213

TÀI LIỆU THAM KHẢO .................................................................................. 215

INDEX .......................................................................................................... 233

Mục lục 8

DANH MỤC HÌNH VẼ

Hình 1-1: Mô hình hệ thống trên chip điển hình. ........................................... 22

Hình 1-2: Kiến trúc kết nối trong các hệ thống trên chip:

Kết nối điểm-tới-điểm (a); Chia sẻ bus (b). ................................... 25

Hình 1-3: Mô hình bus phân tầng. ................................................................ 26

Hình 1-4: Phương phėp thiết kế top-down. ................................................... 27

Hình 1-5: Phương phėp thiết kế bottom-up. .................................................. 28

Hình 1-6: Một ví dụ về mô hình mạng trên chip. ........................................... 30

Hình 2-1: Những tô-pô thông dụng dùng cho mạng trên chip: ring hay chordal

ring (a); fat-tree (b); butterfly fat-tree (c); 2D-mesh (d);

2D torus (e); 2D folded torus (f). .................................................. 33

Hình 2-2: Cėc cơ chế đðnh tuyến: Lưu trữ và chuyển tiếp (a); Virtual Cut

Through (b); Wormhole (c). .......................................................... 37

Hình 2-3: Chiến lược lưu trữ trên bộ đðnh tuyến: hĖng đợi lối vào (a);

hĖng đợi lối ra (b); hĖng đợi lối ra Ęo (c); hĖng đợi lối vĖo ưu tiên

kênh Ęo (d). .................................................................................. 39

Hình 2-4: Ví dụ về một trường hợp khóa chết. .............................................. 43

Hình 2-5: Tránh khóa chết bằng kênh Ęo. ..................................................... 44

Hình 2-6: Ví dụ về khòa động. ...................................................................... 44

Hình 2-7: Mô hình tham chiếu kết nối các hệ thống mở OSI. ........................ 47

Hình 3-1: Mô hình mạng trên chip đề xuất. ................................................... 50

Hình 3-2: Đðnh dạng cûa các flit. .................................................................. 51

Hình 3-3: Kiến trúc cûa bộ đðnh tuyến. ......................................................... 53

Hình 3-4: Giao thức bắt tay Ĕsend-acceptĕ. .................................................. 54

Hình 3-5: Một cặp mô-đun vĖo/ra cûa bộ đðnh tuyến. ................................... 55

Danh mục hình vẽ 9

Hình 3-6: Khối phân luồng dữ liệu cûa mô-đun lối vào. ................................. 56

Hình 3-7: Khối điều khiển cûa mô-đun lối vào. ............................................. 57

Hình 3-8: Khối phân luồng dữ liệu cûa mô-đun lối ra. ................................... 57

Hình 3-9: Khối điều khiển cûa mô-đun lối ra. ................................................ 58

Hình 3-10: Crossbar sử dụng trong thiết kế. ................................................... 59

Hình 3-11: Quy trình mô hình hóa, kiểm chứng và thực thi phần cứng. ............ 60

Hình 3-12: Mô hình kiểm chứng bộ đðnh tuyến. .............................................. 61

Hình 3-13: Kết quĘ mô phóng với mô-đun lối vào cûa bộ đðnh tuyến. ............. 62

Hình 3-14: Kết quĘ mô phóng với mô-đun lối ra cûa bộ đðnh tuyến. ................ 63

Hình 3-15: Kết quĘ mô phóng cûa bộ đðnh tuyến thiết kế. ............................... 64

Hình 3-16: Layout cûa bộ đðnh tuyến với công nghệ FPGA cûa hãng Xilinx

(thực thi trên chip XC2V1000-5ff896). .......................................... 65

Hình 4-1: Kiến trúc mạng trên chip dạng lưới hai chiều kích thước 3×3. ........ 72

Hình 4-2: Phân chia dữ liệu thành gói tin tại nguồn phát. .............................. 72

Hình 4-3: Đðnh dạng flit cûa mạng trên chip.................................................. 73

Hình 4-4: Kiến trúc chi tiết cûa một bộ đðnh tuyến mạng............................... 74

Hình 4-5: Bộ phối ghép mạng chû và bộ phối ghép mạng tớ. ........................ 75

Hình 4-6: Đðnh dạng gói tin yêu cầu: gói tin yêu cầu ghi (a);

và gói tin yêu cầu đọc (b). ............................................................ 76

Hình 4-7: Đðnh dạng gói tin phĘn hồi: gói tin phĘn hồi đọc (a);

gói tin phĘn hồi ghi. ...................................................................... 77

Hình 4-8: Kiến trúc MNA [45]. ..................................................................... 78

Hình 4-9: Kiến trúc luồng yêu cầu MNA [45]. ............................................... 79

Hình 4-10: Mô-đun MNA Transmitter: Vi kiến trúc tối ưu (a);

Máy trạng thái hữu hạn FSM (b) [45]. ........................................... 80

Hình 4-11: Mô-đun MNA Response Flow: Vi kiến trúc tối ưu (a);

Máy trạng thái hữu hạn (b) [45]. ................................................... 84

Hình 4-12: GiĘn đồ thời gian tại MNA Transmitter khi sử dụng phương phėp

bắt tay truyền thống dựa vào FSM [45]. ........................................ 86

10 Mạng trên chip

Hình 4-13: GiĘn đồ thời gian tại MNA Transmitter khi sử dụng phương phėp

mux-selection đề xuất [45]. .......................................................... 88

Hình 4-14: GiĘn đồ thời gian tại MNA Response Flow

khi sử dụng phương phėp mux-selection đề xuất [45]. .................. 88

Hình 4-15: Môi trường kiểm chứng với 9 bộ đðnh tuyến mạng. ........................ 89

Hình 4-16: Hình Ęnh layout cuối cùng cûa thiết kế [45]. ................................. 90

Hình 4-17: Công suất tiêu thụ và chi phí thực thi phần cứng ước lượng

tại các tần số hoạt động khác nhau [45]. ...................................... 91

Hình 5-1: Quá trình phóng nạp trên tụ điện ký sinh trong trường hợp

công suất chuyển mạch. .............................................................. 95

Hình 5-2: Dñng điện ngắn mạch trên cổng NOT trong trường hợp

công suất ngắn mạch. .................................................................. 96

Hình 5-3: Phân loại công suất tiêu thụ trên vi mạch tích hợp. ..................... 100

Hình 5-4: Phương phėp chặn cấp xung nhðp: không thực hiện chặn xung nhðp (a);

có thực hiện chặn xung nhðp (b). ................................................ 102

Hình 5-5: Một ví dụ về phương phėp thiết kế đa điện áp nguồn. .................. 102

Hình 5-6: Mối quan hệ giữa thời gian trễ vĖ dñng rñ đối với quy trình 90nm [51]. . 103

Hình 5-7: Mô hình hệ thống sử dụng phương phėp điều khiển tỷ lệ tần số và

điện ėp động. ............................................................................. 106

Hình 5-8: Kiến trúc ALPIN [94]. ................................................................. 114

Hình 5-9: BĘn layout vĖ đòng vó cûa vi mạch ALPIN [96]. ......................... 116

Hình 5-10: Một đơn vð mạng hoàn chînh trong ALPIN [97]. .......................... 117

Hình 5-11: Kiến trúc PSTR quĘn lý năng lượng/hiệu năng

cho mỗi vùng điện áp/tần số [99]. .............................................. 119

Hình 5-12: Thuật toėn để xėc đðnh cėc vùng điện áp/tần số độc lập VFI [57]. ..... 122

Hình 5-13: Cấu trúc cûa Producer-Consumer FIFO. ...................................... 122

Hình 5-14: Kiến trúc DFS cho VFI. ................................................................ 123

Hình 5-15: Tích hợp bộ điều khiển PI trong nền tĘng hệ thống VENGME. ...... 124

Hình 5-16: Kiến trúc cûa bộ MNI [91]. .......................................................... 125

Danh mục hình vẽ 11

Hình 6-1: Hàm liên thuộc cûa tập kinh điển . ................................... 130

Hình 6-2: Hàm phụ thuộc cûa tập Ĕmờĕ . ...................................... 132

Hình 6-3: Hàm liên thuộc tuyến tính từng đoạn. .......................................... 132

Hình 6-4: Các thông số đặc trưng cûa tập mờ. ........................................... 133

Hình 6-5: Mô hình cơ bĘn cûa một hệ thống mờ. ....................................... 136

Hình 6-6: Thuật toán lô-gic mờ theo mô hình Sugeno. ................................ 138

Hình 6-7: Tín hiệu bắt tay giữa các bộ đðnh tuyến và lõi IP. ......................... 139

Hình 6-8: Mô hình giĘi phėp điều khiển tần số điện ėp được đề xuất

cho các nốt mạng cûa một mạng trên chip [101]. ...................... 140

Hình 6-9: Mô hình khối điều khiển tần số - điện áp cho bộ đðnh tuyến mạng

trên chip [101]. .......................................................................... 141

Hình 6-10: Sơ đồ chi tiết cûa bộ điều khiển tần số - điện áp [101]. .............. 143

Hình 6-11: Sơ đồ mô tĘ khối đo lưu lượng [101]. ......................................... 144

Hình 6-12: Sơ đồ máy trạng thái mô tĘ khối đo lưu lượng [101].................... 145

Hình 6-13: Mô hình khối tính toán giá trð lưu lượng trung bình cực đại [101]. 146

Hình 6-14: Mô hình khối tính toán biến thiên giá trð lưu lượng DER. ............... 146

Hình 6-15: Sơ đồ cûa khối xử lý lô-gic mờ FLP. ............................................ 147

Hình 6-16: Mô hình hóa ở mức RTL cho bộ xử lý lô-gic mờ [111]. ............... 148

Hình 6-17: Mô tĘ cho hàm liên thuộc dạng hình thang. ................................. 148

Hình 6-18: Mô tĘ các hàm liên thuộc cho đầu vào input_1. .......................... 150

Hình 6-19: Mô tĘ các hàm liên thuộc cho đầu vào input_2. .......................... 150

Hình 6-20: Mô tĘ các hàm liên thuộc cho đầu ra output. .............................. 151

Hình 6-21: Kết quĘ mô phóng hoạt động lô-gic cûa khối đo lưu lượng. ......... 154

Hình 6-22: GiĘn đồ dạng sóng thể hiện kết quĘ mô phóng hoạt động lô-gic

cûa khối xėc đðnh lưu lượng cực đại. ........................................... 155

Hình 6-23: GiĘn đồ dạng sóng thể hiện kết quĘ mô phóng hoạt động lô-gic

cûa khối xėc đðnh biến thiên lưu lượng. ........................................ 156

Hình 6-24: GiĘn đồ sóng thể hiện kết quĘ mô phóng hoạt động

cûa khối xử lý lô-gic. .................................................................. 156

12 Mạng trên chip

Hình 6-25: Kết quĘ mô phóng khĘ năng đėp ứng cûa bộ điều khiển

tần số điện áp theo sự thay đổi cûa lưu lượng truyền thông [101]. .... 157

Hình 6-26: Mô hình cấu trúc từng khối thành phần cûa một bộ đðnh tuyến

trong mô hình ORION 3 [114]. .................................................... 161

Hình 6-27: Công suất tiêu thụ đối với kiểu truyền thông UNIFORM. ............... 169

Hình 6-28: Độ trễ truyền đối với kiểu truyền thông UNIFORM. ....................... 170

Hình 6-29: Công suất tiêu thụ đối với kiểu truyền thông SELF-SIMILAR. ....... 172

Hình 6-30: Độ trễ truyền đối với kiểu truyền thông SELF-SIMILAR. ............... 173

Hình 7-1: Mô hình thiết kế kiểm tra cho hệ thống trên chip. ........................ 179

Hình 7-2: Kiến trúc mạng trên chip không đồng bộ ANOC. .......................... 185

Hình 7-3: Kiến trúc thiết kế kiểm tra đề xuất [141]. ..................................... 186

Hình 7-4: Test wrapper cùng với bộ đðnh tuyến [141]. ................................ 189

Hình 7-5: Cấu trúc cûa một liên kết mạng [141]. ........................................ 190

Hình 7-6: Vi kiến trúc cûa các test cell vào/ra (ITC và OTC) [96]. ............... 191

Hình 7-7: Vi kiến trúc cûa các test cell với chức năng bypass:

(a) khối kiểm tra lối vào ITC; (b) khối kiểm tra lối ra OTC [141]. .. 193

Hình 7-8: Khung cấu hình kiểm tra. ............................................................ 194

Hình 7-9: Mô-đun điều khiển wrapper (WCM) [141]. .................................. 196

Hình 7-10: Wrapper được cấu hình để kiểm tra đường đðnh tuyến

NORTH SOUTH [96]. ............................................................. 197

Hình 7-11: Hoạt động cûa các mạch không đồng bộ QDI mã hóa

1-of-2 return-to-zero. .................................................................. 200

Hình 7-12: Mạch bð chặn (ngừng hoạt động) bởi một stuck-at net ĒReq1ē. .... 200

Hình 7-13: Phân tích cấu trúc cûa một bộ đðnh tuyến ANOC [141]. .............. 203

Hình 7-14: Đðnh dạng cûa một gói dữ liệu kiểm tra. ...................................... 204

Hình 7-15: Luồng kiểm tra cho mạng ANOC [141]. ...................................... 206

Hình 7-16: Các cấu hình kiểm tra: Chế độ kiểm tra (a); Chế độ bypass (b);

Chế độ transfer (c); Chế độ loop-back (d). .................................. 207

Hình 7-17: Độ trễ tăng thêm. ........................................................................ 209

Mục lục 13

DANH MỤC BÂNG

BĘng 3-1: Không gian thực thi phần cứng bộ đðnh tuyến thiết kế trên chip

XC2V1000-5ff896 ........................................................................ 65

BĘng 3-2: Năng lượng tiêu thụ cûa thiết kế .................................................... 66

BĘng 4-1: Mô tĘ trạng thái cûa máy trạng thái hữu hạn cûa MNA Transmitter ..... 81

BĘng 4-2: Mô tĘ trạng thái cûa máy trạng thái hữu hạn

cûa MNA Response Flow .............................................................. 85

BĘng 4-3: So sánh kết quĘ thực thi với một số công trình liên quan [45]. ...... 92

BĘng 5-1: So sėnh đėnh giė giữa cėc phương phėp điều khiển tỷ lệ điện áp

và tần số động ........................................................................... 111

BĘng 5-2: So sánh giữa các kỹ thuật thiết kế nhằm giĘm công suất tiêu thụ

cho mạng trên chip .................................................................... 126

BĘng 6-1: Các quy luật hợp thành cûa khối xử lý lô-gic mờ ......................... 152

BĘng 6-2: Công suất tiêu thụ đối với kiểu truyền thông UNIFORM ................ 169

BĘng 6-3: Độ trễ truyền đối với kiểu truyền thông UNIFORM ........................ 170

BĘng 6-4: Công suất tiêu thụ đối với kiểu truyền thông SELF-SIMILAR ........ 171

BĘng 6-5: Độ trễ truyền đối với kiểu truyền thông SELF-SIMILAR ................ 173

BĘng 6-6: So sėnh, đėnh giė kết quĘ đạt được với một số kỹ thuật thiết kế

nhằm giĘm công suất tiêu thụ cho mạng trên chip ...................... 176

BĘng 7-1: Mô tĘ hoạt động cûa các test cell ............................................... 194

BĘng 7-2: GiĘi thích về khung cấu hình kiểm tra .......................................... 195

BĘng 7-3: Mối liên hệ giữa TCF vĖ cėc kênh điều khiển ............................... 197

BĘng 7-4: TCF dùng để kiểm tra đường đðnh tuyến NORTH-SOUTH ................. 198

BĘng 7-5: Bộ dữ liệu kiểm tra cho từng liên kết mạng .................................. 202

BĘng 7-6: Gói tin kiểm tra đa flit dùng để kiểm tra lối vào, lối ra và kênh Ęo

cûa bộ đðnh tuyển ....................................................................... 204

BĘng 7-7: Ba gói dữ liệu kiểm tra đơn flit bổ sung dùng để kiểm tra lối vào,

lối ra và kênh Ęo cûa bộ đðnh tuyến ............................................. 205

BĘng 7-8: Báo cáo về độ bao phû lỗi Single Stuck-At (SSA) khi kiểm tra

bộ đðnh tuyến ............................................................................. 211

Mục lục 14

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

ASIC Application-Specific Integrated Circuit (Mạch tích hợp ứng dụng riêng)

ATPG Automatic Test Pattern Generation (Tạo dữ liệu kiểm tra tự động)

AVS Adaptive Voltage Scaling (Điều khiển tỷ lệ điện áp thích nghi)

BU Buffer Utilization (Mức độ sử dụng bộ đệm)

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

DFT Design-for-Test/Testability (Thiết kế kiểm tra)

DOR Dimesion Ordered Routing (Định tuyến thứ tự kích thước)

DSM Deep submicron (Kích thước siêu micro)

DSP Digital Signal Processor (Bộ xử lý tín hiệu số)

DVS Dynamic Voltage Scaling (Điều khiển tỷ lệ điện áp động)

DVFS Dynamic Voltage and Frequency Scaling (Điều khiển tỷ lệ điện áp

và tần số động)

FHT Fast Hartley Transform (Biến đổi Hartley nhanh)

FIFO First-In First-Out (Vào trước, ra trước)

FLP Fuzzy Logic Processing (Xử lý lô-gic mờ)

GALS Globally Asynchronous - Locally Synchronous (dị bộ toàn cầu -

đồng bộ cục bộ)

HFS Header Flit Shift (Dịch flit tiêu đề)

IP Intellectual Property

LAVFS Locally Adaptive Voltage and Frequency Scaling

LMS Least Mean Square (Bình phương trung bình tối thiểu)

LPM Local Power Manager (Khối quản lý nguồn cục bộ)

LU Link Utilization (Mức độ sử dụng liên kết)

LUT Look-Up Table (Bảng tra cứu)

MEMS Microelectronics and Microsystems (Vi cơ điện tử và vi hệ thống)

MIPS Microprocessor without Interlocked Pipeline Stages

MPSoC Multi-Processor SoC (SoC đa lõi xử lý)

Danh mục từ viết tắt 15

MSF Membership Function (Hàm liên thuộc)

MVS Multi-level Voltage Scaling (Tỷ lệ điện áp đa mức)

NA Network Adapter (Bộ phối ghép mạng)

NI Network Interface (Giao diện mạng)

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

OFDM Orthogonal Frequency-Division Multiplexing (Ghép kênh phân

chia theo tần số trực giao)

OSI Open Systems Interconnection Reference Model (Mô hình tham

chiếu kết nối các hệ thống mở)

PID Proportional Integral Derivative (Vi tích phân tỷ lệ)

RAM Random Access Memory (Bộ nhớ truy cập ngẫu nhiên)

RF Radio Frequency (Tần số radio)

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

OCP Open Core Protocol (Giao thức lõi mở)

SAF Store-and-Forward (Lưu và chuyển tiếp)

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

TAM Test Access Mechanism (Cơ chế truy cập kiểm tra)

TCF Test Configuration Frame (Khung cấu hình kiểm tra)

TDM Time Division Multiplexing (Ghép kênh phân chia theo thời gian)

VCO Voltage-Controlled Oscillator (Bộ dao động điều khiển bằng điện áp)

VCPIQ Vital Channel Priority Input Queuing (Hàng đợi lối vào ưu tiên

kênh ảo)

VCT Virtual Cut-Through

VFC Voltage-Frequency Controller (Bộ điều khiển tần số - điện áp)

VHSIC Very High-Speed Integrated Circuit (Mạch tích hợp tốc độ rất cao)

VHDL VHSIC Hardware Description Language (Ngôn ngữ mô tả phần

cứng VHDL)

VOQ Virtual Output Queuing (Hàng đợi lối ra ảo)

WCET Worst-Case Execution Time (Thời gian xử lý trong trường hợp xấu nhất)

WCM Wrapper Control Module (Mô-đun điều khiển wrapper)

Mục lục 16

Mục lục 17

LỜI NÓI ĐẦU

Ngày nay, vi mạch tích hợp có mặt trong hầu hết các ứng dụng,

từ các ứng dụng thông thường như các thiết bị điện tử gia dụng cho

đến các ứng dụng phức tạp trong viễn thông, vũ trụ, an ninh quốc

phòng... Nghiên cứu và làm chủ công nghệ thiết kế và chế tạo vi mạch

tích hợp đóng vai trò hết sức quan trọng trong việc phát triển các

ngành điện tử, viễn thông, công nghệ thông tin và tự động hóa. Công

nghệ thiết kế, chế tạo vi mạch đã và đang phát triển một cách nhanh

chóng, cho phép người thiết kế tích hợp cả một hệ thống hoàn chỉnh

trên một phiến silicon có kích thước 1 inch2 (tương đương 6,452 cm

2)

và thường được gọi là hệ thống trên chip (SoC: System-on-Chip). Với

những hệ thống SoC ngày càng phức tạp, xu hướng tất yếu đặt ra là

chia thiết kế tổng thể thành những khối chức năng riêng biệt, thường

gọi là các lõi IP (Intellectual Property), để có thể tái sử dụng các khối

chức năng đó trong những thiết kế tiếp theo nhằm rút ngắn thời gian

thiết kế và giảm đầu tư về nhân lực. Bài toán thiết kế hệ thống do vậy

trở thành bài toán tối ưu truyền thông giữa các khối chức năng trong

vi mạch. Những kiến trúc truyền thông truyền thống như liên kết điểm

tới điểm hay chia sẻ bus không thể đáp ứng được tốc độ xử lý cũng

như mật độ tích hợp ngày càng lớn của vi mạch. Giải pháp đặt ra là sử

dụng kiến trúc truyền thông phân đoạn và định tuyến.

Chính vì vậy, trong những năm gần đây các nhà nghiên cứu thuộc

nhiều trường đại học và viện nghiên cứu trên thế giới đã bắt tay vào

việc nghiên cứu xây dựng một “mô hình vi mạng” và mong muốn tích

hợp mô hình này lên trên vi mạch nhằm đáp ứng nhu cầu truyền thông

giữa các lõi IP trong một hệ thống trên chip. Kiến trúc truyền thông

này được gọi là mạng trên vi mạch hay mạng trên chip, thuật ngữ

tiếng Anh gọi là Network-on-Chip (NoC). Những nhóm nghiên cứu

tiên phong về mạng trên chip có thể kể đến như Đại học Berkeley

18 Mạng trên chip

(Hoa Kỳ), Đại học Manchester, Công ty Silistix (Vương quốc Anh),

Học viện Công nghệ Massachussetts, Đại học Standford, Đại học

Princeton, Hãng Intel (Hoa Kỳ), Trung tâm Nghiên cứu IMEC

(Vương quốc Bỉ), Trung tâm Nghiên cứu CEA-Leti, Minatec, Công ty

Arteris (Cộng hòa Pháp), Phòng thí nghiệm của hãng Philips (Hà

Lan), Viện Tiên tiến về Khoa học và Công nghệ Hàn Quốc – KAIST

(Hàn Quốc)... Mạng trên chip được xem như là một sự lựa chọn hứa

hẹn cho các hệ thống trên chip trong tương lai. Hay nói cách khác, đây

là một mô hình truyền thông mới, hứa hẹn cung cấp các giải pháp tối

ưu nhằm khắc phục các hạn chế của các mô hình truyền thông truyền

thống trong các hệ thống trên chip có độ phức tạp cao.

Cuốn sách chuyên khảo này sẽ giới thiệu với bạn đọc các nghiên

cứu của chúng tôi liên quan đến mô hình mạng trên chip, từ những

khái niệm cơ bản đến các vấn đề liên quan đến phương pháp thiết kế,

mô phỏng, kiểm chứng và thực thi phần cứng từng cấu phần của mạng

trên chip cũng như các phương pháp tối ưu, kiểm tra giúp cho mô hình

mạng trên chip ngày càng trở nên khả thi, có thể phát triển thành các

sản phẩm ứng dụng có tính thương mại cao. Nội dung cuốn sách là

tổng hợp kinh nghiệm, kết quả nghiên cứu của tác giả với đồng

nghiệp, các nghiên cứu sinh, học viên cao học, sinh viên trong nhóm

nghiên cứu; trong đó, tác giả đóng vai trò là người triển khai nghiên

cứu trực tiếp, hướng dẫn nghiên cứu và/hoặc chịu trách nhiệm định

hướng, tổ chức triển khai nghiên cứu trong hơn một thập kỷ qua.

Bố cục của cuốn sách gồm 7 chương:

Chương 1 bàn luận về hệ thống trên chip và kiến trúc truyền

thông truyền thống. Tiếp theo, mạng trên chip được giới thiệu như là

giải pháp truyền thông mới với nhiều ưu điểm nổi trội đối với các hệ

thống trên chip có độ tích hợp cao.

Chương 2 giới thiệu các khái niệm cơ bản và tổng quan tình

hình nghiên cứu trên thế giới về mạng trên chip.

Chương 3 trình bày về thiết kế, mô hình hóa và kiểm chứng bộ

định tuyến mạng – một trong những thành phần căn bản nhất cấu

thành mạng trên chip.

Lời nòi đầu 19

Chương 4 trình bày về thiết kế, mô hình hóa và kiểm chứng bộ

giao tiếp mạng, giúp cho hạ tầng mạng có thể giao tiếp với các lõi IP

truyền thống.

Chương 5 tập trung vào các giải pháp tối ưu năng lượng trong

thiết kế mạng trên chip. Một số giải pháp thiết kế công suất thấp được

áp dụng cho các mạng trên chip sẽ được thảo luận, phân tích trong

chương này. Nội dung chương này do tác giả và Phan Hải Phong cùng

biên soạn.

Chương 6 giới thiệu giải pháp ứng dụng lô-gic mờ trong thiết

kế mạng trên chip công suất thấp. Kết quả thực thi, mô phỏng và đánh

giá hiệu quả giải pháp sẽ lần lượt được trình bày trong chương này.

Nội dung chương này do tác giả và Phan Hải Phong cùng biên soạn.

Chương 7 giới thiệu giải pháp thiết kế kiểm tra cho kiến trúc

mạng trên chip – một trong những điểm then chốt nhằm đảm bảo các

hệ thống được xây dựng trên cơ sở mạng trên chip có thể được áp

dụng vào các sản phẩm thương mại thực tiễn.

Mặc dù cuốn sách được biên soạn một cách công phu, tuy nhiên,

do giới hạn về thời gian và khuôn khổ của một cuốn sách, chắc chắn

rằng nội dung của cuốn sách chưa thể làm hài lòng tất cả bạn đọc và

cũng có thể còn sót lại một số lỗi. Tác giả rất mong nhận được sự chia

sẻ và đóng góp xây dựng của các nhà khoa học, chuyên gia công nghệ,

nghiên cứu sinh, học viên, sinh viên và tất cả bạn đọc quan tâm.

Tác giả

20 Mạng trên chip

LỜI CÂM ƠN

Tác giả xin chân thành cảm ơn các đồng nghiệp và học trò

(nghiên cứu sinh, học viên cao học, sinh viên) đã cùng làm việc, trao

đổi, hợp tác nghiên cứu với tác giả trong hơn một thập kỷ qua liên

quan đến thiết kế mạch điện tử số, cụ thể hơn là về mạng trên chip. Sự

động viên, đóng góp của các đồng nghiệp và học trò trong các hoạt

động nghiên cứu khoa học đã đem lại nhiều kết quả và động lực để tác

giả viết cuốn sách này, tổng hợp lại một chặng đường nghiên cứu về

mạng trên chip. Xin chân thành cảm ơn những người bạn đồng hành

trong chặng đường hơn một thập kỷ qua: Herve Fanet, François

Bertrand, Chantal Robach, Jean Durupt, Pascal Vivet, Yvain Thonart,

Vincent Beroulle, Edith Beigne, Suzanne Lesecq, Nguyễn Ngọc Mai,

Bùi Duy Hiếu, Đặng Nam Khánh, Phan Hải Phong, Lê Văn Thanh

Vũ, Nguyễn Tùng, Nguyễn Thị Thủy…

Tác giả cũng xin gửi lời cảm ơn sâu sắc tới Hội đồng khoa học

(GS.TS. Bạch Gia Dương, PGS.TS. Hoàng Văn Phúc, TS. Lê Quang

Minh, PGS.TS. Nguyễn Nam Hoàng, TS. Hoàng Văn Xiêm) đã có

nhiều phản biện, góp ý bổ ích, giúp cho tác giả hoàn thiện cuốn sách

với chất lượng tốt nhất. Cảm ơn em gái Phương Thảo, mặc dù không

hoạt động trong lĩnh vực công nghệ kỹ thuật nhưng đã dành nhiều thời

gian đọc và hiệu đính rất kỹ các lỗi hành văn, chế bản, chính tả… còn

tồn tại trong bản thảo, giúp cuốn sách được hoàn thiện một cách chỉn

chu, dễ hiểu đối với người đọc. Cảm ơn chị Nguyễn Thủy và Nhà xuất

bản Đại học Quốc gia Hà Nội đã dày công biên tập và thiết kế để có

được cuốn sách đẹp.

Cuối cùng, cảm ơn gia đình, vợ và các con yêu quý đã dành thời

gian quan tâm, động viên tác giả trong suốt khoảng thời gian biên

soạn cuốn sách này.

Hà Nội, tháng 3 năm 2020.

Trần Xuân Tú

Mục lục 21

Chương 1

HỆ THỐNG TRÊN CHIP

VÀ KIẾN TRÚC TRUYỀN THÔNG TRUYỀN THỐNG

Cùng với sự tiến bộ của công nghệ bán dẫn, người ta tích hợp

ngày càng nhiều khối tính toán, thường được gọi là lõi IP (Intellectual

Property), lên cùng một vi mạch (chip) nhằm đáp ứng các yêu cầu của

ứng dụng. Một hệ thống mà trước kia phải xây dựng trên một hay

thậm chí nhiều bo mạch thì giờ đây có thể được tích hợp lên trên một

phiến silicon (chip) có kích thước không quá 1 inch2 (tương đương

6,452 cm2) và do đó, hình thành thuật ngữ “hệ thống trên một vi

mạch” hay “hệ thống trên chip”1 (tiếng Anh gọi là System-on-Chip

hay viết tắt là SoC). Hệ thống trên chip được biết đến như là một

phương pháp thiết kế gần đây nhất cho phép tích hợp trên hệ thống

khoảng từ vài chục đến vài trăm lõi IP như đã kể trên. Việc tích hợp

ngày càng nhiều lõi IP lên trên một vi mạch dẫn đến việc tăng nhu cầu

truyền thông trên chip (truyền thông giữa các lõi IP với nhau). Các

phương thức truyền thông truyền thống như kết nối điểm-tới-điểm, kết

nối bus dùng chung không còn đáp ứng được nhu cầu truyền thông

trên các vi mạch. Bài toán thiết kế các hệ thống trên chip chuyển

thành bài toán thiết kế kiến trúc truyền thông trên chip [1].

1.1. Hệ thống trên chip

Hệ thống trên chip là mô hình thiết kế gần đây nhất cho phép tích

hợp một máy tính hay một hệ thống điện tử hoàn chỉnh gồm nhiều lõi

IP lên trên một chip đơn. Lõi IP có thể là vi xử lý nhúng (µP), bộ xử

lý tín hiệu số (DSP: Digital Signal Procesor), các bộ nhớ như RAM và

1 Trong cuốn sách này, để ngắn gọn thuật ngữ “hệ thống trên chip” sẽ được sử dụng.

22 Mạng trên chip

ROM, các khối vào/ra như Ethernet hay Bluetooth, các khối thu/phát

tần số radio (RF), các khối MEMS và các khối tính toán khác [2]. Ứng

dụng điển hình của các hệ thống trên chip là các ứng dụng trong lĩnh

vực hệ thống nhúng.

Hình 1-1 mô tả một hệ thống trên chip điển hình bao gồm các lõi

IP liên kết với nhau sử dụng các kết nối điểm-điểm hay các bus dùng

chung. Trước xu thế tích hợp ngày càng nhiều lõi IP lên trên cùng một

chip, hiệu suất truyền thông trên các hệ thống đang giảm đi đáng kể vì

các lõi IP này phải chia sẻ với nhau một băng thông có hạn. Để tăng

hiệu suất truyền thông, chúng ta có thể sử dụng nhiều bus dùng chung

trong cùng một hệ thống, mỗi bus được dùng để kết nối một số lõi IP

nhất định nào đó (thường là các lõi IP thường xuyên có sự trao đổi

thông tin với nhau). Để cho phép thực hiện việc truyền thông giữa các

lõi IP ở các bus khác nhau, chúng ta nối các bus này với nhau bằng

một cầu nối bus (bus bridge).

Hình 1-1: Mô hình hệ thống trên chip điển hình.

Hệ thống trên chip mở ra những ứng dụng khả thi về các quá

trình xử lý song song và độc lập, nghĩa là một hệ thống có thể chia

thành nhiều mô-đun nhỏ hơn và các mô-đun ấy có khả năng làm việc

độc lập với nhau. Khi đó, truyền thông giữa các mô-đun đóng vai trò

rất quan trọng, quyết định hiệu năng hoạt động của toàn hệ thống. Bên

cạnh đó, trong một số ứng dụng, yêu cầu về thời gian thực khiến cho

các vấn đề truyền thông trở nên phức tạp hơn. Cùng với sự phát triển

của công nghệ bán dẫn, hệ thống trên chip với các kiến trúc truyền

thông truyền thống đã bộc lộ một số vấn đề liên quan đến hiệu năng

Chương 1. Hệ thống trên chip vĖ kiến trúc hệ thống truyền thông 23

hoạt động, năng lượng tiêu hao, thời gian trễ đáp ứng trên các kết nối,

trên các cổng logic, vấn đề truyền thông cục bộ và toàn cầu… hay các

vấn đề liên quan đến quá trình sản xuất.

Vấn đề về độ trễ: Công nghệ thiết kế vi mạch ngày càng phát

triển, kích thước transistor ngày càng nhỏ, dẫn đến độ tích hợp trên

một vi mạch ngày càng cao. Khi thiết kế với công nghệ nhỏ hơn micro

(DSM: deep submicron) thì vấn đề độ trễ đặc biệt quan trọng [3]. Khi

đó, người thiết kế cần phải giải quyết các vấn đề liên quan đến độ trễ

đáp ứng của dây dẫn cục bộ, dây dẫn toàn cầu và độ trễ đáp ứng của

các cổng logic. Với các công nghệ mới, độ trễ đáp ứng giữa đầu ra và

đầu vào của cổng lô-gic rất nhỏ, đặc biệt khi so với độ trễ dây dẫn (vì

tiết diện dây dẫn rất nhỏ với các công nghệ tiên tiến). Ngoài ra, độ trễ

trên dây dẫn cục bộ trong các lõi IP cũng có sự chênh lệch khá lớn đối

với độ trễ trên các dây dẫn nối giữa các lõi IP với nhau. Ngay cả độ trễ

trên các dây dẫn toàn cầu cũng có sự khác nhau; đó là sự khác nhau

giữa các dây nối các lõi IP ở gần với các dây nối các lõi IP ở xa.

Vấn đề đồng bộ toàn cầu: Việc đạt được sự đồng bộ toàn cầu

càng trở nên khó khăn khi mật độ tích hợp và tốc độ chip càng tăng.

Các quá trình xử lý trong chip được chia nhỏ thành các xử lý bên

trong các lõi IP. Khi đó mỗi lõi IP sẽ có một xung nhịp đồng hồ

(clock) riêng nên có sự đồng bộ cục bộ riêng. Chính vì thế, rất khó để

đạt được sự đồng bộ toàn cầu giữa các xung nhịp đồng hồ của các lõi

IP với nhau. Từ đó, người ta nghĩ ra một giải pháp mới gọi là hệ thống

dị bộ toàn cầu - đồng bộ cục bộ (GALS: Globally Asynchronous -

Locally Synchronous) [4]. Mỗi lõi IP trong hệ thống GALS làm việc

với một xung nhịp đồng hồ riêng, đồng bộ cục bộ trong lõi; khi ra

ngoài, các lõi IP trao đổi với nhau thông qua các phương thức hỏi-đáp

hay bắt tay (handshaking). Việc xây dựng các hệ thống lớn từ các lõi

IP riêng, có đặc trưng thời gian khác nhau trở nên dễ dàng hơn nhờ

giải pháp GALS.

Hiệu suất thiết kế: Sự phát triển không ngừng của công nghệ

dẫn đến yêu cầu giảm thời gian thiết kế; ví dụ từ năm 1997 đến năm

2002 chu kỳ thiết kế giảm tới 50%. Thêm nữa, số lượng transistor của

24 Mạng trên chip

vi mạch ngày càng tăng, việc thu gọn hình dạng và tăng số lớp kim

loại khiến độ phức tạp của thiết kế tăng tới 50 lần trong cùng một chu

kỳ. Do đó, việc tái sử dụng các lõi IP trong thiết kế là cần thiết. Việc

sẵn có tài nguyên giúp các nhà thiết kế có thể thiết kế ở mức trừu

tượng cao hơn, không cần thiết kế ở mức transistor hay mức cổng lô-

gic nữa mà có thể thiết kế ở mức chuyển giao thanh ghi (RTL:

Register Transfer Level), thậm chí ở mức hành xử (behavior) [2].

Những lý do trên tạo nên xu hướng thiết kế hướng tới việc chia

nhỏ các khối xử lý nhằm giảm chu kỳ thiết kế, chia quá trình thiết kế

lớn thành các vấn đề con độc lập. Điều này cũng cho phép áp dụng

các phương pháp kiểm tra mô-đun, kiểm tra ở mức trừu tượng thấp

của các lõi IP, ở mức trừu tượng cao của cả hệ thống hay kết hợp cả

hai. Làm việc ở mức trừu tượng cao sẽ cho phép người thiết kế thực

hiện các thao tác linh hoạt hơn ở các mức trừu tượng thấp. Điều này

cũng dẫn tới sự khác nhau về truyền thông cục bộ và toàn cầu. Vì lý

do đó, trong thiết kế hệ thống trên chip gồm nhiều lõi IP, người thiết

kế không chỉ quan tâm đến vấn đề truyền thông bên trong từng lõi IP

mà còn phải quan tâm phát triển cả truyền thông toàn cầu, dẫn tới

phương pháp thiết kế hệ thống trên chip chuyển từ thiết kế xử lý tập

trung truyền thống sang thiết kế xử lý đồng thời tại các lõi IP. Khi đó,

việc thiết kế một hệ thống được chia nhỏ thành thiết kế các mô-đun

riêng rẽ và được chuyên môn hóa cao. Vấn đề còn lại của thiết kế hệ

thống chỉ là việc xây dựng kết nối giữa các mô-đun đó, tạo nên sự

truyền thông giữa chúng.

1.2. Kiến trúc truyền thông truyền thống và những hạn chế

Trong các mạch tích hợp, kết nối truyền thống giữa các khối chức

năng chủ yếu dựa vào mạng kết nối ad-hoc và các kiến trúc bus dùng

chung như mô tả trong Hình 1-2. Khi hệ thống trở nên phức tạp hơn,

các kiểu kiến trúc này bộc lộ nhiều hạn chế như thông lượng truyền

thông bị giới hạn, công suất tiêu thụ năng lượng lớn, tính toàn vẹn của

tín hiệu không được đảm bảo, trễ đáp ứng trong quá trình truyền tín

hiệu, vấn đề đồng bộ toàn hệ thống… Nếu chúng ta không cải thiện

Chương 1. Hệ thống trên chip vĖ kiến trúc hệ thống truyền thông 25

các phương pháp kết nối truyền thống thì những hạn chế này sẽ tạo

nên nút thắt cổ chai, hạn chế việc thiết kế và xây dựng các hệ thống

tích hợp cỡ lớn [5, 6, 7, 8].

Hình 1-2: Kiến trúc kết nối trong các hệ thống trên chip:

Kết nối điểm-tới-điểm (a); Chia sẻ bus (b).

Với kiểu kết nối ad-hoc, truyền thông giữa các lõi IP được thực

hiện thông qua các liên kết vật lý trực tiếp (liên kết điểm-tới-điểm) từ

lõi IP nguồn đến lõi IP đích, Hình 1-2(a). Ưu điểm của kiểu kết nối

này là chúng ta có được hiệu suất truyền thông tối đa giữa các đơn vị

tham gia truyền thông (có thể sử dụng tối đa tài nguyên băng thông).

Tuy nhiên, các cấu trúc truyền thông kiểu này đòi hỏi một lượng lớn

liên kết trực tiếp giữa các lõi IP trong khi hiệu quả sử dụng các liên

kết này không lớn, tần suất sử dụng vào khoảng 10% theo nghiên cứu

của Dally và cộng sự [5]. Số lượng liên kết lớn sẽ làm cho không gian

thực thi phần cứng tăng và tạo nên sự phức tạp trong quá trình đặt chỗ

và định tuyến (Place & Route). Chính vì vậy, cấu trúc truyền thông

này sẽ trở nên phức tạp cho việc thiết kế các hệ thống trên chip trong

tương lai do số lượng các lõi IP ngày càng nhiều hơn (số lượng các

liên kết sẽ tăng theo cấp số mũ khi số lượng các lõi tăng).

Để khắc phục các nhược điểm của truyền thông điểm-tới-điểm,

người ta nghĩ ra giải pháp truyền thông bus như mô tả trong Hình 1-2(b).

Ngày nay, với các hệ thống trên chip phức tạp, truyền thông chia sẻ

bus là loại cấu trúc truyền thông được sử dụng phổ biến nhất trong các

ứng dụng thương mại. Bus cung cấp giải pháp kết nối đơn giản, hiệu

quả mà qua đó các lõi IP có thể giao tiếp với nhau thông qua một giao

IP

IP

IP IP

IP

IP IP IP

IP IP

Bộ phân

xử bus

(a) (b)

26 Mạng trên chip

thức truyền thông. Nếu so sánh với kết nối điểm-tới-điểm thì cấu trúc

bus tỏ ra ưu việt hơn nhiều, kết nối bus khá mềm dẻo và dễ dàng tái sử

dụng. Tuy nhiên, cấu trúc bus chỉ cho phép thực hiện mỗi một quá

trình truyền thông giữa các lõi IP tại một thời điểm nhất định. Băng

thông của bus do đó được chia cho các IP và hiệu suất truyền thông

giảm đáng kể khi số lượng các lõi IP tăng. Chúng ta cần phải xây

dựng cơ chế phân xử để quản lý quyền truy cập của các IP khi xuất

hiện các yêu cầu đồng thời. Hơn nữa, vì bus dùng cho cả hệ thống nên

các liên kết hình thành bus có độ dài đáng kể. Điều này làm tăng công

suất tiêu thụ chung của hệ thống vì dữ liệu được truyền trên toàn bus

cho dù truyền thông chỉ thực hiện giữa vài lõi IP. Khi chúng ta tăng số

lượng lõi IP thì độ dài của bus cũng tăng và kết quả là trễ truyền dẫn

dữ liệu sẽ vượt quá chu kỳ của xung nhịp đồng hồ [9]. Qua những vấn

đề trên cho thấy về bản chất mô hình kết nối kiểu bus có những hạn

chế nhất định về khả năng kết nối khi hệ thống tích hợp một số lượng

lớn lõi IP.

Để vượt qua một vài vấn đề gặp phải nêu ở trên, các nhà nghiên

cứu đã đề xuất cấu trúc bus phân tầng như IBM Core Connect của

hãng IBM [10] hay ARM AMBA của hãng ARM [1]. Ý tưởng của

giải pháp này là sử dụng nhiều bus trong cùng một hệ thống và kết nối

chúng với nhau thông qua các cầu nối bus (bus bridge), xem Hình 1-3.

Hình 1-3: Mô hình bus phân tầng.

Với ý tưởng này, chúng ta có thể giảm số lượng lõi IP kết nối trên

cùng một bus, chiều dài của các liên kết do đó cũng được giảm đi

đáng kể. Mỗi bus sẽ có một bộ phân xử bus riêng. Tuy nhiên, giải

pháp này gặp phải một vấn đề là việc quản lý địa chỉ các lõi IP sẽ trở

nên khó khăn hơn khi truyền dữ liệu qua các cầu nối bus (dữ liệu được

truyền từ bus này qua bus khác thông qua cầu nối bus). Ngoài ra, giải

IP IP IP

Cầu nối bus IP

Bộ phân

xử bus

IPIPIP

IPIP

Bộ phân

xử bus

IP

Chương 1. Hệ thống trên chip vĖ kiến trúc hệ thống truyền thông 27

pháp này vẫn không thể loại bỏ được các vấn đề cố hữu thuộc về bản

chất của cấu trúc truyền thông dạng bus. Trước tình hình đó, mô hình

mạng trên chip đã được đề xuất và được xem như là một giải pháp đột

phá cho vấn đề truyền thông trên chip.

1.3. Phương pháp thiết kế hệ thống trên chip

Để thiết kế hệ thống mạch tích hợp, chúng ta có thể thực hiện

theo phương pháp thiết kế top-down (thiết kế từ trên xuống) hoặc

phương pháp thiết kế bottom-up (thiết kế từ dưới lên). Theo phương

pháp thiết kế top-down, hệ thống sẽ được phân chia nhỏ thành các

khối chức năng nhỏ hơn, dễ hiểu hơn. Nếu tiếp cận theo phương pháp

thiết kế này, người thiết kế sẽ thiết kế tổng quan, xây dựng các đặc tả

chung của hệ thống nhưng không nêu chi tiết bất kỳ hệ thống con nào.

Sau đó, các hệ thống con sẽ được tinh chỉnh chỉ tiết hơn, thậm chí đôi

khi được chia nhỏ thành các khối chức năng nhỏ hơn ở các cấp độ

khác nhau. Do đó, toàn bộ đặc tả của hệ thống được phân tách thành

các yếu tố cơ bản. Ngay khi các yếu tố cơ sở này được xác định thì

việc xây dựng kiến trúc thực thi các yếu tố này sẽ được triển khai dễ

dàng hơn. Sau khi các mô-đun được xây dựng, chúng ta có thể kết nối

chúng lại với nhau để xây dựng toàn bộ hệ thống từ các yếu tố riêng rẽ

này. Hình 1-4 mô tả phương pháp thiết kế top-down.

Hình 1-4: Phương pháp thiết kế top-down.

Ngược lại với phương pháp thiết kế top-down là phương pháp

thiết kế bottom-up. Đây là phương pháp thiết kế cổ điển, dựa trên việc

28 Mạng trên chip

ghép nối các khối chức năng nhỏ để hình thành hệ thống phức tạp hơn.

Với phương pháp thiết kế bottom-up, người thiết kế sẽ xác định chức

năng của từng khối chức năng nhỏ và bắt tay vào hoàn thiện thiết kế

của khối chức năng đó mà chưa quan tâm đầy đủ đến thiết kế tổng thể.

Tiếp đó, người thiết kế sẽ ghép nối các khối chức năng để xây dựng

nên hệ thống phức tạp hơn. Việc tiếp cận theo phương pháp thiết kế

này dựa trên kinh nghiệm và khả năng của người thiết kế và do đó

người thiết kế có sự bắt đầu thuận lợi hơn. Tuy nhiên, nhược điểm của

phương pháp thiết kế bottom-up là người thiết kế không hình dung

đầy đủ đặc tả kỹ thuật của hệ thống tổng thể ngay từ đầu. Do đó, thiết

kế có thể không tối ưu và người thiết kế mất nhiều thời gian để điều

chỉnh thiết kế.

Hình 1-5: Phương pháp thiết kế bottom-up.

Với các hệ thống trên chip có độ phức hợp cao, các phương pháp

thiết kế top-down và bottom-up thuần túy không còn phù hợp, đòi hỏi

người thiết kế phải xây dựng phương pháp thiết kế kết hợp cả hai

phương pháp trên. Lý do chính là khi thiết kế các hệ thống trên chip,

trong giai đoạn thiết kế lõi IP chúng ta không thể hình dung được các

chức năng cũng như việc ứng dụng nó trong hệ thống. Ngoài ra, thông

thường việc thiết kế một hệ thống trên chip sẽ bao gồm cả nhiệm vụ

thiết kế phần cứng và nhiệm vụ thiết kế phần mềm. Hai nhiệm vụ thiết

kế này có sự liên quan mật thiết với nhau và có sự tác động qua lại lẫn

nhau. Do đó, thiết kế hệ thống trên chip ngày nay còn phải áp dụng cả

phương pháp đồng thiết kế phần cứng - phần mềm.

Chương 1. Hệ thống trên chip vĖ kiến trúc hệ thống truyền thông 29

1.4. Mạng trên chip – một kiến trúc truyền thông mới

Sự phát triển của công nghệ tích hợp, sự hội tụ của các ứng dụng,

yêu cầu giảm thời gian đưa sản phẩm ra thị trường (time-to-market) đã

kéo theo những thay đổi lớn về các phương pháp thiết kế các hệ thống

trên chip. Các hệ thống trên chip tích hợp ngày càng nhiều lõi IP. Do

đó, phương pháp thiết kế tái sử dụng các lõi IP (IP reuse) càng trở nên

quan trọng trong việc thiết kế hệ thống trên chip. Các lõi IP đã được

phát triển từ các dự án trước có thể được tái sử dụng trong các ứng

dụng khác với mục đích giảm thời gian thiết kế, giảm số lượng kỹ sư

thiết kế và nhờ đó giảm giá thành thiết kế. Như đã đề cập trong

chương trước, kiến trúc bus không hoàn toàn thích nghi với các

phương pháp thiết kế mới này vì các giao thức truyền thông bus không

cho phép tạo ra sự phân cấp (phân tầng) các dịch vụ truyền thông.

Cũng vậy, việc bổ sung thêm các chức năng mới cho hệ thống cũng

làm thay đổi đáng kể kiến trúc hệ thống, tác động đến cả tầng giao

diện giữa bus và lõi IP [7].

Trong lĩnh vực truyền thông, mạng máy tính đã vượt qua được

những vấn đề trên nhờ sử dụng các cấu trúc kết nối phân tán và phân

cấp. Những vấn đề này đã được nghiên cứu hàng chục năm trước đây

khi triển khai các mạng cục bộ trong kết nối truyền thông giữa các

máy tính song song. Mạng máy tính đã phát triển rất nhiều ở mức vật

lý (Ethernet, ADSL, sợi quang, không dây) và ở mức truyền vận

(Internet, truyền tải tín hiệu âm thanh, hình ảnh), tất cả nhằm đảm bảo

tính tương thích giữa các hệ thống.

Tương tự như vậy, ý tưởng tích hợp một mạng truyền thông trên

silicon đã được đề xuất. Mục tiêu là đưa ra một kiến trúc hoàn toàn

mới, có tính cạnh tranh với các kiến trúc truyền thông truyền thống về

hiệu năng, công suất tiêu thụ và không gian thực thi. Nhiều nơi trên

thế giới đã bắt tay vào việc nghiên cứu vấn đề này khi ITRS1 khẳng

định sự cần thiết phải đưa ra một kiến trúc truyền thông mới trên chip

để vượt qua các vấn đề gặp phải khi tăng mật độ tích hợp trên các vi

1 International Technology Roadmap for Semiconductors (ITRS).

30 Mạng trên chip

mạch [4]. Những nghiên cứu đầu tiên đã đề cập đến các vấn đề về quan

điểm thiết kế ở mức hệ thống như [11, 12] hay các vấn đề quan điểm

thiết kế ở mức vật lý như [5, 13]. Không lâu sau đó, một số đóng góp

liên quan đến kiến trúc cụ thể về mạng trên chip đã được công bố như

[14, 15, 16, 17]. Hình 1-6 mô tả một ví dụ về mô hình mạng trên chip.

Hình 1-6: Một ví dụ về mô hình mạng trên chip.

Với mô hình này, các lõi IP được kết nối với nhau thông qua một

mô hình vi mạng cấu thành từ các bộ định tuyến và liên kết mạng. Các

lõi IP trong hệ thống có thể hoạt động ở các miền tần số khác nhau.

Hệ thống trên chip với mô hình vi mạng này sử hữu một số ưu điểm

nội bật so với mô hình hệ thống trên chip truyền thống như: hiệu năng

xử lý cao; quá trình xử lý tính toán được tách ra khỏi quá trình truyền

thông; cho phép quản lý năng lượng hiệu quả; năng suất thiết kế cao

(khả năng tái sử dụng các lõi IP, bộ định tuyến và khả năng mở rộng

thiết kế); tính mô-đun hóa cao; dễ dàng thực thi thiết kế hệ thống với

nhiều miền tần số khác nhau; khắc phục vấn đề lệch xung nhịp đồng

hồ (clock skew), v.v…

Nghiên cứu về mạng trên chip là một nghiên cứu tổng hợp, đa

ngành, một sự kết hợp giữa tính toán phân tán, truyền thông mạng,

truyền thông trên chip, phương pháp thiết kế hệ thống, áp dụng các

giải pháp thiết kế mạng máy tính vào thiết kế hệ thống trên chip. Hiện

IP

IPIP

IPIP

IP

RR

RR

Bộ định tuyến

Lõi IP

Liên kết mạng

RR

IP

IP

Các miền tần số khác nhau

Chương 1. Hệ thống trên chip vĖ kiến trúc hệ thống truyền thông 31

tại, trên thế giới có khoảng 40 nhóm nghiên cứu (trung tâm nghiên

cứu, trường đại học, doanh nghiệp) đang triển khai các nghiên cứu

liên quan đến mạng trên chip nhưng vẫn còn rất nhiều vấn đề cần

được giải quyết. Một số sản phẩm thử nghiệm ban đầu đã được công

bố như Intel Polaris [18] của hãng Intel, CHAIN [19] của Silistix, hay

FAUST [20] của Trung tâm Nghiên cứu CEA-Leti, Minatec. Tuy

nhiên, việc đưa ra các sản phẩm thương mại thực sự vẫn đòi hỏi nhiều

nỗ lực hơn nữa của các nhà nghiên cứu trong việc phát triển, hoàn

thiện mô hình và các phương pháp thiết kế. Chúng ta còn phải giải

quyết tối ưu hơn về kiến trúc và các bài toán liên quan như chất lượng

dịch vụ, khả năng tái cấu hình, công suất tiêu thụ, phương pháp kiểm

tra, kiểm chứng… Mặc dù đã có một vài sản phẩm thương mại nhưng

có thể nói rằng mô hình mạng trên chip vẫn còn trong giai đoạn tiếp

tục nghiên cứu thử nghiệm và hoàn thiện phương pháp luận tại các

trường đại học và các trung tâm nghiên cứu công nghiệp.

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

Mặc dù liên tục được cải tiến, hệ thống trên chip với kiến trúc truyền

thông truyền thống đã bộc lộ nhiều hạn chế. Trước tình thế đó, mô hình

mạng trên chip ra đời như là một giải pháp hứa hẹn cho vấn đề truyền

thông của các hệ thống trên chip, cho phép người thiết kế xây dựng các

hệ thống trên chip có độ phức tạp cao hơn, khả năng tính toán cao hơn

trong khi có kiến trúc mềm dẻo và linh hoạt hơn. Trong chương tiếp theo,

chúng ta sẽ tìm hiểu về mô hình truyền thông mới này.

Mục lục 32

Chương 2

MẠNG TRÊN CHIP: CÁC KHÁI NIỆM CƠ BÂN

Mạng trên chip (NoC: Network-on-Chip) được đề xuất lần đầu

tiên vào những năm đầu thế kỷ XXI và nhanh chóng được xem như là

một giải pháp thay thế cho mô hình truyền thông cổ điển trong các hệ

thống trên chip. Chương này sẽ tập trung làm rõ các khái niệm liên

quan đến mô hình mạng trên chip nhằm làm nổi bật các ưu việt của

mô hình này, tiếp đó trình bày tổng quan tình hình nghiên cứu về mô

hình mạng trên chip trên thế giới. Việc làm rõ các khái niệm cũng như

tổng quan tình hình nghiên cứu giúp chúng ta dễ dàng nắm bắt được

nội dung sẽ được trình bày trong các chương tiếp theo.

Ngay cả khái niệm về mạng trên chip (NoC) thì trong cộng đồng

nghiên cứu đã tồn tại hai nhận thức khác nhau: một số nhà nghiên cứu

cho rằng NoC là một tập con của SoC; số khác lại cho rằng NoC là sự

mở rộng của SoC. Trong nhận thức đầu thì NoC được định nghĩa chặt

chẽ như là cấu trúc truyền thông chuyển tiếp dữ liệu tức là mạng và

các phương thức truy nhập vào mạng. Trong cách nhận thức thứ hai,

NoC được định nghĩa rộng hơn, nó được xem như là bao quanh các

vấn đề liên quan tới ứng dụng, cấu trúc hệ thống và ảnh hưởng của

truyền thông hay ngược lại. Trong cuốn sách này, chúng ta thiên về

nhận thức thứ hai khi bàn luận về NoC. Đây cũng là xu thế chung của

các nhóm nghiên cứu về NoC trên thế giới. Để dễ phân biệt, trong

cuốn sách này chúng tôi sẽ gọi các hệ thống trên chip dựa trên mô

hình mạng trên chip là hệ thống mạng trên chip.1

1 “Hệ thống mạng trên chip” là hệ thống trên chip dựa trên mô hình mạng trên

chip, còn được gọi ngắn gọn hơn là “Hệ thống NoC”.

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 33

2.1. Tô-pô hay cấu trúc liên kết của mạng trên chip

Tô-pô (topology) hay cấu trúc liên kết của mạng định nghĩa cách

thức các bộ định tuyến (router) mạng kết nối với nhau sử dụng các

liên kết mạng (network link). Nó quy định tổ chức vật lý của mạng và

do đó thường được mô hình hóa bằng đồ thị. Tương tự như mạng máy

tính, có nhiều loại tô-pô khác nhau có thể được sử dụng để xây dựng

các mạng trên chip. Hình 2-1 giới thiệu một số tô-pô thường được

chọn khi xây dựng các mạng trên chip.

(a) (b) (c)

(d) (e) (f)

Hình 2-1: Những tô-pô thông dụng dùng cho mạng trên chip:

ring hay chordal ring (a); fat-tree (b); butterfly fat-tree (c); 2D-mesh (d);

2D torus (e); 2D folded torus (f).

Mỗi tô-pô có những ưu nhược điểm riêng. Để so sánh tính ưu việt

của các tô-pô, chúng ta thường sử dụng một số tiêu chí vật lý như sau:

cấp bậc của bộ định tuyến (router degree), đường kính mạng (network

diameter), tính quy tắc (regularity), tính đối xứng (symmetry), tính đa

dạng của các đường định tuyến (diversity of routing paths), độ rộng

điểm chia đôi mạng (bisection wide).

34 Mạng trên chip

Cấp bậc của bộ định tuyến được định nghĩa là số liên kết dùng để

kết nối chính bộ định tuyến đó với các bộ định tuyến lân cận. Đường

kính của mạng chính là khoảng cách lớn nhất giữa hai bộ định tuyến

trong mạng (tính theo đường định tuyến ngắn nhất). Một mạng được

gọi là có quy tắc khi các bộ định tuyến có cùng một cấp bậc. Mạng

được gọi là đối xứng nếu tô-pô mạng không thay đổi khi thay đổi vị trí

quan sát (từ các bộ định tuyến khác nhau). Một mạng có sự đa dạng về

các đường định tuyến khi hầu hết các cặp bộ định tuyến có nhiều

đường định tuyến giữa chúng. Tính đa dạng về các đường định tuyến

quyết định sức mạnh (robustness) của mạng. Độ rộng điểm chia đôi

mạng chính là số liên kết tối thiểu mà chúng ta phải cắt để chia mạng

đó thành hai phần khác nhau. Băng thông tổng cộng của các liên kết

này được gọi là băng thông của điểm chia đôi mạng (bisection

bandwidth), cho phép đo hiệu năng của một tô-pô mạng.

Theo các đề xuất kiến trúc mạng trên chip, tô-pô mạng chiếm ưu

thế nhất là tô-pô dạng lưới hai chiều (2D-mesh), Hình 2-1(a). Lý do là

vì tô-pô này có những ưu điểm vượt trội như dễ dàng thực thi trên các

công nghệ bán dẫn hiện tại, đơn giản trong chiến lược định tuyến, dễ

dàng phát triển/mở rộng mô hình mạng. Ngoài tô-pô dạng lưới hai

chiều, tô-pô 2D torus (Hình 2-1(e)) cũng thường được sử dụng với

mục đích giảm đường kính và tăng băng thông của mạng. Tuy nhiên,

tô-pô này có một số hạn chế như: việc thực thi cấu trúc tô-pô này phức

tạp hơn; các liên kết dùng để nối vòng các bộ định tuyến ở bên rìa dài

(dẫn tới suy giảm hiệu năng truyền thông). Để giảm độ dài của các liên

kết nối vòng này, ta có thể sử dụng tô-pô 2D folded torus (Hình 2-1 (f)).

Tuy nhiên, tô-pô 2D folded torus đòi hỏi thuật toán định tuyến phức

tạp hơn nhiều so với các tô-pô nêu trên. Có thể thấy rằng cả ba tô-pô

này đều có một điểm yếu chung đó là độ trễ đáp ứng cao.

Ngoài những tô-pô vừa nêu ở trên, các tô-pô fat-tree, butterfly

fat-tree và chordal ring cũng là những tô-pô được các nhà thiết kế

quan tâm. Tô-pô fat-tree và tô-pô butterfly fat-tree có đường kính

mạng rất nhỏ; do đó, độ trễ đáp ứng của các tô-pô cũng giảm đi đáng

kể. Nhược điểm của hai tô-pô này chính là cấp bậc của bộ định tuyến

và độ phức tạp của kết nối. Tô-pô butterfly fat-tree có cấp bậc của bộ

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 35

định tuyến bé hơn tô-pô fat-tree. Tuy nhiên, cấu trúc kết nối trong tô-

pô này phức tạp hơn nhiều; do đó, không gian thực thi phần cứng cũng

tăng lên đáng kể. Tô-pô chordal ring được sử dụng nhằm đạt được

hiệu năng truyền thông cao hơn so với tô-pô hình vòng (ring) nhưng

kết nối trong tô-pô này cũng phức tạp hơn và việc định tuyến do đó

cũng phức tạp hơn.

Một số nghiên cứu thực thi việc lai ghép các tô-pô hay việc lai

ghép giữa tô-pô mạng với cấu trúc bus nhằm tận dụng các ưu việt sẵn

có của từng loại cấu trúc truyền thông. Ví dụ như lai ghép nhằm tăng

băng thông và giảm khoảng cách giữa các bộ định tuyến [21].

Có thể kết luận rằng có nhiều tô-pô có thể sử dụng trong xây

dựng các kiến trúc mạng trên chip. Mỗi tô-pô có ưu điểm, nhược điểm

riêng. Việc chọn tô-pô cho một kiến trúc mạng trên chip là tương đối

phức tạp và liên quan đến nhiều ràng buộc đến từ ứng dụng và lưu

lượng truyền thông của mạng. Bên cạnh đó, chúng ta cũng cần phải

quan tâm đến việc cân đối giữa hiệu năng và giá thành thực thi.

2.2. Kỹ thuật truyền thông

Kỹ thuật truyền thông định nghĩa chiến lược, cách thức vận

chuyển dữ liệu trên các NoC. Thực vậy, truyền thông trên một mạng

dựa vào kỹ thuật chuyển mạch (còn được gọi là kỹ thuật nối-chuyển

trong một số tài liệu tiếng Việt gần đây). Sự chuyển mạch được định

nghĩa là sự thiết lập đường nối tạm thời giữa hai hay nhiều điểm (nút

mạng) trong mạng để truyền dữ liệu hay một bộ phận của dữ liệu.

Trong khi đó, sự định tuyến được hiểu là những chỉ thị thông minh để

quyết định đường truyền dữ liệu. Có hai kỹ thuật chuyển mạch cơ bản

được sử dụng [22, 4]: kỹ thuật chuyển mạch kênh (circuit-switching)

và kỹ thuật chuyển mạch gói (packet switching).

Kỹ thuật chuyển mạch kênh: Đây là kỹ thuật chuyển mạch đầu

tiên, được sử dụng trong các mạng điện thoại. Trong kỹ thuật này, kết

nối truyền thông giữa hai đơn vị có nhu cầu trao đổi thông tin phải

được thiết lập trước khi trao đổi thông tin. Do đó, trong quá trình

truyền thông sẽ luôn tồn tại một kết nối vật lý giữa hai đơn vị truyền

36 Mạng trên chip

thông. Thông tin điều khiển (để thiết lập và huỷ bỏ kết nối) được tách

rời khỏi dữ liệu truyền thông.

Ưu điểm của kỹ thuật chuyển mạch kênh là độ tin cậy cao (khi kết

nối đã được thiết lập thì hầu như không có thất thoát tín hiệu), băng

thông tối đa và độ trễ đáp ứng của tín hiệu thấp (do đó, thường được

dùng cho những ứng dụng thời gian thực). Tuy nhiên, kỹ thuật này có

nhược điểm là tiêu tốn tài nguyên mạng (tài nguyên bị chiếm giữ cho

đường kết nối trong suốt quá trình truyền tin và chỉ được giải phóng khi

việc truyền dữ liệu hoàn tất). Một điểm hạn chế khác là độ mềm dẻo

của kiến trúc truyền thông. Nếu chúng ta muốn thêm bớt một bộ định

tuyến thì chúng ta phải sửa đổi lại bộ điều khiển trung tâm.

Kỹ thuật chuyển mạch gói: Trong kỹ thuật chuyển mạch gói, dữ

liệu được chia thành nhiều gói tin tại nguồn trước khi gửi đến đích.

Mỗi gói tin bao gồm thông tin định tuyến và dữ liệu. Các gói tin có thể

được truyền đi đồng thời theo các đường kết nối khác nhau. Tại đích

đến, các gói tin sẽ được tái sắp xếp và hợp thành dữ liệu ban đầu.

Ưu điểm của kỹ thuật chuyển mạch gói là cho phép khai thác tối

đa hiệu suất mạng, các đơn vị có nhu cầu truyền thông có thể chia sẻ

tài nguyên mạng (bộ định tuyến, liên kết mạng). Khi đó, kết nối truyền

thông được thực hiện một cách cục bộ giữa các nút mạng chứ không

phải giữa các đơn vị truyền thông. Các tài nguyên mạng do đó có thể

được sử dụng cho các truyền thông khác.

Một ưu điểm khác nữa của kỹ thuật chuyển mạch gói là ta không

cần bộ điều khiển trung tâm bởi vì các gói tin được định tuyến một

cách riêng rẽ trong mạng. Ngược lại, các gói tin phải chứa đựng các

thông tin định tuyến: các thông tin điều khiển này được gửi cùng thời

điểm với dữ liệu truyền thông. Các bộ định tuyến do đó thường phức

tạp vì phải xử lý các thông tin điều khiển và định tuyến dữ liệu truyền

thông. Một nhược điểm nữa là độ trễ đáp ứng tín hiệu cũng lớn hơn.

Ví dụ, thi thoảng bộ định tuyến phải sửa đổi nội dung của các gói tin

để cập nhật thông tin định tuyến. Hơn nữa, các vấn đề quản lý tắc

nghẽn và quản lý thứ tự các gói tin là những trở ngại lớn trong kỹ

thuật chuyển mạch này.

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 37

2.3. Cơ chế truyền thông

Vì lý do kỹ thuật chuyển mạch gói khá phức tạp, các gói tin được

chia thành các đơn vị nhỏ hơn, có kích thước cố định, gọi là flit1. Đây

là một đơn vị đồng thời chứa dữ liệu và thông tin điều khiển, có thể

được truyền trong mạng. Do đó, ta phải định nghĩa cơ chế truyền

thông, có nghĩa là định nghĩa cách thức các gói tin đi từ bộ định tuyến

này sang bộ định tuyến tiếp theo trong mạng. Có ba cơ chế truyền

thông hay dùng là: Lưu trữ và chuyển tiếp (SAF: Store-And-Forward),

Virtual-Cut-Through (VCT) và Wormhole (WH).

(a) (b)

(c)

Hình 2-2: Các cơ chế định tuyến: Lưu trữ và chuyển tiếp (a);

Virtual Cut Through (b); Wormhole (c).

Lưu trữ và chuyển tiếp (SAF: Store-And-Forward): Lưu

trữ và chuyển tiếp là cơ chế truyền thông mà theo đó toàn bộ gói tin

được truyền từ nút mạng này đến nút mạng tiếp theo (Hình 2-2(a)).

Do vậy, cơ chế này đòi hỏi bộ định tuyến phải có một bộ đệm đủ lớn

để lưu trữ toàn bộ gói tin. Khi kích thước gói tin lớn thì không gian bộ

đệm cần thiết sẽ phải tăng theo. Chúng ta biết rằng không gian thực thi

bộ nhớ trên vi mạch cũng như công suất tiêu thụ của bộ nhớ là rất lớn,

do đó kích thước của các bộ đệm phải là con số giới hạn. Ngoài ra, trễ

đáp ứng của các gói tin tăng lên tại các nút mạng và các flit của gói tin

1 Flit (Flow Control Unit) – một đơn vị điều khiển luồng dữ liệu trong mạng.

38 Mạng trên chip

phải được nhận bởi nút mạng hiện tại trước khi được gửi tới nút mạng

tiếp theo. Độ trễ đáp ứng toàn bộ của một kênh truyền thông sẽ là tích

của thời gian truyền một gói tin giữa hai nút mạng với số lượng nút

mạng mà gói tin ấy đi qua khi được truyền từ nguồn tới đích.

Virtual-Cut-Through (VCT): Cơ chế truyền thông Virtual-Cut-

Through được đề xuất với mục đích giảm độ trễ đáp ứng của các gói

tin tại từng nút mạng. Với cơ chế này, ta có thể bắt đầu việc truyền gói

tin đến nút mạng tiếp theo trước khi nhận đầy đủ gói tin tại nút mạng

hiện tại như mô tả trong Hình 2-2(b).

Nhược điểm chính của cơ chế này là nút mạng hiện tại phải có

khả năng lưu trữ toàn bộ gói tin khi nút mạng tiếp theo không sẵn sàng

tiếp nhận gói tin này. Do đó, các bộ đệm sử dụng trong cơ chế này

cũng có dung lượng giống như các bộ đệm sử dụng trong cơ chế SAF

nhưng độ trễ đáp ứng giảm đi đáng kể.

Wormhole (WH): Với cơ chế truyền thông Wormhole, một flit

được truyền từ nút mạng này sang nút mạng tiếp theo khi nút mạng

tiếp theo có khả năng lưu trữ flit đó chứ không nhất thiết phải truyền

cả gói tin đầy đủ, xem Hình 2-2(c). Thông thường, mỗi gói tin bao

gồm một flit tiêu đề (header flit) và theo sau bởi nhiều flit dữ liệu (data

flit). Flit tiêu đề chứa thông tin định tuyến, chuỗi các flit theo sau

được truyền đi theo kết nối đã được thiết lập bởi flit tiêu đề. Cơ chế

này có ưu điểm là tốn rất ít không gian bộ đệm so với hai cơ chế trên

nhờ việc một gói tin có thể được truyền đi một cách dàn trải trên các

bộ định tuyến (kích thước bộ đệm được giảm thiểu tối đa). Độ trễ đáp

ứng do đó cũng được cải thiện đáng kể. Nhược điểm của cơ chế này là

nếu một flit bị chặn thì các flit theo sau cũng sẽ bị chặn, dẫn tới ảnh

hưởng đến tất cả các nút mạng trong kết nối. Khi đó, các kết nối khác

không thể sử dụng bất kỳ nút mạng nào trên đường truyền.

Mạng máy tính thường sử dụng cơ chế truyền thông SAF vì

trong mạng máy tính người ta không quan tâm đến kích thước bộ

nhớ/bộ đệm. Trong khi đó, mạng trên chip thường sử dụng cơ chế

truyền thông Wormhole do có độ trễ đáp ứng thấp và tốn ít không

gian bộ đệm.

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 39

2.4. Chiến lược lưu trữ

Mục trước cho thấy trong kỹ thuật chuyển mạch gói các bộ định

tuyến phải chứa các phần tử nhớ (các bộ đệm dữ liệu). Việc bố trí các

bộ đệm này tại các lối vào hay lối ra của bộ định tuyến phụ thuộc vào

các chiến lược khác nhau [23]. Trong mục này, chúng ta sẽ phân biệt

bốn chiến lược cơ bản hay được dùng khi thiết kế, xây dựng các mạng

trên chip, đó là hàng đợi lối vào (input queuing), hàng đợi lối ra

(output queuing), hàng đợi lối ra ảo (virtual output queuing), hàng đợi

lối vào ưu tiên kênh ảo (virtual channel priority input queuing).

(a) (b)

(c) (d)

Hình 2-3: Chiến lược lưu trữ trên bộ định tuyến: hàng đợi lối vào (a);

hàng đợi lối ra (b); hàng đợi lối ra ảo (c); hàng đợi lối vào ưu tiên kênh ảo (d).

Hàng đợi lối vào (input queuing): Với chiến lược hàng đợi lối

vào, N hàng đợi sẽ được thiết lập tại N lối vào của bộ định tuyến, như

mô tả trong Hình 2-3(a). Bộ phân xử tuần tự sẽ xác định tại thời điểm

nào thì lối vào nào được nối với lối ra nào nhằm đảm bảo không có

xung đột xảy ra. Tuy nhiên, lưu thông dữ liệu của bộ định tuyến sẽ

bão hòa vào khoảng 59% [24] do xảy ra tình trạng tắc nghẽn ở mỗi

đầu hàng đợi (head-of-line blocking) khi số lối vào N lớn. Hiện tượng

40 Mạng trên chip

này xảy ra khi một dữ liệu đầu hàng đợi không thể truy cập tới lối ra

và cản trở các dữ liệu phía sau nó trong cùng hàng đợi.

Hàng đợi lối ra (output queuing): Ở chiến lược hàng đợi lối ra, N

hàng đợi sẽ được thiết lập tại N lối ra của bộ định tuyến (Hình 2-3(b)).

Tất cả các flit đến cùng trong một khe thời gian sẽ được định tuyến

trước khe thời gian tiếp theo. Do vậy, ma trận chuyển mạch (crossbar)

phải có tốc độ làm việc nhanh hơn N lần so với tốc độ làm việc của

các lối vào và lối ra, kể cả khi N lối vào cùng được định tuyến đến

cùng một lối ra.

Hàng đợi lối ra ảo (VOQ: virtual output queuing): Với chiến

lược hàng đợi lối ra ảo, N2 hàng đợi được thiết lập tại N lối vào của bộ

định tuyến như mô tả trong Hình 2-3(c). Ý tưởng của chiến lược này

là kết hợp ưu điểm của hai chiến lược trên. Về nguyên tắc, chiến lược

VOQ là một phiên bản của chiến lược hàng đợi lối vào với các hàng

đợi lối ra ảo nhằm loại bỏ hiện tượng tắc nghẽn ở các đầu hàng đợi lối

vào và bắt chước hoạt động của chiến lược hàng đợi lối ra. Tất cả lối

vào đều có thể được chuyển đến lối ra trong cùng một thời điểm. Nhờ

vậy, chiến lược VOQ cho ta một hiệu suất lưu trữ cao hơn. Tuy nhiên,

chiến lược này đòi hỏi một số lượng lớn hàng đợi và do đó giá thành

thực thi phần cứng khá đắt.

Hàng đợi lối vào ưu tiên kênh ảo (VCPIQ: virtual channel

priority input queuing): Chiến lược này được đề xuất nhằm tăng

hiệu năng nối-chuyển và giảm nhược điểm của chiến lược VOQ. Với

một kênh vật lý, chúng ta thiết lập P hàng đợi (P < N) tương ứng với P

kênh ảo cùng chia sẻ băng thông của kênh vật lý (xem Hình 2-3(d)).

Việc sử dụng dung lượng kết nối tăng lên đáng kể nhờ giảm khả năng

tắc nghẽn đầu hàng đợi. Mặt khác, độ trễ đáp ứng và độ phức tạp của

bộ định tuyến tăng cùng với số lượng kênh ảo. Nghiên cứu của Pande

và đồng nghiệp [25] chỉ ra rằng số lượng kênh ảo bằng 4 (P = 4) cho

ta một thoả hiệp tốt nhất giữa tốc độ truyền dữ liệu và độ trễ đáp ứng.

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

Thuật toán định tuyến xác định đường đi từ nguồn về đích của một

gói tin. Trong một kiến trúc truyền thông, thuật toán định tuyến đóng

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 41

một vai trò hết sức quan trọng: thuật toán định tuyến tối ưu nhất sẽ đem

lại hiệu năng truyền thông cao nhất. Chính vì vậy, việc nghiên cứu về

thuật toán truyền thông được các nhà thiết kế hết sức quan tâm. Chúng

ta cần phải phân tích, cân đối các yêu cầu của bài toán để lựa chọn, xây

dựng một thuật toán vừa cho phép sử dụng tối ưu các liên kết truyền

thông, vừa tương đối đơn giản trong việc thực hiện trên chip.

Hiện có nhiều thuật toán định tuyến được sử dụng trong thiết kế

các mạng trên chip. Việc lựa chọn thuật toán phụ thuộc vào bài toán

và định hướng của các nhóm nghiên cứu khác nhau. Tuy nhiên, chúng

ta có thể tạm phân thành hai loại lớn: thuật toán định tuyến xác định

(deterministic routing algorithm) và thuật toán định tuyến thích ứng

(adaptive routing algorithm).

Với thuật toán định tuyến xác định (còn được gọi là thuật toán

định tuyến tĩnh – static routing algorithm), đường dẫn giữa nguồn và

đích được xác định và sử dụng một cách độc lập với tình trạng hiện tại

của mạng. Thuật toán này không quan tâm đến tải hiện tại của các bộ

định tuyến và các liên kết mạng khi đưa ra quyết định định tuyến.

Trong khi đó, với thuật toán định tuyến thích ứng (còn được gọi là

thuật toán định tuyến động – dynamic routing algorithm), việc quyết

định đưa ra đường định tuyến cho gói tin liên quan chặt chẽ đến trạng

thái của mạng tại thời điểm đó (tải của mạng, sự sẵn sàng của các liên

kết mạng). Kết quả là đường truyền thông giữa nguồn và đích của một

gói tin thay đổi theo thời gian.

Thuật toán định tuyến xác định đơn giản hơn so với thuật toán

định tuyến thích ứng khi thực hiện xét về khía cạnh lô-gic và sự tương

tác qua lại giữa các bộ định tuyến [6]. Thuật toán này thích hợp cho

các ứng dụng mà ta có thể dự kiến được các quá trình trao đổi dữ liệu

trong mạng và các quá trình trao đổi này tương đối ổn định. Do đó, nó

thường được dùng cho các mạng trong các hệ thống ứng dụng riêng

(ASIC). Ngược lại, thuật toán định tuyến thích ứng thường được dùng

cho các ứng dụng có lưu lượng mạng không có quy tắc và thường

không đoán trước được. Ví dụ trong trường hợp các hệ thống đa xử lý

như MPSoC (Multi-Processor SoC).

42 Mạng trên chip

Thuật toán định tuyến (kể cả xác định hay thích ứng) có thể được

phân loại cụ thể hơn tùy theo nơi lưu giữ thông tin định tuyến hay nơi

đưa ra quyết định định tuyến. Một thuật toán được gọi là thuật toán

định tuyến tại nguồn (source routing) nếu đơn vị phát dữ liệu (đơn vị

nguồn) xác định đường định tuyến. Trong trường hợp này các thông tin

về đường định tuyến được tính toán và lưu trữ trong một bảng định

tuyến của đơn vị phát dữ liệu. Khi đơn vị phát muốn gửi đi một gói tin,

nó sẽ tìm kiếm các thông tin định tuyến tương ứng với đích đến trên

bảng định tuyến và chèn các thông tin này vào flit tiêu đề của gói tin.

Ngược lại, nếu mỗi bộ định tuyến chọn đích đến của gói tin theo

hàm của địa chỉ đến (hoặc các tiêu chí khác), thì trường hợp này gọi là

thuật toán định tuyến phân tán. Quyết định định tuyến được đưa ra tại

từng bộ định tuyến bằng cách quan sát các địa chỉ đích đến trong một

bảng định tuyến hoặc thực hiện một hàm định tuyến bằng phần cứng

[26]. Với thuật toán này, mỗi bộ định tuyến sẽ phải chứa một bảng

định tuyến được xác định trước hoặc một mạch lô-gic với đầu vào là

địa chỉ đích đến của gói tin và đầu ra là quyết định về hướng định

tuyến. Khi có một gói tin được đưa đến lối vào bộ định tuyến, dựa vào

thông tin về đích đến, lối ra định tuyến sẽ được tìm thấy thông qua

việc tra bảng định tuyến hoặc được tính toán thông qua mạch lô-gic

nói trên.

2.6. Tắc nghẽn và kỹ thuật điều khiển luồng dữ liệu

Vì không có điều khiển toàn cầu khi truyền các gói tin giữa các

bộ định tuyến nên việc xảy ra hiện tượng tắc nghẽn là điều hoàn toàn

có thể. Với mạng trên chip, có hai hiện tượng tắc nghẽn điển hình là

khóa chết/tắc nghẽn tĩnh (deadlock) và khóa động/tắc nghẽn động

(livelock).

Khóa chết (deadlock) xảy ra khi một hoặc nhiều gói tin bị treo

trong một khoảng thời gian không xác định do chờ một sự kiện không

có khả năng xảy ra. Hình 2-4 là một ví dụ minh họa về một trạng thái

mà hai gói tin được định tuyến quay vòng trong một mạng dạng lưới

vuông gồm bốn bộ định tuyến. Gói tin đang chiếm giữ các liên kết

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 43

mạng L1 và L2 chờ liên kết L3 trong khi gói tin chiếm giữ các liên kết

mạng L3 và L4 thì lại chờ liên kết L1. Không gói tin nào có thể dịch

chuyển được vì thiếu tài nguyên mạng cần thiết cho việc định tuyến:

các liên kết đang bị chiếm giữ không bao giờ được giải phóng.

Hình 2-4: Ví dụ về một trường hợp khóa chết.

Với cơ chế định tuyến Wormhole, flit tiêu đề chứa đựng các

thông tin định tuyến và các flit dữ liệu theo sau phải được đặt gần kề,

không bao giờ được đan xen với các flit của gói tin khác [27]. Nếu flit

tiêu đề bị chặn bởi một sự tắc nghẽn do thiếu tài nguyên thì tất cả các

flit dữ liệu của gói tin cũng sẽ bị dừng lại. Điều này có nghĩa là chúng

sẽ chiếm giữ tất cả tài nguyên mạng trên đường truyền như các liên

kết mạng và bộ đệm. Kết quả là cơ chế định tuyến Wormhole rất nhạy

cảm với hiện tượng khóa chết.

Để tránh tắc nghẽn này, ta phải chọn một thuật toán định tuyến

đặc biệt có thể loại bỏ sự phụ thuộc lẫn nhau giữa các gói tin như thuật

toán XY khi sử dụng tô-pô mạng dạng 2D mesh [28]. Thuật toán XY

là một thuật toán định tuyến theo đó dữ liệu được định tuyến theo

phương X (giữa Tây và Đông), sau đó theo phương Y (giữa Bắc và

Nam). Mặt khác, ta cũng có thể sử dụng các kênh ảo để loại bỏ sự phụ

thuộc nêu trên. Với cách thức này, trong khi một gói tin bị chặn một

cách tạm thời và được lưu trữ trên các bộ định tuyến nhưng nhờ có

nhiều kênh ảo nên gói tin khác vẫn có thể được truyền qua cùng một

kênh vật lý nhưng với kênh ảo khác, xem Hình 2-5.

L1

L4 L2

L3

Gói tin 2

Gói tin 1

44 Mạng trên chip

Hình 2-5: Tránh khóa chết bằng kênh ảo.

Khóa động (livelock) là những trạng thái tắc nghẽn mà một số

gói tin không thể đến đích ngay cả khi không bị chặn một cách hoàn

toàn. Hiện tượng này thường xảy ra khi nguồn tài nguyên thay đổi

trạng thái liên tục để chờ cho những truyền thông khác kết thúc. Một

chuỗi dữ liệu muốn truyền từ nút nguồn là một trong bốn nút mạng ở

vòng ngoài tới nút đích là một trong bốn nút mạng ở trong nhưng do

bốn nút phía trong bị khóa chết nên dữ liệu cứ truyền quay vòng ở bốn

nút mạng ngoài mà không sao vào tới nút đích. Hình 2-6 mô tả một ví

dụ về hiện tượng khóa động.

Hình 2-6: Ví dụ về khóa động.

Các phương pháp để tránh khóa chết và khóa động có thể áp dụng

một cách cục bộ tại các nút mạng để hỗ trợ những dịch vụ ban đầu như

thực thi phần cứng, hoặc áp dụng toàn cầu đảm bảo điều khiển lô-gic

luồng dữ liệu bằng việc ứng dụng cơ cấu điều khiển luồng đầu-cuối

(end-to-end flow control).

Bộ định tuyến

đang trong tình

trạng khóa động

Bộ định tuyến

đang trong tình

trạng khóa chết

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 45

Kỹ thuật điều khiển luồng dữ liệu là cơ chế quyết định cách gói

tin di chuyển trong mạng. Vì vậy, nó gồm cả vấn đề toàn cầu và cục

bộ. Việc lựa chọn kỹ thuật điều khiển luồng dữ liệu tối ưu sẽ không

những giúp ta đạt được hiệu năng truyền thông tối đa mà còn giúp ta

hạn chế được các vấn đề tắc nghẽn nêu trên. Có ba kỹ thuật sau

thường được sử dụng:

Kỹ thuật cửa sổ (window technique): Kỹ thuật này sử dụng một

cửa sổ trượt để xác định gói tin nào được lưu thông trên mạng trong

một khoảng thời gian xác định.

Kỹ thuật điều khiển thông lượng (throughput control technique):

Tốc độ gửi dữ liệu của bên truyền được điều khiển và giới hạn.

Kỹ thuật credit (credit technique): Bên truyền phải nhận được

các credit từ bên nhận trước khi gửi một gói dữ liệu. Bên nhận gửi các

credit theo khả năng lưu trữ thông tin mới của nó. Mỗi khi một gói tin

được gửi đi thì bên truyền phải giảm giá trị bộ đếm credit.

2.7. Chất lượng dịch vụ mạng

Chất lượng dịch vụ (QoS: Quality of Service) là một khái niệm

dùng để ám chỉ các thông số hay đặc tả của các dịch vụ được cung cấp

bởi mạng dành cho một lớp đối tượng truyền thông nào đó. Các đặc tả

của QoS có thể là các thông số chỉ hiệu năng của mạng như tỷ lệ mất

mát thông tin, thông lượng, độ trễ đáp ứng trung bình, sự biến đổi của

độ trễ đáp ứng (jitter)… liên quan đến chất lượng truyền tin và sự sẵn

sàng của dịch vụ. Trong thiết kế mạng trên chip, một số khái niệm về

dịch vụ sau đây được đề cập đến [8, 23, 29]:

Tính toàn vẹn dữ liệu: dữ liệu được truyền đi không bị sai

lệch. Hay nói cách khác là dữ liệu tại nơi nhận được phải đảm bảo đầy

đủ, nguyên vẹn như lúc nó ở nơi phát.

Không xảy ra mất mát dữ liệu: đảm bảo không có gói tin hay

flit nào bị mất mát trong quá trình truyền dữ liệu trên NoC. Việc quản

lý không tốt các luồng dữ liệu hoặc các không gian nhớ trong bộ định

tuyến có thể gây nên sự mất mát dữ liệu trong quá trình truyền thông.

46 Mạng trên chip

Thứ tự dữ liệu: trong mạng trên chip, dữ liệu nhận được phải

có thứ tự sắp xếp giống như ở nguồn phát. Với các thuật toán xác

định, ta chỉ cần xây dựng cơ chế đảm bảo các gói tin không tự nhân

đôi. Ngược lại, với các thuật toán thích ứng ta cần phải xây dựng cơ

chế tái sắp xếp dữ liệu tại đích đến.

Thông lượng: lượng dữ liệu được truyền từ nguồn tới đích

trong một khoảng thời gian xác định.

Độ trễ đáp ứng: đây là một dịch vụ quan trọng trong truyền

thông mạng, được định nghĩa là thời gian kể từ khi phát dữ liệu tại

nguồn cho đến khi thu được dữ liệu tại đích.

Để đảm bảo được chất lượng dịch vụ, ta phải tìm được thoả hiệp

tối ưu nhất giữa các thông số dịch vụ cho từng ứng dụng cụ thể. Với

mạng trên chip, ta có thể chia chất lượng dịch vụ thành hai loại cơ

bản: khả năng hỗ trợ tốt nhất (BE: Best-Effort) và dịch vụ được bảo

đảm (GS: Guaranteed Service).

Các mạng có dịch vụ được đảm bảo: với các mạng trên chip

thuộc loại này, người ta xây dựng các kỹ thuật cho phép đặt chỗ trước

các tài nguyên truyền thông nhằm đảm bảo thông lượng truyền thông

và/hoặc độ trễ đáp ứng ở một mức nào đó, không liên quan đến tải

mạng. Loại dịch vụ này đòi hỏi ta phải trang bị cho mạng nhiều tài

nguyên hơn.

Các mạng với khả năng hỗ trợ tốt nhất: mạng được xác định

kích thước sao cho có được một hiệu suất trung bình tốt nhất nhưng

không đảm bảo thông lượng truyền thông và độ trễ đáp ứng trong các

trường hợp không thuận lợi. Các tài nguyên mạng có cùng mức ưu

tiên và chia sẻ dung lượng truyền thông của mạng.

Nói một cách khác, dịch vụ BE đề cập tới sự truyền thông không

cam kết trong khi dịch vụ GS thì có. Hầu hết các mạng NoC cung cấp

dịch vụ GS đều sử dụng hợp kênh phân chia theo thời gian (TDM:

Time Division Multiplexing) để thực hiện định tuyến gói tin có định

hướng kết nối nên đảm bảo được băng thông cho kết nối. Ví dụ, mạng

trên chip MANGO sử dụng chuỗi các kênh ảo để thực hiện kết nối

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 47

đầu-cuối ảo [30]. Các giới hạn của TDM như băng thông và đảm bảo

độ trễ có thể được giải quyết bằng việc lập thời biểu xấp xỉ. Trong khi

đó, Bjerregaard và Sparso đưa ra một hệ thống đảm bảo độ trễ và có

sự độc lập về băng thông [14].

2.8. Giao thức truyền thông

Trong một hệ thống truyền thông, giao thức truyền thông xác

định nguyên tắc truyền dữ liệu. Đó là một loạt các quy định và

phương pháp cần thiết để truyền một thông tin từ nơi phát đến nơi

nhận. Để đơn giản việc thực hiện giao thức truyền thông, người ta chia

giao thức thành các tầng khác nhau với các chức năng xác định.

Vì khái niệm mạng trên chip bắt nguồn từ mạng máy tính nên ta

có thể sử dụng các giao thức truyền thông hay dùng trong các mạng

máy tính. Tuy nhiên, các giao thức truyền thông trong mạng máy tính

khá phức tạp vì được sử dụng cho các tô-pô không xác định. Do đó,

trong khái niệm mạng trên chip ta phải đơn giản hóa các giao thức này

nhằm đạt được thoả hiệp tốt nhất giữa hiệu năng và giá thành thực thi.

Một số giao thức truyền thông cho mạng trên chip đã được đề xuất

trong các công trình [6, 31, 22, 32] khá tương đồng với mô hình tham

chiếu kết nối các hệ thống mở OSI (Open Systems Interconnection

Reference Model) như được trình bày trong Hình 2-7.

Hình 2-7: Mô hình tham chiếu kết nối các hệ thống mở OSI.

48 Mạng trên chip

Theo các đề xuất này, bốn tầng thấp nhất được thực thi trên NoC.

Những tầng cao hơn thường được dùng cho các ứng dụng và được

thực thi trên các lõi xử lý (IP, CPU) kết nối với NoC. Phần còn lại của

mục này sẽ trình bày sơ lược về chức năng của bốn tầng thấp nhất.

Tầng vật lý (physical level): tương ứng với mức thấp nhất

trong mô hình OSI. Tầng này mô tả các điều kiện phần cứng phục vụ

cho việc truyền dữ liệu: các đặc tính về điện áp và thời gian của các

tín hiệu, số lượng và chiều dài của dây dẫn kết nối giữa các bộ định

tuyến. Tầng vật lý hỗ trợ việc truyền thông tin ở mức bit hoặc mức từ

giữa hai bộ định tuyến.

Tầng liên kết dữ liệu (data link level): thực hiện một kết nối

lô-gic giữa các bộ định tuyến hoặc giữa bộ định tuyến với giao diện

mạng (NI: Network Interface), còn được gọi là kết nối hop-to-hop. Tầng

này định nghĩa cách truyền thông tin giữa các bộ định tuyến và đảm bảo

độ tin cậy của truyền thông trên các kết nối vật lý. Do vậy, tầng này có

thể bao gồm các kỹ thuật đồng bộ, điều khiển luồng và sửa lỗi.

Tầng mạng (network level): liên quan đến việc trao đổi thông

tin ở mức gói trong mạng. Tầng này định nghĩa cách thức gửi một gói

tin trong mạng từ nơi phát đến nơi nhận. Do vậy, tầng mạng chịu trách

nhiệm về các kỹ thuật truyền thông và các thuật toán định tuyến.

Trong trường hợp truyền thông Wormhole, tầng mạng đảm bảo việc

phân chia gói tin thành các flit.

Tầng giao vận (transport level): liên quan đến việc trao đổi

thông tin giữa hai đơn vị xử lý dữ liệu. Tầng này phân chia các khối

dữ liệu từ tầng phiên (session level) thành các gói tin với kích thước

phù hợp cho mạng. Tầng này chịu trách nhiệm điều khiển luồng dữ

liệu đầu-cuối và cung cấp các kỹ thuật nhằm tránh hiện tượng quá tải

và điều tiết lưu lượng truyền thông trên mạng.

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

Trên đây là các khái niệm cơ bản về mô hình mạng trên chip. Nội

dung của chương này đã cung cấp cho người đọc các khái niệm ban

Chương 2. Mạng trên chip: cėc khėi niệm cơ bĘn 49

đầu về mô hình mạng trên chip cho đến các khái niệm cụ thể như cấu

trúc liên kết, các kỹ thuật, cơ chế truyền thông được sử dụng, chiến

lược lưu trữ dữ liệu hay các thuật toán truyền thông có thể triển khai

với mô hình mạng trên chip cũng như ưu nhược điểm của từng chiến

lược, thuật toán truyền thông. Bên cạnh đó, nội dung chương cũng đã

đề cập, bàn luận về các vấn đề chất lượng dịch vụ mạng, khả năng xảy

ra tắc nghẽn trong quá trình truyền thông cũng như một số giải pháp

cơ bản để giải quyết các tắc nghẽn có thể xảy ra này.

Trong các chương tiếp theo, chúng ta sẽ tìm hiểu cụ thể các hoạt

động nghiên cứu liên quan trực tiếp đến các thành phần của mạng trên

chip cũng như các giải pháp, đề xuất nhằm nâng cao hiệu quả hoạt

động của mạng trên chip.

Mục lục 50

Chương 3

THIẾT KẾ, MÔ HÌNH HÓA

VÀ KIỂM CHỨNG BỘ ĐỊNH TUYẾN MẠNG

Chương trước đã đưa ra một cái nhìn tổng quan về mạng trên

chip, từ khái niệm đến tình hình nghiên cứu trên thế giới trong thời

gian qua. Trong chương này, chúng tôi sẽ tập trung trình bày về thiết

kế, mô hình hóa và phương pháp kiểm chứng bộ định tuyến mạng –

thành phần căn bản dùng để xây dựng các mô hình mạng trên chip.

Các vấn đề tối ưu thiết kế cũng sẽ được trình bày trong chương này.

3.1. Bài toán thiết kế

Với định hướng phát triển các hệ thống trên chip có độ phức tạp

cao, phục vụ cho các ứng dụng đa phương tiện và truyền thông, việc

phát triển một nền tảng hệ thống trên chip là cần thiết vì những ưu

điểm vượt bậc của mô hình. Để xây dựng nền tảng mạng trên chip,

chúng tôi đã lựa chọn cấu trúc liên kết 2D-mesh với thuật toán định

tuyến xác định, thông tin định tuyến được cung cấp tại nguồn. Như đã

trình bày ở Mục 2.1, cấu trúc liên kết này có ưu điểm là dễ dàng thực

thi phần cứng theo phương pháp truyền thống. Mô hình mạng trên

chip được đề xuất như trong Hình 3-1.

Hình 3-1: Mô hình mạng trên chip đề xuất.

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 51

Với mô hình này, ngoại trừ các bộ định tuyến ở rìa ngoài, mỗi bộ

định tuyến đều được kết nối với bốn bộ định tuyến bên cạnh thông qua

các liên kết mạng và một lõi IP. Kỹ thuật truyền thông được sử dụng ở

đây là kỹ thuật chuyển mạch gói với cơ chế truyền thông Wormhole

nhằm tối ưu việc sử dụng tài nguyên mạng và tiết kiệm bộ nhớ (tiết

kiệm không gian thực thi phần cứng). Mỗi thông điệp (message) sẽ

được chia nhỏ thành các gói tin (packet) ngay tại nguồn trước khi

truyền lên mạng. Mỗi gói tin lại được chia nhỏ thành các flit với kích

thước là 34 bit (32 bit thông tin và 2 bit điều khiển). Flit đầu tiên của

gói tin gọi là flit tiêu đề, chứa thông tin điều khiển và định tuyến của

gói tin. Các flit theo sau được gọi là flit dữ liệu (data flit hay body

flit). Hình 3-2 mô tả định dạng của các flit này.

Hình 3-2: Định dạng của các flit.

Flit tiêu đề gồm hai bit đầu tiên (BoP = „1‟, EoP = „0‟), trường 18 bit

mang các thông tin về đường định tuyến (Path-to-Target) và trường

14 bit còn lại (payload) mang các thông tin điều khiển hoặc dữ liệu,

như mô tả trong Hình 3-2(a). Tại mỗi bộ định tuyến, hai bit cuối cùng

của trường thông tin định tuyến được sử dụng nhằm xác định hướng đi

tiếp theo của gói tin: hướng Bắc (“00”), hướng Đông (“01”), hướng

Nam (“10”) và hướng Tây (“11”). Để không xảy ra tình trạng tắc

nghẽn trong quá trình truyền tin, chúng ta phải đảm bảo dữ liệu không

được định tuyến theo hướng ngược lại với hướng nó tới. Ở đây, chúng

ta quy định rằng gói tin không được gửi lại hướng đến nhằm tránh tắc

nghẽn trong định tuyến; ví dụ, gói tin đến từ hướng Tây thì không

được gửi lại hướng Tây. Với đặc điểm này, để tiết kiệm số bit thông

tin của đường định tuyến ta có thể sử dụng thông tin định tuyến về

trùng với hướng tin xuất phát để gửi gói tin đến lõi IP. Có nghĩa là,

52 Mạng trên chip

nếu gói tin xuất phát từ phía Tây, muốn gửi đến lõi IP thì giá trị hai bit

định tuyến cuối cùng sẽ là “11” (đi về lõi IP).

Với độ dài 18 bit, trường thông tin định tuyến có thể xác định

đường đi của gói tin qua 9 bước hay 9 bộ định tuyến (quãng đường đi

và về dài nhất cho mô hình mạng trên chip với 9 bộ định tuyến như

mô tả trong Hình 3-1). Trong trường hợp với mạng có kích thước lớn

hơn thì ta cần mở rộng kích thước của trường thông tin định tuyến. Cơ

chế truyền thông được thực hiện theo cơ chế Wormhole. Do đó, flit

tiêu đề thiết lập đường đi, các flit còn lại của gói tin chỉ việc đi theo

đường đi đã được thiết lập. Trường điều khiển có nhiệm vụ thiết lập

các cơ chế điều khiển thông điệp hay mã hóa loại gói tin: gói tin đọc,

gói tin viết, hay gói tin yêu cầu ngắt.

Hình 3-2(b) biểu diễn một flit dữ liệu 34 bit gồm hai bit điều

khiển (BoP = 0 và EoP). Khi EoP mang giá trị „1‟ đó là flit kết thúc

gói tin (tail flit), nếu không thì flit đó đơn thuần chỉ là flit dữ liệu,

không phải là flit kết thúc gói tin. 32 bit còn lại là thông tin dữ liệu.

Trong trường hợp đặc biệt gói tin chỉ có một flit duy nhất thì khi đó

gói tin chỉ có flit tiêu đề với BoP = EoP = „1‟. Ngoài ra, mô hình đề

xuất cũng nhắm tới việc sử dụng hai kênh ảo (VC0 và VC1) nhằm hạn

chế các hiện tượng khóa chết, khóa động (xem Mục 2.6) và nâng cao

chất lượng dịch vụ (QoS) của hệ thống. Trong đó, kênh ảo VC0 có

mức ưu tiên cao hơn.

Giao thức truyền thông của mạng đề xuất được thực hiện theo mô

hình tham chiếu OSI như mô tả trong Mục 2.8. Ở tầng liên kết dữ liệu,

ngoài tín hiệu dữ liệu, ta sử dụng thêm các tín hiệu điều khiển thực

hiện giao thức bắt tay cho mỗi kênh ảo, đó là tín hiệu truyền (send) và

tín hiệu chấp nhận (accept). Giao thức bắt tay này được gọi là giao

thức bắt tay “send-accept”. Nhờ giao thức này, tại mỗi thời điểm chỉ

có một kênh ảo hoạt động trên kênh vật lý (chiếm kênh vật lý).

3.2. Mô hình bộ định tuyến

Từ những yêu cầu đặt ra ở trên, mô hình bộ định tuyến được đề

xuất như mô tả trong Hình 3-3 với 5 cổng vào/ra [33]. Trong đó,

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 53

4 cổng vào/ra kết nối với 4 bộ định tuyến bên cạnh và một cổng vào/ra

kết nối với lõi IP. Mỗi kênh vật lý của bộ định tuyến được phân chia

thành hai kênh ảo, mỗi kênh ảo có một bộ đệm độc lập. Do sử dụng cơ

chế định tuyến Wormhole nên kích thước của bộ đệm ở các kênh ảo

này rất nhỏ, chỉ đủ chứa một flit.

Hình 3-3: Kiến trúc của bộ định tuyến.

Truyền thông giữa các bộ định tuyến hay giữa bộ định tuyến và

lõi IP được thiết lập thông qua giao thức bắt tay “send-accept” như

mô tả trên Hình 3-4. Theo đó, tín hiệu truyền (send) luôn được gửi đi

đồng thời với tín hiệu dữ liệu để xác định thông tin về kênh ảo. Còn

tín hiệu chấp nhận (accept) được gửi từ bộ định tuyến nhận ngược về

bộ định tuyến phía trước nó (bộ định tuyến truyền dữ liệu) để thông

báo trạng thái rỗi/bận của bộ đệm kênh ảo lối vào. Nếu bộ đệm lối vào

của bộ định tuyến nhận đang bận thì nó sẽ không cho phép dữ liệu từ

bộ định tuyến phía trước truyền tới, còn nếu rỗi thì dữ liệu được

truyền tới và ghi vào bộ đệm lối vào của bộ định tuyến nhận. Giao

thức bắt tay “send-accept” cũng đảm bảo tại mỗi thời điểm chỉ có một

kênh ảo chiếm kênh vật lý. Với hai kênh ảo được thiết lập trong thiết

kế đề xuất, giao diện kết nối sẽ bao gồm hai tín hiệu truyền („send0‟

và „send1‟), hai tín hiệu chấp nhận („accept0‟ và „accept1‟) dành cho

hai kênh ảo và 34 bit dữ liệu cho mỗi hướng truyền thông.

54 Mạng trên chip

Hình 3-4: Giao thức bắt tay “send-accept”.

Quá trình phân xử định tuyến của bộ định tuyến được quy ước

như sau: gói tin đến trước sẽ được xử lý trước, gói tin đến sau sẽ được

xử lý sau; trong trường hợp các gói tin đến cùng một lúc và cùng có

yêu cầu được định tuyến đến cùng một lối ra thì kênh ảo VC0 luôn có

mức ưu tiên cao hơn kênh ảo VC1 và nếu các gói tin có cùng mức ưu

tiên thì bộ định tuyến sẽ thực hiện việc định tuyến theo hướng đến của

gói tin với thứ tự ưu tiên là Bắc, Đông, Nam, Tây.

Thông qua thực nghiệm đánh giá hiệu năng của mạng trên chip

sử dụng kỹ thuật chuyển mạch kênh [34], chúng ta dễ dàng nhận ra

rằng tốc độ chuyển mạch của các crossbar là một yếu tố rất quan

trọng, quyết định hiệu năng của bộ định tuyến. Chính vì thế, trong mô

hình này chúng tôi sử dụng hai bộ crossbar (liên kết giữa các khối

vào/ra của bộ định tuyến) nhằm tăng hiệu năng định tuyến của bộ định

tuyến. Việc sử dụng hai crossbar có thể làm tăng giá thành thực thi

phần cứng bộ định tuyến nhưng không đáng kể (chủ yếu là các bộ

phân-nhập kênh thông thường).

Như vậy, bộ định tuyến đề xuất sẽ có 5 cổng vào/ra, mỗi cổng

vào/ra được trang bị hai kênh ảo riêng biệt là VC0 và VC1. Các kênh

ảo của các cổng vào/ra được kết mối với nhau thông qua hai crossbar,

X0 và X1. Trong đó, X0 dùng để kết nối các kênh ảo VC0, X1 dùng

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 55

để kết nối các kênh ảo VC1. Trong các mục tiếp theo, chúng ta sẽ tìm

hiểu sâu hơn về thiết kế chi tiết các mô-đun vào/ra của bộ định tuyến.

3.3. Thiết kế chi tiết kiến trúc bộ định tuyến

Theo như mô tả ở mục trước, các mô-đun vào/ra của bộ định

tuyến cần trang bị khả năng thiết lập hai luồng dữ liệu riêng biệt (thực

thi hai kênh ảo). Bên cạnh đó, để thực hiện quá trình truyền nhận thông

tin, trong các mô-đun này cũng cần được trang bị các mạch lô-gic điều

khiển nhằm thực thi việc định tuyến, thiết lập giao thức bắt tay “send-

accept”, điều khiển luồng dữ liệu.

Hình 3-5 minh họa kết nối của một cặp mô-đun vào/ra của bộ

định tuyến. Theo đó, mỗi mô-đun lối vào sẽ bao gồm hai thành phần

chính là khối phân luồng dữ liệu (datapath) và khối điều khiển. Trong

đó, khối phân luồng dữ liệu có nhiệm vụ phân luồng dữ liệu cho các

kênh ảo và đường định tuyến. Khối điều khiển có nhiệm vụ tạo ra các

tín hiệu điều khiển đường định tuyến, điều khiển luồng dữ liệu sử

dụng kỹ thuật credit và xây dựng giao thức bắt tay nhằm đồng bộ quá

trình truyền dữ liệu. Cấu trúc ở mô-đun lối ra cũng bao gồm khối phân

luồng dữ liệu và khối điều khiển định tuyến và quản lý credit.

Hình 3-5: Một cặp mô-đun vào/ra của bộ định tuyến.

Mô tả chi tiết của các khối chức năng trong các mô-đun vào ra sẽ

được trình bày trong các mục tiếp theo.

56 Mạng trên chip

3.3.1. Khối phân luồng dữ liệu của mô-đun lối vào

Từ yêu cầu thiết kế, mô hình khối phân luồng dữ liệu của mô-đun

lối vào được đề xuất như trong Hình 3-6.

Hình 3-6: Khối phân luồng dữ liệu của mô-đun lối vào.

Khối phân luồng dữ liệu có nhiệm vụ phân luồng các đơn vị dữ

liệu lối vào đến các bộ đệm kênh ảo tương ứng tuỳ thuộc vào tín hiệu

điều khiển phân luồng kênh ảo vc_allocation. Sau đó, dữ liệu tại các bộ

đệm này sẽ được gửi tới các crossbar tương ứng khi hội tụ đủ các điều

kiện về định tuyến. Trong khi gửi tới crossbar, phụ thuộc vào giá trị của

tín hiệu dịch flit tiêu đề HFS (Header Flit Shift), nếu đơn vị dữ liệu là

một flit tiêu đề thì nó sẽ được phân luồng đi qua một bộ dịch bit (dịch 2

bit) nhằm xoá hai bit định tuyến sử dụng cho bộ định tuyến hiện tại, còn

nếu là flit dữ liệu thông thường thì sẽ được gửi thẳng tới crossbar. Việc

dịch bit trường định tuyến này cho phép bộ định tuyến tiếp theo có thể

sử dụng hai bit định tuyến mới trong trường định tuyến.

3.3.2. Khối điều khiển của mô-đun lối vào

Khối điều khiển có nhiệm vụ tạo ra các tín hiệu điều khiển khối

phân luồng dữ liệu như tín hiệu điều khiển phân luồng kênh ảo, tín

hiệu điều khiển đường định tuyến. Ngoài ra, khối này còn có nhiệm vụ

quản lý credit luồng dữ liệu và thực thi giao thức bắt tay (đóng vai trò

quan trọng trong việc đồng bộ dữ liệu và điều khiển luồng dữ liệu đầu

cuối). Trong kỹ thuật định tuyến nguồn, dữ liệu định tuyến cần được

loại bỏ sau khi đã sử dụng và dữ liệu mới sẽ thay thế vị trí dữ liệu định

tuyến hiện tại. Chính vì vậy, khối điều khiển cũng được trang bị chức

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 57

năng nhận biết flit tiêu đề và tạo ra tín hiệu điều khiển dịch bit trường

dữ liệu định tuyến của flit tiêu đề. Theo đó, hai bit có trọng số thấp

nhất của trường định tuyến sẽ bị loại bỏ. Khối điều khiển của mô-đun

lối vào được mô tả như trong Hình 3-7.

Hình 3-7: Khối điều khiển của mô-đun lối vào.

Trong đó, tín hiệu điều khiển phân luồng kênh ảo là VC và tín hiệu

điều khiển dịch bit trường định tuyến của flit tiêu đề là HFS. Các tín

hiệu lối vào gồm: các tín hiệu bắt tay send-accept, tín hiệu báo bắt đầu

và kết thúc một gói tin (BoP, EoP), thông tin hướng định tuyến dir.

3.4. Khối phân luồng dữ liệu của mô-đun lối ra

Khối phân luồng dữ liệu ở mô-đun lối ra tương đối đơn giản, có

nhiệm vụ hợp các luồng dữ liệu từ các kênh ảo và đưa ra lối ra. Hình 3-8

mô tả kiến trúc khối phân luồng dữ liệu này. Việc điều khiển các

luồng dữ liệu phụ thuộc vào tín hiệu điều khiển VC.

Hình 3-8: Khối phân luồng dữ liệu của mô-đun lối ra.

58 Mạng trên chip

3.4.1. Khối điều khiển của mô-đun lối ra

Tương tự như khối điều khiển của mô-đun lối vào, khối điều

khiển của mô-đun lối ra cũng có nhiệm vụ tạo ra các tín hiệu điều

khiển khối phân luồng dữ liệu như tín hiệu điều khiển kênh ảo, tín

hiệu điều khiển đường định tuyến. Ngoài ra, khối này cũng có nhiệm

vụ phối hợp với khối điều khiển của mô-đun lối vào để quản lý credit

luồng dữ liệu và thực thi giao thức bắt tay. Vì rằng, tại lối ra ta không

quan tâm đến loại flit dữ liệu nên khối điều khiển của mô-đun lối ra

đơn giản hơn so với khối điều khiển của mô-đun lối vào, được mô tả

như trong Hình 3-9.

Hình 3-9: Khối điều khiển của mô-đun lối ra.

3.4.2. Crossbar

Như đã trình bày trong Mục 3.2, trong thiết kế này chúng ta sử

dụng hai crossbars, X0 và X1, cho hai kênh ảo VC0 và VC1 nhằm

tăng hiệu năng định tuyến của bộ định tuyến. Hình 3-10 mô tả sơ đồ

thực thi một crossbar sử dụng trong thiết kế này. Về bản chất, crossbar

ở đây được thực hiện tương đối đơn giản thông qua các bộ phân kênh

1:4 và hợp kênh 4:1 để truyền tải dữ liệu từ lối vào đến lối ra. Các bộ

phân/hợp kênh được điều khiển thông qua các tín hiệu tổ hợp từ các

khối lô-gic định tuyến (ở mô-đun lối vào và mô-đun lối ra).

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 59

Hình 3-10: Crossbar sử dụng trong thiết kế.

Tiếp đến, thiết kế của bộ định tuyến được mô hình hóa sử dụng

các ngôn ngữ mô tả phần cứng (ở đây, chúng tôi sử dụng ngôn ngữ

mô tả phần cứng VHDL). Để chứng minh hoạt động của thiết kế đáp

ứng đặc tả thiết kế, các bước mô phỏng và kiểm chứng sẽ được triển

khai một cách cẩn thận, tỉ mỉ. Phần còn lại của chương này sẽ trình

bày phương pháp mô hình hóa, mô phỏng và kiểm chứng thiết kế này.

3.5. Mô hình hóa, kiểm chứng và thực thi thiết kế

Tiếp theo phần thiết kế ở trên, phương pháp mô hình hóa, kiểm

chứng cũng như một số kết quả mô phỏng kiểm chứng sẽ được trình

bày trong mục này. Mô hình thiết kế sau khi đã được kiểm chứng

thành công, được thực thi trên công nghệ FPGA thông qua bộ công cụ

hỗ trợ thiết kế phần cứng ISE Foundation Suite và Vivado của hãng

Xilinx. Một số kết quả thực thi phần cứng cũng sẽ được trình bày

trong chương này.

3.5.1. Phương pháp mô hình hóa, kiểm chứng

Việc mô hình hóa, kiểm chứng và thực thi phần cứng thiết kế

được thực hiện theo quy trình mạch VLSI dựa trên công nghệ FPGA,

như mô tả trong Hình 3-11. Theo đó, quy trình này bao gồm 5 bước cơ

bản: (i) xây dựng đặc tả và phân tích thiết kế; (ii) mô hình hóa thiết kế

và xây dựng mô hình kiểm tra; (iii) tổng hợp lô-gic; (iv) thực thi định

tuyến và đặt chỗ (P&R); và cuối cùng là (v) nạp thiết kế lên chip

FPGA.

60 Mạng trên chip

Với công nghệ FPGA, hai công đoạn đầu đòi hỏi người thiết kế

đầu tư nhiều thời gian và chất xám. Trong khi đó, các công đoạn sau

gần như được thực hiện hoàn toàn tự động bởi các công cụ thiết kế.

Người thiết kế chỉ cần xây dựng các ràng buộc về mặt vật lý cho thiết

kế nhằm thu được kết quả mong muốn, đáp ứng được các đặc tả thiết

kế đề ra. Các công đoạn này đòi hỏi kinh nghiệm của người thiết kế.

Hình 3-11: Quy trình mô hình hóa, kiểm chứng và thực thi phần cứng.

Trong quá trình thực hiện thiết kế, chúng tôi cũng áp dụng phương

pháp thiết kế TOP-DOWN nhằm đơn giản hóa thiết kế và từ đó giảm thời

gian thiết kế. Ngoài hai công đoạn xây dựng đặc tả và nạp thiết kế lên

chip FPGA, các công đoạn còn lại đều được thực hiện mô phỏng nhằm

kiểm chứng chức năng hoạt động của thiết kế sau khi thực thi.

Để thực hiện việc kiểm chứng nhanh mô hình bộ định tuyến (ở các

mức RTL, netlist và layout), chúng tôi xây dựng một mô hình mạng 2×2

đơn giản có kết nối với hai lõi IP, như mô tả trong Hình 3-12. Trong mô

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 61

hình này, các bộ định tuyến R00, R01, R10 và R11 là các bộ định tuyến

thiết kế, còn các lõi xử lý “IP core 0” và “IP core 1” là các lõi xử lý đơn

giản được xây dựng với mục đích tạo ra các gói dữ liệu để truyền trên

mạng và tiêu thụ các gói dữ liệu nếu nhận được. Quá trình mô phỏng

nhằm kiểm tra chức năng của các bộ định tuyến được thực hiện thông

qua việc truyền nhận dữ liệu giữa các lõi IP với các đường định tuyến

khác nhau: “IP core 0” truyền dữ liệu cho “IP core 1” và ngược lại, hoặc

ngay chính từng IP tự truyền và nhận dữ liệu của chính mình.

Hình 3-12: Mô hình kiểm chứng bộ định tuyến.

Mô hình này cho phép ta thực hiện kiểm chứng hầu hết các vấn

đề liên quan đến quy luật định tuyến đề ra của bộ định tuyến. Tuy vậy,

mô hình này chưa cho phép ta kiểm tra quy luật xử lý định tuyến ưu

tiên khi xảy ra hiện tượng nhiều gói tin cùng xuất hiện và cùng có nhu

cầu định tuyến tới cùng một lối ra của bộ định tuyến. Việc kiểm chứng

các quy luật xử lý định tuyến ưu tiên này được thực hiện bằng mô

hình kiểm chứng đối với chỉ một bộ định tuyến (thông qua việc cấp

các gói dữ liệu đồng thời cho các lối vào của bộ định tuyến).

Mục tiếp theo sẽ trình bày một số kết quả mô phỏng kiểm chứng

nhằm minh chứng sự hoạt động theo đúng chức năng đề ra của bộ

định tuyến.

3.5.2. Kết quả mô phỏng và kiểm chứng

Việc chứng minh chức năng hoạt động của bộ định tuyến thiết kế

so với đặc tả đề ra được thực hiện nhờ mô hình mô phỏng và kiểm

chứng nêu ở Mục 3.4.1. Quá trình này được thực hiện ở các mức mô

hình hóa khác nhau (RTL, netlist, layout). Phần này sẽ trình bày một

62 Mạng trên chip

vài kết quả mô phỏng nhằm minh họa phương pháp và chứng tỏ sự

hoạt động của thiết kế.

Hình 3-3 trình bày kết quả mô phỏng tại các lối vào/ra của mô-đun

lối vào bộ định tuyến với:

Một gói tin đơn flit (gói tin chỉ bao gồm một flit) được truyền từ

lối vào dữ liệu với kênh ảo VC1 tới lối ra phía Tây (hoặc tới lõi IP nếu

mô-đun lối vào này là mô-đun lối vào phía Tây), xem Mục 3.2.

Một gói tin đa flit (gói tin bao gồm nhiều flit, trong đó có flit

tiêu đề và flit kết thúc) được truyền từ lối vào dữ liệu với kênh ảo VC0

tới lối ra phía Tây (hoặc tới lõi IP nếu mô-đun lối vào này là mô-đun

lối vào phía Tây), tương tự như gói tin thứ nhất.

Thực tế quá trình mô phỏng đã thực hiện truyền nhiều gói tin

với các hướng định tuyến khác nhau với các kênh ảo khác nhau nhằm

kiểm tra tất cả các khả năng định tuyến.

Hình 3-13: Kết quả mô phỏng với mô-đun lối vào của bộ định tuyến.

Kết quả mô phỏng cho thấy dữ liệu tại lối ra „q13‟ ta thu được gói

tin thứ nhất kèm với tín hiệu „send13‟ = „1‟ (chỉ thị kênh ảo VC1) và

tại lối ra „q03‟ ta thu được gói tin thứ hai kèm với tín hiệu „send03‟ = „1‟

(chỉ thị kênh ảo VC0). Một điểm đáng lưu ý là đối với các flit tiêu đề,

trường thông tin định tuyến được dịch phải hai bit để sẵn sàng cho quá

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 63

trình định tuyến ở bộ định tuyến tiếp theo. Do đó, hai bit có giá trị

“00” được chèn vào bên trái trường thông tin định tuyến.

Tương tự như vậy, việc kiểm chứng hoạt động của mô-đun lối ra

của bộ định tuyến cũng được tiến hành một cách độc lập trước khi

thực hiện mô phỏng toàn bộ bộ định tuyến. Hình 3-14 cho ta thấy kết

quả mô phỏng tại các lối vào/ra của mô-đun lối ra bộ định tuyến với:

Một gói tin đơn flit được truyền từ kênh ảo VC0 của mô-đun lối

vào 0 (lối vào „q00‟) tới lối ra dữ liệu „data‟.

Một gói tin đơn flit được truyền từ kênh ảo VC0 của mô-đun lối

vào 1 (lối vào „q01‟) tới lối ra dữ liệu „data‟.

Thực tế quá trình mô phỏng đã thực hiện truyền nhiều gói tin

với các mô-đun lối vào khác nhau với các kênh ảo khác nhau nhằm

kiểm tra tất cả các khả năng định tuyến.

Hình 3-14: Kết quả mô phỏng với mô-đun lối ra của bộ định tuyến.

Kết quả mô phỏng cho thấy, các gói tin lối vào được truyền tới lối ra

„data‟ theo đúng thứ tự ưu tiên trong quy luật phân xử định tuyến. Ở đây,

cả hai gói tin cùng đến một lúc từ kênh ảo VC0 của hai mô-đun vào

64 Mạng trên chip

khác nhau. Theo thứ tự, gói tin đến từ mô-đun 0 (lối vào „q00‟) được xử

lý trước và gói tin đến từ mô-đun 1 (lối vào „q01‟) được xử lý sau.

Từng mô-đun lối vào, lối ra của bộ định tuyến sau khi được kiểm

chứng độc lập sẽ được ghép lại thành bộ định tuyến hoàn chỉnh. Việc

tiến hành mô phỏng kiểm chứng toàn bộ bộ định tuyến cho phép kiểm

tra các hoạt động của bộ định tuyến một cách đầy đủ so với các đặc tả

đề ra. Hình 3-15 trình bày kết quả mô phỏng tại lối vào/lối ra của bộ

định tuyến với:

Một gói tin đơn flit đến từ hướng Bắc (lối vào „in0_data‟), kênh

ảo VC1 có đường định tuyến dự kiến tới hướng Đông (hai bit cuối

trường thông tin định tuyến có giá trị là “01”).

Một gói tin đơn flit đến từ hướng Đông (lối vào „in1_data‟),

kênh ảo VC0 có đường định tuyến dự kiến tới hướng Tây (hai bit cuối

trường thông tin định tuyến có giá trị là “11”).

Một gói tin đơn flit đến từ hướng Đông (lối vào „in1_data‟),

kênh ảo VC1 có đường định tuyến dự kiến tới hướng Tây (hai bit cuối

trường thông tin định tuyến có giá trị là “11”).

Thực tế quá trình mô phỏng đã thực hiện truyền nhiều gói tin với

các hướng vào khác nhau có đường định tuyến tới các hướng ra khác

nhau nhằm kiểm tra tất cả các khả năng định tuyến của bộ định tuyến.

Hình 3-15: Kết quả mô phỏng của bộ định tuyến thiết kế.

Chương 3. Thiết kế, mô hình hòa vĖ kiểm chứng bộ đðnh tuyến mạng 65

Kết quả cho thấy, gói tin thứ nhất đã được truyền đến lối ra

hướng Đông (lối ra „out1_data‟), kênh ảo VC1. Các gói tin thứ hai và

thứ ba lần lượt được truyền ra lối ra hướng Tây với kênh ảo VC0 (đối

với gói tin thứ hai) và kênh ảo VC1 (đối với gói tin thứ ba).

3.5.3. Kết quả thực thi phần cứng bộ định tuyến

Sau khi thực hiện mô phỏng, kiểm chứng ở mức RTL, thiết kế của

bộ định tuyến được tổng hợp lô-gic, thực thi đặt chỗ và định tuyến (P&R)

thông qua các công cụ hỗ trợ thiết kế của hãng Xilinx (ISE Foundation

Suite). Bảng 3-1 trình bày một số thông tin về kết quả thực thi phần cứng.

Theo đó, tài nguyên sử dụng để thực hiện bộ định tuyến bao gồm: 2143

thanh ghi, 1492 LUT 4 lối vào, 1969 slice và 383 bộ đệm cổng vào/ra.

Bảng 3-1: Không gian thực thi phần cứng bộ định tuyến thiết kế

trên chip XC2V1000-5ff896

Tài nguyên sử dụng Đã sử dụng Sẵn có trên chip Tỷ lệ (%)

Thanh ghi 2.143 10.240 20%

LUT 4 lối vào 1.492 10.240 14%

Slice 1.969 5.120 38%

Bộ đệm cổng vào/ra 383 432 88%

Hình 3-16 cho thấy layout của bộ định tuyến trên chip FPGA

XC2V1000-5ff896 (Xilinx).

Hình 3-16: Layout của bộ định tuyến với công nghệ FPGA của hãng Xilinx

(thực thi trên chip XC2V1000-5ff896).

66 Mạng trên chip

Sau khi tiến hành mô phỏng, kiểm chứng và đánh giá thiết kế ở

mức layout, chúng ta thu được một số thông tin về năng lượng tiêu thụ

tĩnh và năng lượng tiêu thụ động của bộ định tuyến như trình bày

trong Bảng 3-2. Trong đó, đáng chú ý là năng lượng tiêu thụ động của

thiết kế khi thực hiện các quá trình truyền thông. Thiết kế làm việc với

tần số tối đa là .

Bảng 3-2: Năng lượng tiêu thụ của thiết kế

Thành phần Năng lượng tiêu thụ (µW)

Xung đồng hồ 0,0200

Các cổng lô-gic 0,0150

Các đường tín hiệu 0,0910

Các bộ đệm cổng vào/ra 0,2900

Tổng năng lượng tĩnh 0,0378

Tổng năng lượng động 0,4529

Tổng năng lượng tiêu thụ 0,4907

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

Trong chương này chúng ta đã tìm hiểu về thiết kế chi tiết một bộ

định tuyến mạng trên chip – là thành phần cơ bản cấu thành kiến trúc

mạng trên chip. Các vấn đề về phương pháp mô hình hóa, kiểm chứng

hoạt động, thực thi thiết kế cũng được đề cập cụ thể, giúp người đọc

hình dung được một quy trình thiết kế đầy đủ. Một số kết quả thực

nghiệm, đánh giá trên cơ sở công nghệ FPGA cũng được đề cập và

phân tích làm cơ sở tham chiếu cho các nghiên cứu tiếp theo trong

lĩnh vực này.

Mục lục 67

Chương 4

THIẾT KẾ, MÔ HÌNH HÓA

VÀ KIỂM CHỨNG BỘ GIAO TIẾP MẠNG

Trong các hệ thống NoC, các tài nguyên tính toán (lõi IP) giao tiếp

với nhau thông qua hạ tầng mạng. Nhiều nhóm nghiên cứu quan tâm

đến việc phát triển các kiến trúc NoC và cơ chế định tuyến, trong khi đó

giao diện ghép nối giữa mạng và các lõi IP cũng cần được quan tâm

nghiên cứu. Trong chương này, chúng ta sẽ đề cập đến việc thiết kế và

thực thi một bộ phối ghép mạng tương thích với chuẩn AXI (AMBA

eXtensible Interface), được đặt tên là bộ phối ghép AXI-NoC.

4.1. Giới thiệu

Với sự tăng nhanh về độ phức tạp của các hệ thống điện tử, các

yêu cầu về thiết kế như là thời gian đưa sản phẩm ra thị trường (time-to-

market), độ tin cậy, khả năng kiểm tra, khả năng tái sử dụng… cùng với

các ràng buộc về thiết kế ngày càng khó khăn liên quan đến hiệu suất,

công suất tiêu thụ và sự biến thiên (variation)1 đã làm nảy sinh các

phương pháp thiết kế mới. Như đã đề cập, mô hình mạng trên chip gần

đây trở thành một giải pháp hứa hẹn có thể thỏa mãn các nhu cầu thiết

kế hiệu năng cao cho các hệ thống trên chip trong tương lai [5].

Ngày nay, các hệ thống có thể tích hợp đến hàng trăm lõi IP trên

một chip đơn với tốc độ hoạt động và truyền thông ở tần số GHz. Việc

kết nối giữa các lõi IP trở thành một thách thức cấp bách đối với thiết

kế các hệ thống trên chip. Do đó, việc triển khai mô hình truyền thông

1 Process variation là sự thay đổi xảy ra trong quá trình sản xuất, đặc biệt là các công

nghệ từ 90nm trở về sau, có những ảnh hưởng tới hoạt động của các transistor.

68 Mạng trên chip

dựa vào mạng là cần thiết nhằm đáp ứng các yêu cầu về truyền thông

và đảm bảo chất lượng dịch vụ.

Trong các kiến trúc mạng trên chip, các thành phần cơ bản bao

gồm các bộ định tuyến, các liên kết mạng và các bộ giao tiếp mạng. Lõi

IP được nối với mạng thông qua các giao tiếp mạng (các bộ phối ghép

mạng). Không giống như bus, mạng truyền thông trong các NoC thực

thi truyền thông chuyển mạch gói giữa các lõi IP dựa vào bộ định tuyến.

Tại mỗi nút mạng, trước khi được truyền trên mạng, các bản tin được

chia nhỏ thành nhiều gói tin liên tiếp. Mỗi gói tin bao gồm một số các

đơn vị điều khiển/dữ liệu (gọi là flit). Mỗi gói tin được bắt đầu bởi một

flit tiêu đề (lưu trữ thông tin định tuyến) và theo sau bởi các gói tin điều

khiển/dữ liệu khác. Các kiến trúc mạng kiểu này cho phép tái sử dụng

các lõi IP và hạ tầng truyền thông một cách dễ dàng. Các lõi IP khác

nhau có thể không được phát triển để có thể tương thích với các mô

hình mạng trên chip; do đó, cần có một bộ phối ghép mạng để cung cấp

một giao diện giữa các lõi IP và các bộ định tuyến mà chúng sẽ kết nối.

Việc phát triển các bộ phối ghép mạng cho phép các lõi IP và hạ tầng

mạng được phát triển một cách độc lập, giúp phân tách giữa hoạt động

tính toán và hoạt động truyền thông. Tuy nhiên, thách thức của việc

triển khai bộ phối ghép mạng là sự gia tăng độ phức tạp, không gian

thực thi, độ trễ và giảm tần số hoạt động tối đa của hệ thống [35].

Các nhà nghiên cứu đã đề xuất nhiều kiến trúc NoC trong thập kỷ

vừa qua, kể cả cấu trúc tô-pô hai chiều và ba chiều. Hầu hết các

nghiên cứu này tập trung vào kiến trúc mạng và thuật toán định tuyến.

Tuy nhiên, các giao diện giữa mạng và các lõi xử lý cũng cần được

quan tâm nghiên cứu một cách nghiêm túc để cải thiện hiệu năng tổng

thể của hệ thống. Bjerregaard và đồng nghiệp [30] đề xuất một bộ

phối ghép mạng như là giao diện giữa giao thức bus OCP và kiến trúc

mạng MANGO không đồng bộ. Bộ phối ghép mạng không chỉ đóng

vai trò như là một giao diện giữa hạ tầng mạng với các lõi IP mà còn

là giao diện đặc biệt giữa các miền đồng bộ và không đồng bộ. Trong

một công trình nghiên cứu khác, Attia và đồng nghiệp [36] đề xuất

một bộ phối ghép mạng tương thích với chuẩn OCP dành cho các

mạng trên chip hai chiều dạng lưới. Thiết kế này khá hiệu quả về mặt

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 69

chi phí không gian thực thi. Stergious và đồng nghiệp [37] cũng đề

xuất một bộ phối ghép mạng tương thích chuẩn OCP dành cho mạng

trên chip Xpipes. Tuy nhiên, những bộ phối ghép mạng này chỉ giúp

cho việc tích hợp các lõi IP tương thích với chuẩn giao thức lõi mở

(OCP: Open Core Protocol) với các kiến trúc mạng NoC. Trong khi

đó, gần đây rất nhiều sản phẩm thương mại sử dụng các lõi xử lý

ARM để đạt được các yêu cầu của ứng dụng về mặt hiệu năng. Việc

tích hợp các vi xử lý ARM vào các kiến trúc NoC là thực sự cần thiết

và chúng ta cần xây dựng giải pháp cho phép ghép nối các vi xử lý

ARM với các kiến trúc mạng NoC. Hiển nhiên, với các hệ thống

không đồng nhất về chuẩn thì việc xây dựng các bộ phối ghép mạng

đa giao thức là cần thiết nhằm đáp ứng các yêu cầu của các lõi IP khác

nhau. Bộ phối ghép mạng được đề xuất bởi Radulescu và đồng nghiệp

[38] cho mạng trên chip AEthereal là một ví dụ. Bộ phối ghép mạng

này có thể hỗ trợ bốn giao diện socket chuẩn (OCP, DTL, AXI based,

chủ hoặc tớ). Tuy nhiên, độ trễ chuyển tiếp của bộ phối ghép mạng

này tương đối cao. Công ty Arteris đã phát triển một giải pháp mạng

trên chip nhắm tới các vấn đề hiệu năng, công suất tiêu thụ, định thời

và tắc nghẽn trong các hệ thống trên chip phức hợp, gọi là FlexNoC.

Công nghệ mạng trên chip Arteris này có thể hỗ trợ một loạt giao thức

như AMBA AXI, AHB, APB, ACE-Lite, OCP, PIF và BVCI [39, 40].

Giao diện mạng ARM CoreLink là một giải pháp tương tự nhưng tập

trung vào các giao thức ARM. Giao diện này cung cấp cấu trúc liên

kết có khả năng cấu hình cao với các đặc tính như cho phép các nhà

thiết kế xây dựng kết nối SoC tương thích chuẩn giao thức AMBA tối

ưu và có hiệu năng cao [41]. Với các giải pháp này, người dùng phải

cấu hình đơn vị giao diện mạng tại giai đoạn xây dựng đặc tả để phù

hợp với các giao thức cần thiết của họ. Điều này có thể dẫn đến việc

tăng thêm chi phí vì các trường hợp xấu nhất cần phải được quan tâm

để hỗ trợ các biến động về yêu cầu truyền thông. El Mrabti và đồng

nghiệp [42] đưa ra các phương pháp và công cụ để triển khai ứng

dụng dễ dàng và hiệu quả trên nền tảng dựa trên IP và NoC với bộ

phối ghép mạng có thể cấu hình. Bộ phối ghép mạng có thể cấu hình

này cung cấp các công cụ để đồng bộ hóa và lập lịch cho truyền thông

70 Mạng trên chip

và cách hành xử của các lõi IP. [43] đưa ra một khối giao diện NoC hỗ

trợ các chức năng mạng tiên tiến. Bộ phối ghép mạng này hỗ trợ các

chức năng mạng khác nhau nhằm đáp ứng các yêu cầu của các hệ

thống nhắm tới. Tuy nhiên, bộ phối ghép mạng này không hỗ trợ các

giao thức giao tiếp mạng chuẩn của các lõi IP. Ruaro và đồng nghiệp

[44] đề xuất một giao diện mạng chuyên dụng cho các hệ thống trên

chip đa vi xử lý (MPSoC) dựa trên NoC, được gọi là DMNI (Direct

Memory Network Interface). Giao diện này được kết nối tới mô-đun

truy cập bộ nhớ ngẫu nhiên (DMA: Direct Memory Access) để cho

phép truyền thông giữa các vi xử lý thông qua hạ tầng mạng trên chip.

Thật không may, các bộ phối ghép mạng đề cập ở trên quá phức tạp để

có thể tham số hóa và lập trình.

Với các lý do nêu trên, chúng tôi thiết kế và thực thi một bộ phối

ghép mạng tương thích với chuẩn AXI (AXI-compliant) cho các mạng

trên chip 2D/3D có cơ chế chuyển mạnh Wormhole. Chuẩn giao tiếp

AXI (Advanced eXtensible Interface) là một trong những chuẩn giao

tiếp truyền thông hiệu quả nhất hiện nay được đề xuất bởi hãng ARM.

Đó là một bus tối ưu đọc/ghi (không còn là chia sẻ bus nữa) hỗ trợ

giao tiếp đa kênh với mức tiêu thụ điện năng thấp hơn. Bộ phối ghép

mạng AXI-NoC của chúng tôi hoạt động như là một cầu nối hai chiều

trong quá trình trao đổi dữ liệu giữa vi xử lý ARM và cấu trúc chuyển

mạch NoC. Bộ phối ghép mạng AXI-NoC được thực thi để hỗ trợ cả

hai giao dịch burst1 đọc và ghi theo chuẩn AXI với các cấu hình như

chiều dài burst, kích thước burst và loại burst. Bộ phối ghép mạng này

cũng hỗ trợ các thuật toán định tuyến tại nguồn và chuyển mạch gói

với chế độ truyền thông Wormhole. Đóng góp chủ yếu trong nghiên

cứu này của chúng tôi là một kiến trúc hiệu quả dành cho bộ phối ghép

mạng với không gian thực thi nhỏ và hiệu năng cao. Tính mô-đun hóa

của thiết kế cũng được quan tâm trong nghiên cứu này nhằm cho phép

bảo trì một cách đơn giản và/hoặc cho phép phát triển thêm để có thể

1 Giao dịch burst là một loại giao dịch truyền thông được hỗ trợ trong giao thức

truyền thông AHB/AXI. Một burst là toàn bộ các lần truyền dữ liệu trong một

giao dịch.

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 71

hỗ trợ các giao thức ghép nối khác. Ngoài ra, để tối đa thông lượng

truyền thông và giảm độ trễ của bộ phối ghép mạng, chúng tôi đề xuất

một phương pháp mux-selection. Đây là một phương pháp kết hợp

giữa việc sử dụng kỹ thuật máy trạng thái hữu hạn (FSM: Finite State

Machine) và thực thi thêm các bộ hợp kênh MUX để điều khiển các

tín hiệu bắt tay ở cả hai phía của giao diện ghép nối. Điều này sẽ tạo

nên một mô hình lai (kết hợp phương pháp dựa trên FSM và phương

pháp mux-selection). Trong quá trình truyền dữ liệu, bộ phối ghép

mạng trở nên trong suốt đối với hệ thống và nhờ đó giảm thiểu độ trễ.

Bộ phối ghép mạng đề xuất được thiết kế và thực thi với công nghệ

CMOS 45nm và được kiểm chứng với một nền tảng NoC kích thước

cùng với vi xử lý ARM [45].

Trong chương này, trước hết chúng ta sẽ đề cập đến các kiến trúc

NoC được sử dụng trong quá trình nghiên cứu. Tiếp theo đó, chương

này sẽ trình bày kiến trúc của bộ phối ghép mạng cũng như giải pháp

mux-selection đề xuất. Sau đó là các kết quả thiết kế, thực thi và kiểm

chứng. Một số so sánh và trao đổi cũng sẽ được đề cập trong chương

nhằm làm rõ hơn các đóng góp của công trình nghiên cứu của chúng

tôi về các bộ giao tiếp mạng.

4.2. Kiến trúc NoC sử dụng

4.2.1. Tô-pô mạng

Như đề cập ở Chương 2, Mục 2.1, có nhiều loại tô-pô có thể được

sử dụng trong các kiến trúc mạng trên chip như là fat-tree, butterfly,

ring, mesh, torus hoặc folded torus. Trong số các cấu trúc liên kết này

thì 2-D mesh và 2-D torus/folded torus được sử dụng nhiều nhất nhờ

vào các ưu điểm của chúng khi thực thi phần cứng [46]. Trong nghiên

cứu về bộ giao tiếp mạng này, chúng tôi sử dụng cấu trúc liên kết

dạng lưới hai chiều (2-D mesh). Tuy nhiên, các cấu trúc liên kết mạng

khác như 2-D torus/folded torus hoàn toàn có thể được sử dụng.

Hình 4-1 mô tả một kiến trúc mạng trên chip dạng lưới hai chiều kích

thước 3×3 được sử dụng trong nghiên cứu này.

72 Mạng trên chip

Hình 4-1: Kiến trúc mạng trên chip dạng lưới hai chiều kích thước 3×3.

Kiến trúc mạng bao gồm các bộ định tuyến, các liên kết mạng và

giao diện kết nối giữa mạng và các lõi xử lý (gọi là bộ phối ghép

mạng). Mỗi bộ định tuyến có 5 cổng hai hướng, kết nối với 4 bộ định

tuyến bên cạnh và một lõi IP gần nhất.

5.2.2. Thuật toán định tuyến và định dạng dữ liệu

Kỹ thuật truyền thông sử dụng trong kiến trúc mạng trên chip

được nêu ở đây là chuyển mạch gói với thuật toán định tuyến xác định

tại nguồn DOR (dimesion ordered routing). Cụ thể, các thuật toán XY,

West-First, North-Lase và Negative-First được sử dụng trong mạng

trên chip này với mục đính tránh hiện tượng khóa chết (deadlock). Dữ

liệu (message) được chia và đóng gói thành các gói tin tại nguồn phát

và được đưa vào mạng, xem Hình 4-2.

Hình 4-2: Phân chia dữ liệu thành gói tin tại nguồn phát.

Mỗi gói tin bao gồm một flit tiêu đề (header flit), theo sau bởi

một số flit dữ liệu (body flit) và một flit đuôi (tail flit). Kích thước của

Dữ liệu

Gói tin (kích thước thay đổi)

Flit (kích thước cố định: 34 bits)

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 73

mỗi flit là 34 bit; trong đó, 32 bit được sử dụng cho dữ liệu và hai bit

có trọng số cao nhất được sử dụng với mục đích điều khiển (“BoP” và

“EoP”). BoP và EoP chứa thông tin quyết định flit hiện tại là flit tiêu

đề (BoP = „1‟, EoP = „0‟), flit thân (BoP = „0‟, EoP = „0), hay flit đuôi

(BoP = „0‟, EoP = „1‟). Ngoài ra, cấu trúc này cho phép hình thành gói

tin chỉ một flit (với BoP = EoP = „1‟). Định dạng của các flit này được

trình bày ở Hình 4-3.

Theo định dạng này, flit tiêu đề có BoP = „1‟ và flit đuôi có

EoP = „1‟. Nếu cả BoP và EoP đều có giá trị „1‟ thì gói tin chỉ có duy

nhất một flit. Nếu cả hai giá trị BoP và EoP đều bằng „0‟ thì đây là

một flit body. Nhờ vào các bit điều khiển này, bộ định tuyến mạng có

thể dễ dàng nhận ra loại flit và đưa ra quyết định định tuyến. Để định

tuyến một gói tin trên mạng, thông tin định tuyến cần được đưa vào

flit tiêu đề (tại trường thông tin định tuyến “path-to-target”). Trường

thông tin này sẽ được dịch sang phải hai bit tại mỗi bộ định tuyến sau

khi hai bit có trọng số thấp nhất được sử dụng.

Hình 4-3: Định dạng flit của mạng trên chip.

4.2.3. Vi kiến trúc của bộ định tuyến mạng

Kiến trúc bộ định tuyến bao gồm 5 cổng vào, 5 cổng ra và hai

crossbar (sử dụng cho hai kênh ảo) như mô tả ở Hình 4-4. Với kiến

trúc này, mỗi cặp cổng vào/ra đều có khối lô-gic điều khiển và

datapath riêng. Datapath được chia thành hai kênh truyền thông để

thực thi hai kênh ảo: VC0 và VC1. Trong đó, VC0 có mức độ ưu tiên

cao hơn và thường được sử dụng để truyền tải các thông tin điều khiển

BoP EoP

BoP EoP

BoP EoP

Flit tiêu đề (BoP = „1‟, EoP = „0‟)

Flit thân (BoP = „0‟, EoP= „0‟)

Flit đuôi (BoP = „0‟, EoP= „1‟)

33 32 0

33 32 0

33 32 0

path-to-targetpayload

payload

payload

31

31

31

74 Mạng trên chip

quan trọng trong mạng hoặc dùng cho các dịch vụ có yêu cầu yếu tố

thời gian thực. Bên cạnh datapath, khối điều khiển lô-gic bao gồm một

bộ cấp phát kênh ảo (VC allocator), một khối lô-gic định tuyến và một

đơn vị quản lý credit. Bộ cấp phát kênh ảo sẽ phân bổ flit đến vào

kênh ảo tương ứng của nó; trong khi đó đơn vị lô-gic định tuyến phân

tích thông tin định tuyến và sinh ra các tín hiệu điều khiển cần thiết tới

crossbar để thực thi các đường định tuyến. Tín hiệu dịch chuyển flit

tiêu đề HFS cũng được gửi tới datapath để dịch trường định tuyến

path-to-target sang phải hai bit sao cho thông tin định tuyến mới sẽ

luôn sẵn sàng cho bộ định tuyến tiếp theo. Để đồng bộ với các mô-đun

lối ra, đơn vị lô-gic định tuyến cũng sinh ra các tín hiệu bắt tay gửi tới

các mô-đun lối ra. Khối quản lý credit (Credit MU) quản lý điều khiển

luồng flit. Nó sẽ thực thi giao thức bắt tay giữa các bộ định tuyến ở

mức flit. Chi tiết hơn về kiến trúc NoC và cách thực thi kiến trúc NoC

này có thể xem tại công trình [47].

Hình 4-4: Kiến trúc chi tiết của một bộ định tuyến mạng.

4.3. Thiết kế bộ phối ghép mạng AXI-NoC

Để ghép nối các vi xử lý ARM vào các kiến trúc mạng trên chip,

chúng tôi đã thiết kế hai loại bộ phối ghép mạng để đồng bộ giữa các

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 75

giao diện AXI và kiến trúc mạng trên chip, gọi là Bộ phối ghép mạng

chủ (MNA: Master Network Adapter) và Bộ phối ghép mạng tớ

(SNA: Slave Network Adapter) [45], như mô tả trong Hình 4-5. MNA

được sử dụng để tạo nên kết nối giữa một lõi IP chủ có giao diện

tương thích AXI và bộ định tuyến mạng trong khi lõi IP tớ kết nối với

bộ định tuyến mạng thông qua SNA. Mỗi bộ phối ghép mạng bao gồm

hai mô-đun: đơn vị luồng dữ liệu yêu cầu (Request Flow) và đơn vị

luồng dữ liệu phản hồi (Response Flow).

Hình 4-5: Bộ phối ghép mạng chủ và bộ phối ghép mạng tớ.

Với giao thức AXI, thao tác quan trọng nhất là giao dịch burst

(burst transaction). Ưu điểm của giao dịch burst là cho phép sử dụng

băng thông hiệu quả. Chúng tôi thiết kế một bộ phối ghép mạng hỗ trợ

ba loại giao dịch burst: burst cố định (fixed), burst tăng dần

(incremental) và wrapped burst. Với giao dịch burst cố định, địa chỉ của

các lần truyền tải dữ liệu là giống nhau. Loại giao dịch burst này rất hữu

ích đối với trường hợp truy cập các bộ nhớ được xây dựng trên cơ sở

các FIFO. Khác với giao dịch burst cố định, địa chỉ truy cập dữ liệu ở

giao dịch burst tăng dần sẽ tăng sau mỗi giao dịch, dựa vào địa chỉ giao

dịch trước đó. Giao dịch burst tăng dần phù hợp với việc ghi/đọc vào/từ

mảng lớn các bộ nhớ. Thao tác truy xuất bộ nhớ ở giao dịch wrapped

burst cũng tương tự cách thức ở giao dịch burst tăng dần. Chỉ khác là

khi địa chỉ truy xuất bộ nhớ tiệm cận một giá trị giới hạn thì địa chỉ đó

sẽ được đặt lại ở địa chỉ thấp hơn. Bộ phối ghép mạng đề xuất cũng hỗ

trợ các giao dịch với độ dài burst thay đổi từ 1 đến 16 và kích thước

thay đổi từ 1 đến 4 bytes. Về phía NoC, bộ phối ghép mạng AXI-NoC

76 Mạng trên chip

của chúng tôi hỗ trợ các thuật toán định tuyến tại nguồn với cơ chế

truyền thông Wormhole. Theo đó, đường định tuyến từ nút nguồn tới

nút đích được định nghĩa và cố định ngay từ đầu.

4.3.1. Định dạng gói tin

Có hai loại gói tin: gói tin yêu cầu (request packet) và gói tin

phản hồi (response packet). Gói tin yêu cầu được gửi từ nguồn tới đích

đến. Đích đến sẽ trả lời gói tin yêu cầu bằng cách phát ra một gói tin

phản hồi. Các phần sau đây sẽ mô tả định dạng của các gói tin được sử

dụng trong thiết kế của chúng tôi.

a) Định dạng của gói tin yêu cầu

Thông thường, các gói tin yêu cầu là các gói tin được gửi từ một

lõi IP chủ tới một lõi IP tớ. Chúng thường bao gồm các gói tin yêu cầu

ghi (writing request packet) và các gói tin yêu cầu đọc (reading

request packet). Định dạng các gói tin ghi và đọc được mô tả trong

trình Hình 4-6.

Hình 4-6: Định dạng gói tin yêu cầu: gói tin yêu cầu ghi (a);

và gói tin yêu cầu đọc (b).

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 77

Flit tiêu đề của gói tin yêu cầu bao gồm độ dài burst (LEN), kích

thước burst (Size), loại burst (BURST), thông tin node nguồn và

trường định tuyến (path-to-target). Thông tin node nguồn trong flit

tiêu đề chứa địa chỉ của bộ định tuyến hiện tại mà lõi IP chủ được nối

vào. Thông tin này được lõi IP tớ sử dụng để tính toán đường trở về

(return path) cho gói tin phản hồi. Khi lõi IP chủ đưa ra một yêu cầu đọc

hoặc ghi tới lõi IP tớ, bộ phối ghép mạng sẽ tính toán “path-to-target”

dựa vào địa chỉ đích đến và sau đó nạp thông tin này vào flit tiêu đề

của gói tin yêu cầu. Gói tin dữ liệu đầu tiên được sử dụng để chuyển

tải địa chỉ đích đến của gói tin yêu cầu. Hệ thống sử dụng địa chỉ 32

bit. Địa chỉ này sau đó được chia thành địa chỉ global và địa chỉ cục

bộ. Bốn bit có trọng số lớn nhất trong địa chỉ được sử dụng cho địa chỉ

global (dùng để xác định bộ định tuyến mà IP được kết nối). Các bit

còn lại là địa chỉ cục bộ của lõi IP đó.

Đối với gói tin yêu cầu đọc, dữ liệu không cần thiết; do đó, nó chỉ

cần hai flit. Khi đó, flit đuôi chứa địa chỉ đích đến của gói tin.

b) Định dạng của gói tin phản hồi

Định dạng của gói tin phản hồi đọc và gói tin phản hồi ghi được

mô tả trong Hình 4-7.

Hình 4-7: Định dạng gói tin phản hồi:

gói tin phản hồi đọc (a); gói tin phản hồi ghi.

78 Mạng trên chip

Khi một lõi IP tớ nhận một yêu cầu đọc, bộ phối ghép mạng sử

dụng trường thông tin nút nguồn trong gói tin yêu cầu đọc để xác định

trường định tuyến “path-to-target” và đưa trường thông tin này vào flit

tiêu đề của gói tin phản hồi đọc. Trong khi đó, gói tin phản hồi ghi chỉ

có một flit duy nhất (BoP = „1‟ và EoP = „1‟), không yêu cầu dữ liệu.

4.3.2. Bộ phối ghép mạng Master

Một mặt bộ phối ghép mạng chủ (MNA: Master Network

Adapter) đóng gói các yêu cầu từ lõi IP chủ thành các gói tin mạng để

có thể gửi vào mạng. Mặt khác, MNA cũng có chức năng giải mã các

phản hồi từ bộ định tuyến và truyền tải chúng tới lõi IP chủ. MNA chủ

yếu bao gồm hai luồng dữ liệu sau: luồng yêu cầu MNA và luồng

phản hồi MNA, tương ứng với quá trình đóng gói dữ liệu và quá trình

giải mã dữ liệu (xem Hình 4-8).

Hình 4-8: Kiến trúc MNA [45].

a) Luồng yêu cầu MNA

Luồng yêu cầu (Request Flow) MNA bao gồm hai mô-đun chính:

MNA Flit Builder và MNA Transmitter, như mô tả trong Hình 4-9.

Các tín hiệu bên trái là giao diện kết nối với lõi IP chủ còn các tín hiệu

bên phải là giao diện kết nối với bộ định tuyến mạng.

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 79

Hình 4-9: Kiến trúc luồng yêu cầu MNA [45].

Mô-đun MNA Flit Builder có nhiệm vụ hình thành các flit cho

các gói dữ liệu yêu cầu từ các giao dịch burst (burst transaction) của

AIX chủ. Các giá trị BoP và EoP được thêm vào các flit này một cách

tự động. Mô-đun này thực thi một bảng tra (look-up table) để tính toán

thông tin cho trường định tuyến “path-to-target”. Các lối vào của bảng

tra là bốn bit có trọng số cao nhất của bus địa chỉ. Các lối ra của mô-đun

Flit Builder là header 34 bit (flit tiêu đề của gói tin yêu cầu),

„sub_header‟ và „wdata_i‟. Với một giao dịch burst ghi, „sub_header‟

là flit dữ liệu đầu tiên và „wdata_i‟ chứa các flit còn lại của gói tin yêu

cầu ghi. Với một giao dịch burst đọc, „sub_header‟ là flit đuôi.

Mô-đun MNA Transmitter (Hình 4-10(a)) quản lý chuỗi các flit

được tạo ra bởi mô-đun MNA Flit Builder để gửi vào mạng (flit tiêu

đề flit dữ liệu flit đuôi) và để điều khiển các tín hiệu bắt tay với

kênh địa chỉ AXI chủ và kênh dữ liệu ghi. Hoạt động của MNA

Transmitter dựa vào máy trạng thái (FSM: Finite State Machine) được

mô tả trong Hình 4-10(b). Tùy thuộc vào trạng thái hiện tại, lối ra dữ

liệu của mạng „pdata_to_noc‟ (gói tin được gửi tới NoC) sẽ là

„header‟, „sub_header‟, hoặc „wdata_i‟ có nguồn gốc từ mô-đun

MNA Flit Builder. Mô-đun MNA Transmitter sẽ lựa chọn các flit phù

hợp để gửi tới mạng. Do đó, số lượng các trạng thái được giảm và

máy trạng thái FSM sẽ đơn giản hơn nhiều.

80 Mạng trên chip

Hình 4-10: Mô-đun MNA Transmitter:

Vi kiến trúc tối ưu (a); Máy trạng thái hữu hạn FSM (b) [45].

Để tăng hiệu năng của bộ phối ghép mạng (thông lượng và độ trễ),

chúng tôi đề xuất một phương pháp mux-selection nhằm tối ưu thiết kế.

Phương pháp mux-selection là một phương pháp kết hợp giữa kỹ thuật

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 81

máy trạng thái hữu hạn FSM và việc thực thi các bộ hợp kênh bổ trợ để

điều khiển các tín hiệu bắt tay ở cả hai phía của các giao diện mạng. Chi

tiết về phương pháp mux-selection được trình bày tại Mục 4.4. Trong

Hình 4-10, hai bộ hợp kênh được thêm nhằm điều khiển các tín hiệu lối

ra của bộ phối ghép mạng; đó là, tín hiệu yêu cầu („pvalid_to_noc‟) để

gửi dữ liệu tới giao tiếp nơi nhận/nơi đến và tín hiệu trả lời („wready‟)

để chấp nhận dữ liệu từ giao tiếp nguồn (AXI). Nhờ vào cách bố trí này,

các tín hiệu „wready‟ và „pvalid_to_noc‟ được điều khiển bởi máy trạng

thái hữu hạn FSM hoặc chúng sẽ đưa ra giá trị tín hiệu „wvalid‟ một

cách trực tiếp dựa vào giá trị của tín hiệu „hs_sel‟ (lựa chọn bắt tay).

Hình 4-10(b) trình bày sơ đồ trạng thái của máy trạng thái hữu hạn của

mô-đun MNA Transmitter. Hoạt động của máy trạng thái hữu hạn này

được mô tả trong Bảng 4-1.

Bảng 4-1: Mô tả trạng thái của máy trạng thái hữu hạn của MNA Transmitter

Trạng thái Mô tả

IDLE Trạng thái Idle. Nếu có một yêu cầu trên kênh địa chỉ chủ

AXI, tín hiệu „avalid‟ trở nên tích cực. Máy trạng thái hữu

hạn FSM sẽ chuyển sang trạng thái tiếp theo – Send

Header. Nếu không, nó sẽ chờ một yêu cầu AXI.

Send

Header

Gửi một flit tiêu đề. Nếu yêu cầu từ giao diện AXI là một

yêu cầu đọc và mạng chấp nhận flit tiêu đề thì máy trạng

thái sẽ chuyển sang trạng thái Send Sub Header 2. Nếu

yêu cầu từ giao diện AXI là một yêu cầu ghi và mạng

chấp nhận flit tiêu đề thì máy trạng thái sẽ chuyển sang

trạng thái Send Sub Header 1. Nếu mạng không ghi nhận

flit tiêu đề, máy trạng thái sẽ chờ một phản hồi từ mạng.

Send Sub

Header 1

Gửi flit dữ liệu đầu tiên. Nếu flit dữ liệu đầu tiên được

gửi, máy trạng thái sẽ chuyển sang trạng thái Send

DATA. Nếu flit dữ liệu đầu tiên chưa được gửi, máy trạng

thái chờ phản hồi từ mạng.

Send Sub

Header 2

Gửi flit đuôi tới mạng. Nếu flit đuôi của gói tin yêu cầu

đọc được gửi, máy trạng thái chuyển sang trạng thái

IDLE và chờ một “yêu cầu AXI” mới. Nếu flit đuôi của

gói tin yêu cầu đọc chưa được gửi, máy trạng thái chờ một

phản hồi từ mạng.

82 Mạng trên chip

Send DATA Gửi các flit dữ liệu. Nếu flit đuôi của một gói tin yêu cầu

ghi được gửi, máy trạng thái chuyển sang trạng thái IDLE

và chờ một “yêu cầu AXI” mới từ giao diện chủ AXI. Nếu

một dữ liệu ghi mới hợp lệ tại giao diện AXI trong khi

mạng không sẵn sàng nhận flit mới, máy trạng thái chuyển

sang trạng thái Wait for NI ready. Nếu dữ liệu ghi hợp lệ

tại giao diện AXI và đó là dữ liệu ghi cuối cùng nhưng

mạng không sẵn sàng chấp nhận flit mới, máy trạng thái

chuyển sang trạng thái Wait for tail flit finished. Nếu flit

được gửi, gửi flit tiếp theo tới NoC.

Wait for NI

ready

Chờ phản hồi từ mạng. Nếu mạng đã thừa nhận và sẵn

sàng chuyển dữ liệu ghi mới vào mạng, máy trạng thái

chuyển sang trạng thái Send DATA. Nếu không, máy

trạng thái chờ một đáp ứng từ mạng.

Wait for tail

flit finished

Chờ phản hồi từ mạng. Nếu flit đuôi được gửi, máy trạng

thái chuyển sang trạng thái IDLE và chờ một yêu cầu

AXI mới. Nếu flit đuôi chưa được gửi, máy trạng thái hữu

hạn sẽ chờ đáp ứng từ mạng.

Do các tín hiệu bắt tay được điều khiển bởi máy trạng thái hữu

hạn FSM, phương pháp này có ưu điểm của phương pháp bắt tay dựa

vào FSM truyền thống. Việc chuyển đổi trạng thái được quản lý bởi

FSM nhằm đảm bảo hoạt động đúng. Phương pháp mux-selection

cung cấp cách điều khiển trực tiếp các tín hiệu lối ra của bộ phối

ghép mạng. Cấu trúc này cho phép dữ liệu tại giao diện AXI xuất

hiện tại giao diện NoC ngay lập tức, dẫn đến độ trễ bằng không khi

truyền dữ liệu.

Khi mô-đun MNA Transmitter sẵn sàng chấp nhận dữ liệu từ giao

diện AXI và NoC sẵn sàng nhận một gói tin mới, dữ liệu được gửi tới

mạng truyền thông tại cùng chu kỳ xung đồng hồ mà dữ liệu trên giao

diện AXI sẵn sàng. Nếu mạng NoC chưa sẵn sàng, dữ liệu tại giao

diện AXI được lưu tại bộ đệm cho đến khi có phản hồi từ mạng (có

nghĩa là tín hiệu „resp_syn‟ có giá trị bằng „1‟).

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 83

b) Luồng phản hồi MNA

Kiến trúc của mô-đun luồng phản hồi MNA (MNA Response

Flow) đơn giản hơn nhiều so với kiến trúc của mô-đun MNA Request

Flow. Dữ liệu được chuyển từ mạng tới lõi IP chủ AXI thông qua

mô-đun MNA Response. Do đó, các gói tin từ mạng phải được giải mã

(decapsulated) tại giao diện AXI.

Mô-đun MNA Response Flow quản lý dữ liệu được chuyển tới

kênh thích hợp. Khi một gói tin hợp lệ tại bộ định tuyến

(„pvalid_fr_noc‟ nhận giá trị lô-gic cao), mô-đun MNA Response

Flow đọc flit tiêu đề để xác định liệu gói tin là gói tin phản hồi đọc

(reading response packet) hay là gói tin phản hồi ghi (writing response

packet). Trong trường hợp là gói tin phản hồi ghi (gói tin chỉ có một

flit), mô-đun MNA Response Flow trích xuất thông tin của gói tin tiêu

đề và gửi nó tới kênh phản hồi ghi AXI của lõi IP chủ. Nếu nó là một

gói tin phản hồi đọc (flit tiêu đề flit dữ liệu (1) … flit dữ liệu

(n-1) flit đuôi (flit dữ liệu thứ n), thì dữ liệu sẽ được chuyển tới

kênh dữ liệu đọc AXI. Tín hiệu „rlast‟ có giá trị lô-gic cao khi nhận

được flit đuôi của gói tin phản hồi đọc.

Tín hiệu „rlast‟ có giá trị lô-gic cao khi nhận được flit đuôi của

gói tin phản hồi đọc. Điều này có nghĩa là vận chuyển dữ liệu cuối

cùng. Tương tự như MNA Request Flow, phương pháp mux-selection

đề xuất cũng được áp dụng cho MNA Response Flow nhằm cải thiện

hiệu năng. Sơ đồ khối tối ưu của MNA Response Flow và máy trạng

thái hữu hạn của nó được trình bày trong Hình 4-11. Bảng 4-2 giải

thích hoạt động của máy trạng thái hữu hạn của MNA Response Flow.

84 Mạng trên chip

Hình 4-11: Mô-đun MNA Response Flow:

Vi kiến trúc tối ưu (a); Máy trạng thái hữu hạn (b) [45].

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 85

Bảng 4-2: Mô tả trạng thái của máy trạng thái hữu hạn của MNA Response Flow

Trạng thái Mô tả

IDLE Trạng thái Idle, chờ một gói tin từ NoC. Nếu phát

hiện có một gói tin phản hồi ghi xuất hiện, máy

trạng thái hữu hạn sẽ chuyển sang trạng thái Write

Response. Nếu phát hiện có một gói tin phản hồi

đọc, máy trạng thái hữu hạn sẽ chuyển sang trạng

thái Read Response.

Write Response Giải mã gói tin thành thời gian trên kênh phản hồi

ghi AXI. Nếu kênh phản hồi ghi AXI chấp nhận dữ

liệu, máy trạng thái hữu hạn sẽ chuyển sang trạng

thái IDLE và chờ một gói tin mới. Nếu thông tin

phản hồi ghi chưa được gửi, máy trạng thái tiếp tục

chờ một phản hồi từ lõi IP chủ.

Read Response Sẵn sàng để gửi dữ liệu tới kênh dữ liệu đọc AXI.

Nếu dữ liệu cuối cùng được gửi, máy trạng thái hữu

hạn sẽ chuyển sang trạng thái IDLE và chờ một gói

tin mới. Nếu dữ liệu được gửi, máy trạng thái sẽ

giải mã flit đến tiếp theo và gửi nó tới lõi IP chủ.

Nếu flit trên mạng là flit cuối cùng trong khi lõi IP

chủ không sẵn sàng chấp nhận dữ liệu mới thì máy

trạng thái hữu hạn sẽ chuyển sang trạng thái Wait

for tail flit finished. Nếu flit hợp lệ ở NoC trong

khi lõi IP chủ không sẵn sàng chấp nhận dữ liệu

mới thì máy trạng thái sẽ chuyển sang trạng thái

Wait for NI ready.

Wait for NI ready Chờ một phản hồi từ NI. Nếu dữ liệu được gửi tới

giao diện chủ, máy trạng thái sẽ giải mã flit đến tiếp

theo và gửi nó tới lõi IP chủ.

Wait for tail flit

finished

Chờ một phản hồi từ lõi IP chủ. Nếu dữ liệu đọc cuối

cùng được gửi, máy trạng thái hữu hạn sẽ chuyển sang

trạng thái IDLE và chờ một gói tin mới.

86 Mạng trên chip

4.4. Phương pháp mux-selection

Để thực hiện cơ chế bắt tay giữa các giao diện khác nhau, giao

diện AXI và giao diện NoC, một trong những phương pháp truyền

thống là sử dụng máy trạng thái hữu hạn FSM. Trong phần này, trước

hết chúng ta sẽ đề cập đến ưu điểm và nhược điểm của phương pháp

bắt tay dựa vào máy trạng thái hữu hạn. Tiếp đó, phương pháp bắt tay

mới gọi là mux-selection sẽ được giới thiệu.

4.4.1. Ưu và nhược điểm của phương pháp bắt tay truyền thống

dựa vào FSM

Phương pháp bắt tay dựa trên FSM đảm bảo việc đồng bộ thời gian

giữa các giao diện hoạt động đúng. Việc thực thi phương pháp này khá

dễ dàng và do đó phương pháp này được sử dụng rộng rãi. Trong thiết

kế của chúng tôi, việc định thời của cơ chế bắt tay được minh họa trong

Hình 4-12. Theo giản đồ thời gian này, chúng ta có thể thấy bộ phối

ghép mạng đòi hỏi hai chu kỳ đồng hồ cho mỗi giao dịch dữ liệu.

Hình 4-12: Giản đồ thời gian tại MNA Transmitter khi sử dụng phương pháp

bắt tay truyền thống dựa vào FSM [45].

Thực tế, tại thời điểm T0, giao diện nguồn (AXI) xác nhận tín

hiệu „wvalid‟ chỉ ra rằng dữ liệu hợp lệ. Tại thời điểm T1 (sườn lên

của tín hiệu xung đồng hồ), hệ thống nhận ra tính hợp lệ của dữ liệu

tại giao diện nguồn và phản hồi yêu cầu bằng cách xác nhận tín hiệu

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 87

„wready‟ để chấp nhận dữ liệu. Trong khi đó, hệ thống cũng nâng tín

hiệu „pvalid_to_noc‟ lên cao để yêu cầu gửi dữ liệu đến đích (mạng

NoC). Trong trường hợp tốt nhất khi đích đến (NoC) sẵn sàng chấp

nhận một giao dịch dữ liệu mới, giao dịch này sẽ được hoàn thành ở

sườn lên của xung đồng hồ T2. Phương pháp này tương đối hiệu quả

trong việc thực hiện giao diện giữa kiến trúc AXI và NoC. Tuy nhiên,

cần có hai chu kỳ xung nhịp đồng hồ cho mỗi dữ liệu được truyền từ

giao diện AXI sang NoC. Rõ ràng là nếu giao diện nguồn có thể

truyền dữ liệu theo từng nhịp tín hiệu xung nhịp đồng hồ thì bộ phối

ghép mạng dựa trên phương pháp bắt tay FSM sẽ trở thành nút thắt cổ

chai vì rằng mạng cũng chỉ cần một chu kỳ xung nhịp để truyền một

đơn vị dữ liệu. Vấn đề của phương pháp bắt tay dựa trên FSM truyền

thống có thể được giải quyết bằng cách áp dụng phương pháp mới, gọi

tên là phương pháp mux-selection. Trong mục tiếp theo, chúng ta sẽ

tìm hiểu về phương pháp mux-selection đề xuất, được áp dụng cho bộ

phối ghép mạng AXI-NoC.

4.4.2. Phương pháp mux-selection và thực thi trong MNA

Phương pháp mux-selection là một phương pháp kết hợp giữa kỹ

thuật FSM và thực thi thêm các bộ hợp kênh MUX để điều khiển các

tín hiệu bắt tay ở cả hai phía giao diện ghép nối. Như mô tả trong

Hình 4-10, hai bộ hợp kênh MUX được thêm vào để điều khiển các tín

hiệu lối ra của bộ phối ghép mạng; đó là tín hiệu yêu cầu

(„pvalid_to_noc‟) để gửi dữ liệu tới giao diện đích đến và tín hiệu

phản hồi („wready‟) để chấp nhận dữ liệu từ giao diện nguồn (AXI).

Nhờ sự sắp xếp này, các tín hiệu „wready‟ và „pvalid_to_noc‟ được

điều khiển bởi FSM hoặc chúng xuất ra giá trị „wvalid‟ dựa vào giá trị

của tín hiệu „hs_sel‟ (lựa chọn bắt tay).

Với phương pháp mux-selection đề xuất, quá trình chuyển đổi

trạng thái được FSM quản lý dễ dàng nhằm đảm bảo hoạt động đúng

trong khi nó cũng cung cấp cách điều khiển trực tiếp các tín hiệu lối ra

của bộ phối ghép mạng nhằm cho phép dữ liệu tại giao diện AXI xuất

hiện tại giao diện NoC ngay lập tức, dẫn đến độ trễ truyền dữ liệu

bằng 0 (không có trễ). Giản đồ thời gian của cơ chế bắt tay này được

88 Mạng trên chip

minh họa trong Hình 4-13. Việc truyền dữ liệu xảy ra ở sườn lên của

tín hiệu xung đồng hồ dẫn đến độ trễ truyền dữ liệu bằng không và tối

đa hóa thông lượng truyền thông.

Hình 4-13: Giản đồ thời gian tại MNA Transmitter khi sử dụng

phương pháp mux-selection đề xuất [45].

Liên quan đến MNA Response Flow, việc triển khai phương pháp

mux-selection để chọn giá trị được xuất ra trên „rvalid‟ và

„pready_to_noc‟ (Hình 4-11) làm cho độ trễ của MNA Response Flow

bằng không. Tín hiệu „hs_sel‟ (lựa chọn bắt tay) là tín hiệu điều khiển

cho các bộ hợp kênh MUX. Cơ chế bắt tay này được giải thích trong

Hình 4-14.

Hình 4-14: Giản đồ thời gian tại MNA Response Flow khi sử dụng phương

pháp mux-selection đề xuất [45].

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 89

4.5. Thực thi và kiểm chứng phần cứng

Để kiểm chứng kiến trúc bộ phối ghép mạng AXI-NoC đề xuất,

chúng tôi đã phát triển một môi trường kiểm tra với NoC có cấu trúc

hai chiều dạng lưới như mô tả trong Hình 4-15. Môi trường kiểm tra

này bao gồm 9 bộ định tuyến mạng, 8 lõi IP, một mô hình vi xử lý

ARM được kết nối với một bộ định tuyến mạng sử dụng bộ phối ghép

mạng chủ (Master Network Adapter). Môi trường kiểm tra NoC sử

dụng kỹ thuật truyền thông chuyển mạch gói với thuật toán định tuyến

tại nguồn Wormhole.

Hình 4-15: Môi trường kiểm chứng với 9 bộ định tuyến mạng.

Các mô hình IP giả (IP0 đến IP7) là các IP đơn giản có thể tạo ra

các gói tin gửi vào NoC và phản hồi các gói tin đến từ NoC. Các IP

giả lập này hoạt động như là các mô hình bộ nhớ đơn giản. Khi nhận

được một gói tin yêu cầu ghi, các mô-đun giả sẽ lưu trữ dữ liệu vào bộ

nhớ trong của nó. Khi nhận được yêu cầu đọc, nó trích xuất thông tin

của gói tin yêu cầu để tính toán đường dẫn trả về cho gói tin phản hồi;

sau đó, IP giả gửi dữ liệu được lưu trữ đến nút mạng nơi gói tin yêu

cầu được phát ra.

Mô hình vi xử lý ARM được cấu hình để tạo ra cả giao dịch burst

đọc và ghi với các thông số khác nhau về loại, độ dài và kích thước

của burst. Vấn đề định thời ở cả hai phía của bộ phối ghép mạng chủ

được quan sát. Dữ liệu phản hồi tới mô hình ARM được so sánh với

các kết quả mong muốn.

90 Mạng trên chip

Mỗi trường hợp kiểm tra diễn ra trong một số bước. Trước hết,

dữ liệu ngẫu nhiên được tạo ra. Thứ hai, mô hình vi xử lý ARM đưa ra

yêu cầu burst ghi tới một IP giả lập với dữ liệu được tạo ra từ bước 1.

Sau đó, một burst đọc được đưa ra cho cùng một vị trí trong bước 2.

Cuối cùng, dữ liệu đọc được so sánh với dữ liệu được ghi trước đó.

Nói tóm lại, chúng ta ghi tới và đọc về cùng một vị trí. Dữ liệu ghi và

dữ liệu đọc phải giống nhau. Hình 4-16 trình bày bố cục (layout) của

thiết kế MNA.

Hình 4-16: Hình ảnh layout cuối cùng của thiết kế [45].

Thiết kế bộ phối ghép AXI-NoC được mô hình hóa ở mức

chuyển dịch thanh ghi RTL sử dụng ngôn ngữ VHDL và sau đó được

thực thi với công nghệ CMOS 45nm. Thiết kế yêu cầu chi phí không

gian thực thi khá thấp so với các bộ định tuyến NoC (thấp hơn 10%

không gian thực thi của một bộ định tuyến mạng trong trường hợp của

chúng tôi). Hình 4-17 trình bày mối liên hệ giữa công suất tiêu thụ

(mW), không gian thực thi ( ) với tần số hoạt động của thiết kế.

Thiết kế này có thể hoạt động ở tần số cao nhất là . Tại tần

số này, thiết kế cần tới 952 cổng lô-gic và không gian thực thi tổng

cộng là . Thông lượng truyền thông của thiết kế có thể đạt

và bộ phối ghép mạng tiêu thụ khoảng .

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 91

Hình 4-17: Công suất tiêu thụ và chi phí thực thi phần cứng ước lượng

tại các tần số hoạt động khác nhau [45].

Bảng 4-3 trình bày một so sánh ngắn gọn giữa kết quả nghiên cứu

của chúng tôi với một số công trình nghiên cứu liên quan [38, 48, 39,

40, 49, 50]. Theo đó, thiết kế của chúng tôi có hiệu năng cao nhất về

mặt tần số hoạt động, độ trễ xử lý và thông lượng truyền thông nhờ

vào các cơ chế hoạt động lai (hybrid-operation schemes) bằng cách sử

dụng phương pháp mux-selection đề xuất. Thiết kế của chúng tôi có

thể hoạt động với tần số trong khi các thiết kế khác hoạt

động ở dải tần số từ đến . Không gian thực thi đối

với thiết kế của chúng tôi bé hơn từ 7 đến 8 lần khi so sánh với các

công trình nghiên cứu khác như [44, 50]. Công suất tiêu thụ cũng thấp

hơn các thiết kế khác, chỉ ở tần số hoạt động . Các

kết quả đáng chú ý trong nghiên cứu của chúng tôi là độ trễ xử lý và

thông lượng truyền thông. Chúng tôi loại bỏ được các bước xử lý

không cần thiết trong quá trình truyền dữ liệu. Với các kỹ thuật áp

dụng, thiết kế của chúng tôi không có độ trễ xử lý (hoặc chỉ cần một

xung nhịp đồng hồ cho việc đóng gói dữ liệu) và thông lượng truyền

thông lớn nhất khi so sánh với [38].

92

M

ạn

g t

n c

hip

92 Mạng trên chip

B

ản

g 4

-3:

So

sán

h k

ết

qu

ả t

hự

c t

hi

vớ

i m

ột

số

ng

trì

nh

liê

n q

uan

[45].

Des

ign

[3

8]

[48]

[39, 40]

[49]

[50]

[44]

Côn

g t

rìn

h

đề

xu

ất

Gia

o d

iện

bu

s

mụ

c ti

êu

OC

P/A

XI/

DT

L

OC

P

AX

I/A

HB

/OC

P/P

IF

N/A

O

CP

/AX

I/

Wis

hbone

DM

A

AX

I

Côn

g n

gh

ệ 0

,13

0

,13

N

/A

0,1

8

90

nm

6

5 n

m

45

nm

Tầ

n s

ố h

oạ

t đ

ộn

g

tối

đa (

MH

z)

500

400

N/A

457

-490

N/A

N

/A

650

Kh

ôn

g g

ian

th

ực

thi

(

)

143

.000

20

.000

-

64

.000

N/A

5

5.0

00

-

103

.000

24

.000

21

.371

2.7

93

Côn

g s

uất

tiêu

thụ

(m

W)

N/A

N

/A

N/A

1

9,5

-44,0

N

/A

N/A

4,1

4

Độ t

rễ (

vớ

i cả

đó

ng g

ói)

4-1

0 c

hu k

3-8

chu k

2-8

chu k

N/A

N

/A

2 c

hu

kỳ

1 c

hu

kỳ

Th

ôn

g l

ượ

ng

1

6 G

bit

/s

N/A

5.3

Gbit

/s

N/A

N

/A

N/A

2

0,8

Gbit

/s

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 93

Giới hạn của công trình nghiên cứu của chúng tôi [45] đó là bộ

phối ghép mạng đề xuất chỉ hỗ trợ các giao diện AXI trong khi các

công trình khác [38, 39, 40, 50] hỗ trợ nhiều giao thức bus khác nhau.

Tuy nhiên, nếu hệ thống ứng dụng cần được tối ưu về mặt hiệu năng

thì bộ phối ghép mạng chuyên biệt của chúng tôi là lựa chọn tốt nhất.

Ngoài ra, phương pháp mux-selection cũng có một nhược điểm thông

thường. Đó là, phương pháp này làm tăng độ trễ đường dẫn quan trọng

(critical path) thêm hai lần độ trễ của MUX. Tuy nhiên, độ trễ đường

dẫn quan trọng này vẫn nhỏ hơn độ trễ đường dẫn quan trọng của các

kiến trúc bộ định tuyến. Do các bộ phối ghép mạng này được đặt giữa

và khá gần giao tiếp AXI và bộ định tuyến nên nó không ảnh hưởng

tới hiệu năng chung của hệ thống.

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

Trong chương này, chúng tôi đã trình bày thiết kế và thực thi một

bộ phối ghép mạng AXI-NoC hiệu quả, được sử dụng để ghép nối các

lõi ARM với các kiến trúc mạng trên chip. Bộ phối ghép mạng hoạt

động như là một cầu nối hai hướng giữa giao diện AXI và các kiến trúc

NoC. Nó hỗ trợ các thuật toán định tuyến tại nguồn với cơ chế truyền

thông chuyển mạch gói Wormhole trong các mạng trên chip 2D/3D với

các cấu trúc liên kết khác nhau. Một trong những ưu điểm của bộ phối

ghép mạng AXI-NoC đó là kiến trúc đơn giản, đòi hỏi không gian thực

thi nhỏ (khoảng 2.793 µm2), trong khi có thể đạt được thông lượng

truyền thông cao 20,8 Gbits/s và chỉ tiêu thụ 4,14 mW tại tần số hoạt

động 650 MHz. Một ưu điểm khác của thiết kế này đó là việc sử dụng

phương pháp mux-selection để quyết định liệu các lối ra của giao diện

được điều khiển bởi máy trạng thái hữu hạn hay trực tiếp bởi các tín

hiệu bắt tay từ giao diện kia. Phương pháp này giúp giảm độ trễ về 0 và

do đó cải thiện hiệu năng tổng thể của hệ thống. Bộ phối ghép mạng

AXI-NoC có thể được sử dụng để kết nối các IP khác tương thích với

các đặc tả của chuẩn AXI với các kiến trúc mạng NoC.

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 94

Chương 5

TỐI ƯU NĂNG LƯỢNG TIÊU THỤ CHO MẠNG TRÊN CHIP

Công suất tiêu thụ luôn là vấn đề được các nhà thiết kế mạch tích

hợp quan tâm hàng đầu, đặc biệt đối với các ứng dụng di động sử

dụng nguồn nuôi bằng pin. Mạng trên chip với các ưu điểm vượt trội

cho phép chúng ta tích hợp nhiều chức năng, nhiều lõi xử lý khác

nhau trên cùng một vi mạch nhằm đáp ứng yêu cầu ngày càng cao của

các ứng dụng mới. Tuy nhiên, điều này cũng đồng nghĩa với việc gia

tăng công suất và năng lượng tiêu thụ của hệ thống. Do đó, người thiết

kế mạng trên chip cần phải nghiên cứu, đề xuất các phương pháp mới

để giảm thiểu công suất tiêu thụ của hệ thống NoC nhằm đảm bảo

rằng các hệ thống này đáp ứng được các yêu cầu cao của ứng dụng

(vừa tăng hiệu năng hoạt động nhưng lại tiêu thụ ít năng lượng nhất).

Trong chương này, chúng ta sẽ lần lượt tìm hiểu các vấn đề về công

suất tiêu thụ trên mạch tích hợp, các giải pháp hiện tại giúp chúng ta

giảm thiểu công suất, năng lượng tiêu thụ của hệ thống trên chip. Cuối

cùng, chương này cũng đề cập đến một số giải pháp thiết kế mạng trên

chip theo hướng giảm thiểu công suất tiêu thụ gần đây với các ví dụ

điển hình.

5.1. Công suất tiêu thụ trên mạch tích hợp

Với công nghệ CMOS, công suất tiêu thụ của một vi mạch thông

thường bao gồm hai thành phần chính: công suất tiêu thụ động

(dynamic power) và công suất tiêu thụ tĩnh (static power) [51, 52].

Trong đó, công suất tiêu thụ động là công suất mà vi mạch đó tiêu thụ

khi các tín hiệu trong mạch có sự thay đổi về giá trị (thay đổi mức lô-gic)

- có nghĩa là khi mạch hoạt động. Công suất tiêu thụ tĩnh là công suất

mà một vi mạch tiêu thụ khi nó được cấp nguồn nhưng các tín hiệu

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 95

trong mạch không có sự thay đổi về giá trị - mạch không hoạt động.

Với các vi mạch được chế tạo dựa trên công nghệ CMOS, nguyên

nhân gây ra công suất tiêu thụ tĩnh trên vi mạch là do các dòng điện rò

trên các transistor.

5.1.1. Công suất tiêu thụ động

Công suất tiêu thụ động của một vi mạch có thể bắt nguồn từ

nhiều nguyên nhân khác nhau. Nguyên nhân đầu tiên và cũng là

nguyên nhân chính đó là do sự phóng nạp trên tụ điện ký sinh ở đầu ra

của một cổng lô-gic CMOS gây ra khi có sự thay đổi mức lô-gic của

tín hiệu trong mạch; do đó, tạo ra công suất tiêu thụ. Công suất này

được gọi là công suất chuyển mạch. Hình 5-1 mô tả quá trình phóng

nạp trên tụ điện ký sinh ở đầu ra của cổng NOT khi hoạt động.

Hình 5-1: Quá trình phóng nạp trên tụ điện ký sinh

trong trường hợp công suất chuyển mạch.

Công thức tính năng lượng tiêu thụ cho mỗi một lần chuyển trạng

thái (chuyển mạch) trên một cổng được tính bằng công thức sau:

(5-1)

Trong đó, là điện dung của tụ ký sinh và là điện áp nguồn

cung cấp. Do đó, công suất tiêu thụ động của một cổng lô-gic có thể

được biểu diễn theo công thức sau:

(5-2)

Ở công thức (5-2) này, là tần số chuyển trạng thái, là xác

suất chuyển trạng thái ở đầu ra, là tần số hoạt động của hệ

thống. Nếu điện dung hiệu dụng được định nghĩa theo công thức:

96 Mạng trên chip

(5-3)

thì ta có công thức tính công suất tiêu thụ động như sau:

(5-4)

Từ phương trình (5-4), chúng ta có thể thấy rằng công suất

chuyển mạch của một cổng lô-gic không phụ thuộc vào kích thước của

transistor mà chỉ phụ thuộc vào hoạt động chuyển mạch và độ lớn của

điện dung ký sinh ở lối ra của cổng lô-gic đó.

Bên cạnh công suất chuyển mạch thì có một nguyên nhân khác

ảnh hưởng đến công suất tiêu thụ động trên vi mạch đó là công suất

ngắn mạch, xuất hiện khi mạch chuyển trạng thái. Công suất ngắn

mạch là công suất tiêu thụ của cổng lô-gic khi xuất hiện dòng điện

ngắn mạch trên cổng đó tại thời điểm cả hai loại transistor PMOS và

NMOS đồng thời mở (Hình 5-2).

Hình 5-2: Dòng điện ngắn mạch trên cổng NOT

trong trường hợp công suất ngắn mạch.

Nếu bổ sung thêm công suất ngắn mạch vào trong phương trình

(5-4), chúng ta có công thức tổng quát để tính công suất tiêu thụ động

cho một cổng lô-gic như sau:

( ) (5-5)

Trong đó, là thời gian xuất hiện dòng ngắn mạch và là

dòng điện chuyển mạch (bao gồm dòng điện ngắn mạch và dòng điện

nạp cho tụ điện bên trong của cổng lô-gic đó). Tuy nhiên, trong một

chu kỳ chuyển trạng thái thì thời gian xuất hiện dòng điện ngắn mạch

thường rất nhỏ, đặc biệt với các công nghệ CMOS tiên tiến. Do đó, để

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 97

đơn giản quá trình tính toán, chúng ta thường sử dụng công thức (5-4)

để tính toán công suất tiêu thụ động cho một cổng lô-gic [51].

Từ công thức này, các nhà thiết kế đã đề xuất một số kỹ thuật

giảm công suất tiêu thụ động cho một mạch tích hợp với nhiều mức

tiếp cận khác nhau. Các nhà thiết kế có thể đề xuất các kỹ thuật giảm

công suất tiêu thụ ở tầng kiến trúc, cũng có thể đề xuất các kỹ thuật

giảm công suất tiêu thụ ở mức thiết kế lô-gic, thậm chí là ở mức thiết

kế mạch điện transistor. Phần lớn các kỹ thuật này tập trung vào việc

giảm tần số hoạt động và điện áp cung cấp cho hệ thống, cũng như

giảm các hoạt động có thể làm thay đổi trạng thái của dữ liệu để giảm

thiểu công suất tiêu thụ của vi mạch đó. Do sự phụ thuộc bậc hai của

công suất tiêu thụ động vào điện áp cung cấp, nên việc giảm điện áp

nguồn là một phương thức hiệu quả để giảm công suất tiêu thụ cho vi

mạch. Tuy nhiên, nếu giảm điện áp cung cấp thì tốc độ hoạt động của

cổng lô-gic cũng giảm theo. Điều này ảnh hưởng đến hiệu năng hoạt

động tổng thể của mạch. Vì thế, cách tiếp cận này cần phải được thực

hiện một cách cẩn trọng. Thông thường, các nhà thiết kế sử dụng

phương pháp này theo các cách tiếp cận sau:

Đối với các thành phần trong hệ thống mà không cần hoạt động

ở tốc độ cao (chẳng hạn như các thiết bị ngoại vi), chúng ta có thể cấp

điện áp nguồn thấp hơn so với các khối chức năng cần hoạt động ở tốc

độ cao hơn. Hướng tiếp cận này được gọi là thiết kế đa điện áp nguồn

(multi-voltage). Theo đó, mỗi khối chức năng hoặc một nhóm khối

chức năng trong hệ thống sẽ được cung cấp một nguồn nuôi khác

nhau, tùy thuộc vào yêu cầu về tốc độ hoạt động và kịch bản giảm

công suất tiêu thụ.

Đối với các vi xử lý, chúng ta có thể cấp một điện áp nguồn với

giá trị biến thiên tùy thuộc vào tác vụ mà vi xử lý đó đang thực hiện.

Với các tác vụ yêu cầu hiệu năng xử lý cao, chúng ta sẽ cấp một điện

áp nguồn và tần số hoạt động cao cho vi xử lý. Với các tác vụ yêu cầu

hiệu năng thấp, chúng ta có thể giảm điện áp và tần số hoạt động của

vi xử lý để tiết kiệm công suất tiêu thụ. Hướng tiếp cận này được gọi

là thay đổi tỷ lệ điện áp (voltage-scaling). Thách thức của phương pháp

98 Mạng trên chip

này là xác định thời điểm thay đổi điện áp. Ngoài ra, tần suất thay đổi

điện áp quá nhanh cũng sẽ làm giảm hiệu quả của phương pháp tiếp

cận này.

Một hướng tiếp cận khác nữa để giảm công suất tiêu thụ động

đó là phương pháp chặn cấp xung nhịp đồng hồ (clock gating) đối với

các khối không hoạt động. Bằng cách đưa tần số hoạt động của các

khối này về không, thì công suất tiêu thụ của các khối đó cũng giảm

về không một cách tương ứng. Đây cũng là một hướng tiếp cận hay

được sử dụng khi thiết kế các hệ thống trên chip. Hiện nay, các công

cụ hỗ trợ thiết kế hiện đại đều trang bị khả năng triển khai phương

pháp chặn cấp xung nhịp một cách tự động. Công cụ hỗ trợ thiết kế sẽ

phân tích thiết kế và đưa ra giải pháp. Tuy nhiên, để triển khai phương

pháp này thì thư viện thiết kế phải hỗ trợ các flip-flop cho phép thực

hiện kỹ thuật chặn cấp xung nhịp.

5.1.2. Công suất tiêu thụ tĩnh

Với một mạch tích hợp, công suất tiêu thụ tĩnh là công suất mà

mạch tích hợp đó tiêu thụ khi được cấp nguồn mặc dù các tín hiệu trong

mạch không có sự thay đổi về mặt giá trị. Nguyên nhân chính gây ra

công suất tiêu thụ tĩnh là do sự xuất hiện các dòng điện rò ở các

transistor. Cùng với sự phát triển của công nghệ bán dẫn, kích thước của

transistor ngày càng được thu nhỏ lại. Tuy nhiên, điều này lại làm cho

dòng rò trên transistor tăng lên và đồng nghĩa với việc công suất tiêu thụ

tĩnh ngày càng tăng. Đối với một cổng lô-gic loại CMOS, có bốn nguyên

nhân chính gây ra dòng điện rò trên cổng lô-gic đó là [51, 52]:

Dòng rò dưới ngưỡng ( ): là dòng điện chạy từ cực máng

qua cực nguồn khi transistor đó hoạt động ở vùng nghịch đảo yếu.

Dòng rò cổng ( ): là dòng điện chạy từ cực cổng thông qua

lớp oxit để đến bề mặt. Nguyên nhân gây ra dòng điện này là do hiệu

ứng đường hầm và hiện tượng bơm hạt tải nóng (hot carrier injection).

Dòng rò máng gây ra bởi cực cổng ( ): là dòng điện chạy từ

cực máng đến bề mặt do hiệu ứng trường mạnh (high field effect) ở

cực máng của MOSFET khi ta áp một điện áp lớn.

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 99

Dòng rò tiếp giáp ( ): là dòng điện gây ra bởi sự trôi của các

hạt tải thiểu số tạo nên các cặp điện tử-lỗ trống trong vùng tiếp giáp.

Dòng rò dưới ngưỡng phát sinh khi cực cổng của CMOS chưa

thực sự hoàn toàn đóng. Giá trị gần đúng của dòng rò dưới ngưỡng

được tính theo công thức sau:

( )

(5-6)

Trong đó, và là các kích thước của transistor, là điện thế

nhiệt (được tính bằng công thức và bằng 25,9 mV ở nhiệt độ

phòng), là một tham số của quá trình chế tạo và có giá trị nằm trong

khoảng từ 1,0 đến 2,5.

Phương trình (5-6) cho thấy dòng rò dưới ngưỡng phụ thuộc vào

sự chênh lệch điện áp và theo hàm mũ. Do vậy, nếu chúng ta

giảm điện áp nguồn và (để giảm công suất tiêu thụ động) thì

lại làm tăng công suất tiêu thụ tĩnh của hệ thống theo hàm số mũ.

Nguyên nhân gây ra dòng rò cổng là do hiệu ứng đường hầm ở

lớp oxit cực cổng. Với quy trình công nghệ 90nm, độ dày của lớp oxit

( ) này chỉ bằng kích cỡ của vài nguyên tử. Điều này làm cho hiệu

ứng đường hầm càng trở nên lớn hơn đối với các transistor sản xuất

bằng những quy trình công nghệ tiên tiến hơn. Với các quy trình công

nghệ lớn hơn 90nm, dòng rò trên CMOS chủ yếu là gây bởi dòng rò

dưới ngưỡng . Bắt đầu từ công nghệ 90nm trở đi, dòng rò cổng

gần như bằng 1/3 dòng rò dưới ngưỡng và thậm chí có thể bằng với

giá trị của dòng trong một vài trường hợp ở quy trình công nghệ

65nm. Đối với các quy trình công nghệ tiên tiến hơn (kích thước

transistor nhỏ hơn), các vật liệu có hằng số điện môi cao sẽ được áp

dụng vào quy trình sản xuất để nhằm giảm dòng rò cổng. Đây cũng là

phương pháp duy nhất để làm giảm dòng rò cổng trên mạch.

Theo công thức (5-6), dòng rò dưới ngưỡng cũng phụ thuộc nhiệt

độ theo hàm số mũ. Điều này ảnh hưởng lớn đến quy trình thiết kế

công suất thấp vì cho dù giá trị dòng rò ngưỡng là chấp nhận được ở

nhiệt độ phòng thì khi nhiệt độ của mạch tích hợp thay đổi cũng làm

100 Mạng trên chip

cho dòng rò ngưỡng trở nên không thể kiểm soát được. Thậm chí,

dòng rò ngưỡng của các transistor ở các vị trí khác nhau trên cùng một

vi mạch cũng có thể khác nhau.

Để giảm công suất tiêu thụ tĩnh của các mạch CMOS, các nhà

thiết kế đã đề xuất nhiều phương pháp khác nhau. Trong đó, có hai

phương pháp phổ biến nhất thường được sử dụng là:

Phương pháp đa điện áp ngưỡng (Multi - ): trong quá trình

thiết kế, chúng ta có thể áp dụng các thư viện tế bào với điện áp cao

cho những khối cần hiệu năng cao và các tế bào với điện áp thấp

cho các khối chỉ cần hoạt động ở tốc độ chuyển trạng thái thấp hơn.

Phương pháp chặn cấp nguồn (Power Gating): phương pháp

này cho phép giảm công suất tiêu thụ tĩnh của hệ thống bằng cách

ngừng cấp nguồn cho những khối lô-gic không hoạt động. Đây là

phương pháp giảm thiểu công suất tĩnh một cách tối đa nhưng lại khó

triển khai khi mạch không ngừng hoạt động một cách hoàn toàn.

Tổng hợp về công suất tiêu thụ trên một vi mạch tích hợp được

miêu tả trên Hình 5-3.

Hình 5-3: Phân loại công suất tiêu thụ trên vi mạch tích hợp.

5.2. Một số phương pháp thiết kế vi mạch công suất thấp

Từ các thảo luận về mặt lý thuyết ở Mục 5.1.1 và Mục 5.1.2, các

nhà thiết kế đã đề xuất ra nhiều phương pháp khác nhau để giảm công

Công suất tiêuthụ

Công suất tiêu thụ động

Công suất tiêu thụ do chuyển mạch:

Psw = CeffVdd2f

Công suất tiêu thụdo ngắn mạch:

Psc = tscVddIpeakf

Công suất tiêu thụ tĩnh

Công suất tiêu thụ do dòng rò:

Pleak=tactIleakVdd

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 101

suất tiêu thụ tĩnh và công suất tiêu thụ động trên một vi mạch. Mặc dù

vậy, chúng ta không thể áp dụng cùng lúc tất cả các phương pháp này

trong một thiết kế. Tuỳ theo yêu cầu, mục đích của ứng dụng khi thiết

kế một mạch tích hợp cũng như tuỳ thuộc vào công nghệ bán dẫn

dùng để sản xuất vi mạch mà người thiết kế có thể áp dụng một hoặc

nhiều phương pháp khác nhau để giảm công suất tiêu thụ cho thiết kế

của mình. Hiện nay, một số phương pháp thiết kế theo hướng giảm

công suất tiêu thụ đang được nhiều nhà thiết kế áp dụng có thể kể đến

là: (i) Phương pháp chặn cấp xung nhịp đồng hồ (Clock Gating);

(ii) Thiết kế đa điện áp nguồn (Multi - ); (iii) Thiết kế đa điện áp

ngưỡng (Multi - ).

5.2.1. Phương pháp chặn cấp xung nhịp

Trong một vi mạch, một phần lớn công suất tiêu thụ động được

phân bố trên mạng lưới các đường cấp xung nhịp đồng hồ. Theo

nghiên cứu ở [53], trên 50% công suất tiêu thụ động bị tiêu thụ ở các

bộ đệm xung nhịp. Các bộ đệm xung nhịp là một trong những thành

phần có tốc độ chuyển trạng thái nhanh nhất trong hệ thống. Thêm vào

đó, các mạch flip-flop luôn nhận tín hiệu cấp xung nhịp; do đó, nó

luôn tiêu thụ công suất cho dù các tín hiệu ở đầu vào và đầu ra không

hề thay đổi. Vì vậy, để giảm công suất tiêu thụ của vi mạch, chúng ta

có thể đưa ra giải pháp ngừng cấp xung nhịp cho các mạch flip-flop

khi nó không cần phải thực hiện việc chuyển trạng thái. Phương pháp

này được gọi là phương pháp chặn cấp xung nhịp.

Hiện nay, các công cụ thiết kế hiện đại đều có khả năng phân tích

thiết kế và nhận diện các vị trí trong mạch có thể áp dụng được

phương pháp chặn cấp xung nhịp một cách hoàn toàn tự động mà

không làm thay đổi chức năng của mạch lô-gic. Hình 5-4 minh họa

hình ảnh khi biên dịch một flip-flop D trong cả hai trường hợp, không

áp dụng phương pháp chặn cấp xung nhịp và có áp dụng phương pháp

chặn cấp xung nhịp. Trong trường hợp khi tiến hành biên dịch mà

không áp dụng phương pháp chặn cấp xung nhịp, tín hiệu xung nhịp

sẽ gửi trực tiếp đến các mạch flip-flop kể cả khi nó không hoạt động

(tín hiệu cho phép EN ở mức thấp). Với việc biên dịch có áp dụng kỹ

102 Mạng trên chip

thuật chặn cấp xung nhịp, tín hiệu xung nhịp chỉ được gửi tới các

mạch flip-flop khi tín hiệu cho phép EN ở mức cao và các flip-flop có

hoạt động chuyển mức trạng thái đầu vào và đầu ra.

Hình 5-4: Phương pháp chặn cấp xung nhịp:

không thực hiện chặn xung nhịp (a); có thực hiện chặn xung nhịp (b).

5.2.2. Phương pháp thiết kế đa điện áp nguồn

Như đã trình bày ở Mục 5.1.1, công suất tiêu thụ động tỷ lệ với

bình phương điện áp nguồn cung cấp ( ). Do vậy, chúng ta có thể

giảm công suất tiêu thụ động của toàn hệ thống bằng cách giảm điện

áp nguồn cho từng thành phần trong vi mạch (đối với những thành

phần không yêu cầu hoạt động ở tốc độ cao). Phương pháp này gọi là

phương pháp thiết kế đa điện áp nguồn. Một ví dụ về phương pháp

thiết kế đa điện áp nguồn được trình bày ở Hình 5-5.

Hình 5-5: Một ví dụ về phương pháp thiết kế đa điện áp nguồn.

Trong hệ thống trên chip này, bộ nhớ đệm hoạt động ở mức điện

áp cao nhất để đảm bảo tốc độ trao đổi dữ liệu nhanh nhất có thể. Bộ

vi xử lý CPU hoạt động ở mức điện áp cao vì hiệu năng của CPU sẽ

D

EN

Q

Clk

D

EN

Q

Clk Latch

(a) (b)

flip-flop

flip-flop

Bộ nhớ đệm(1,2 volt)

CPU(1,1 volt)

Các khối còn lại(1,0 volt)

Hệ thống trên chip

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 103

quyết định hiệu năng của toàn hệ thống. Các khối chức năng còn lại

của hệ thống sẽ hoạt động ở mức điện áp thấp hơn để giảm công suất

tiêu thụ. Tương tự vậy, những khối chức năng này cũng có thể hoạt

động ở tần số thấp hơn tần số của CPU để tiết kiệm năng lượng.

Tuy nhiên, việc áp dụng nhiều mức điện áp khác nhau cho từng

phần của hệ thống cũng sẽ làm quá trình thiết kế trở nên phức tạp hơn.

Bên cạnh việc cấp thêm các chân nguồn khác nhau, người thiết kế còn

phải bổ sung các mạng lưới cấp nguồn và các bộ chuyển mức điện áp

cho những tín hiệu truyền giữa các khối chức năng có điện áp khác

nhau. Những vấn đề này sẽ được thảo luận kỹ hơn trong Mục 5.3.

5.2.3. Phương pháp thiết kế đa điện áp ngưỡng

Nhờ vào những tiến bộ của công nghệ bán dẫn, cùng với sự thu

nhỏ kích thước của transistor, thì việc sử dụng các thư viện hỗ trợ đa

điện áp ngưỡng đã trở thành một cách thức phổ biến để giảm dòng

điện rò trong mạch. Điều này hình thành phương pháp thiết kế đa điện

áp ngưỡng.

Như đề cập trong Mục 5.1.2, dòng điện rò dưới ngưỡng ( )

phụ thuộc vào điện áp ngưỡng theo hàm mũ. Trong khi đó, thời

gian trễ của transistor sẽ ít phụ thuộc hơn vào điện áp ngưỡng. Mối

quan hệ giữa dòng rò dưới ngưỡng và thời gian trễ đối với quy trình

sản xuất vi mạch 90nm được biểu diễn như ở Hình 5-6.

Hình 5-6: Mối quan hệ giữa thời gian trễ và dòng rò đối với quy trình 90nm [51].

104 Mạng trên chip

Với những thư viện hiện đại, thông thường mỗi thư viện sẽ bao

gồm từ hai đến ba phiên bản thư viện tế bào tương ứng với các mức

điện áp ngưỡng khác nhau: điện áp ngưỡng thấp , điện áp ngưỡng

tiêu chuẩn và điện áp ngưỡng cao . Công cụ hỗ trợ thiết kế sẽ

tự động lựa chọn thư viện phù hợp để tiến hành tổng hợp nhằm tối ưu

về cả thời gian và công suất tiêu thụ. Người thiết kế cũng có thể can

thiệp việc lựa chọn thư viện cho từng khối chức năng bên trong mạch

thông qua việc đưa ra các ràng buộc thiết kế cụ thể.

5.3. Phương pháp thiết kế đa điện áp nguồn

Để giảm sâu công suất tiêu thụ trên vi mạch, gần đây các nhà

thiết kế đã đề xuất nhiều phương pháp cho phép giảm cả công suất

tiêu thụ tĩnh và công suất tiêu thụ động trên mạch. Trong các phương

pháp này, có hai phương pháp hiện được sử dụng nhiều và tương đối

phổ biến đó là: chặn cấp nguồn (power gating) và thay đổi điện áp

thích nghi (adaptive voltage scaling).

Giải pháp chính của hai phương pháp này chính là phân vùng hệ

thống thành từng khối khác nhau, cấp nguồn nuôi riêng cho từng mỗi

khối hoặc sử dụng các mức điện áp nguồn khác nhau cho từng khối

khác nhau. Cách tiếp cận này được gọi là thiết kế đa điện áp nguồn.

Phương pháp thiết kế này bắt nguồn từ việc thay đổi trong mô hình

thiết kế vi mạch gần đây, khi mà vi mạch chủ yếu được thiết kế dưới

dạng các hệ thống trên chip có tính mô-đun hóa cao, đặc biệt là các hệ

thống GALS. Với các hệ thống này, mỗi khối chức năng trong hệ

thống sẽ hoạt động dưới các điều kiện và hiệu năng khác nhau. Ví dụ,

trong một hệ thống trên chip thì CPU thường sẽ phải hoạt động với tốc

độ nhanh nhất mà kỹ thuật chế tạo bán dẫn cho phép để tăng hiệu

năng hoạt động của hệ thống. Trong khi đó, một khối giao tiếp USB

thì không cần phải hoạt động ở tốc độ cao nhưng phải đảm bảo được

mức điện áp được đặt ra bởi giao diện truyền thông. Một ví dụ khác về

việc thay đổi mức điện áp cần cung cấp đó là điện áp nguồn cấp cho

các vi mạch nhớ truy cập ngẫu nhiên (RAM). Thông thường, chúng ta

chỉ cần cấp mức điện áp nguồn nhỏ để duy trì dữ liệu lưu trên RAM,

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 105

nhưng khi cần đọc hoặc ghi dữ liệu thì điện áp nguồn cần phải được

đưa lên mức cao hơn.

Từ yêu cầu cấp nguồn của hệ thống, trong hơn một thập kỷ qua,

các nhà thiết kế đã đề xuất một số chiến lược cấp nguồn trong phương

pháp thiết kế đa điện áp nguồn như sau:

Cấp nguồn với tỷ lệ điện áp cố định (SVS: Static Voltage

Scaling): các khối hoặc các hệ thống con khác nhau được cấp các mức

điện áp cố định khác nhau. Việc xác định mức điện áp phụ thuộc vào

yêu cầu về hiệu năng và tốc độ hoạt động của khối chức năng đó.

Cấp nguồn với tỷ lệ điện áp đa mức (MVS: Multi-level Voltage

Scaling): phương pháp này là một sự mở rộng của phương pháp SVS;

theo đó, điện áp cấp cho các khối khác nhau trên vi mạch sẽ được

chuyển đổi giữa nhiều mức khác nhau. Tuy nhiên, hệ thống chỉ cho

phép chuyển giữa vài mức giá trị điện áp cố định đối với từng hoạt

động khác nhau của các hệ thống con.

Phương pháp điều khiển tỷ lệ điện áp và tần số động (DVFS:

Dynamic Voltage and Frequency Scaling): phương pháp này là một sự

mở rộng của phương pháp MVS. Tùy thuộc vào sự thay đổi của tải hệ

thống, hệ thống sẽ thay đổi tần số và điện áp nguồn một cách tự động

theo một tập hợp các giá trị điện áp và tần số hoạt động định nghĩa trước.

Phương pháp điều khiển tỷ lệ điện áp thích nghi (AVS: Adaptive

Voltage Scaling): phương pháp này là sự mở rộng của phương pháp

DVFS. Với phương pháp AVS, chúng ta sử dụng các vòng lặp phản hồi

để điều chỉnh điện áp và tần số hoạt động nhằm tối giản công suất tiêu

thụ tùy theo nhu cầu của hệ thống tại từng thời điểm.

5.3.1. Phương pháp điều khiển tỷ lệ điện áp và tần số động

Phương pháp điều khiển tỷ lệ điện áp và tần số động (DVFS)

được biết đến như là một kỹ thuật phổ biến để quản lý công suất tiêu

thụ ở mức hệ thống [51, 54, 55]. Một hệ thống khi được áp dụng

phương pháp DVFS có thể được xem như là một hệ thống điều khiển

vòng kín vì tần số hoạt động và điện áp cung cấp sẽ được điều chỉnh

106 Mạng trên chip

phụ thuộc vào tải của hệ thống. Việc thay đổi điện áp nguồn cho hệ

thống là không thể xảy ra ngay lập tức mà sẽ bị trễ một khoảng thời

gian do ảnh hưởng của điện dung ký sinh trên các đường cấp nguồn.

Chính vì vậy, thách thức lớn nhất khi thiết kế một hệ thống có áp dụng

kỹ thuật điều khiển tỷ lệ điện áp và tần số động DVFS đó là làm sao

để có thể đo và dự đoán chính xác sự thay đổi về tải của hệ thống

nhằm có thể điều chỉnh tần số, điện áp cung cấp một cách kịp thời và

chính xác. Một hệ thống sử dụng phương pháp điều khiển tỷ lệ điện áp

và tần số động để quản lý năng lượng thường gồm các khối cơ bản

được mô tả như ở Hình 5-7.

Hình 5-7: Mô hình hệ thống sử dụng phương pháp điều khiển tỷ lệ tần số

và điện áp động.

Sơ đồ khối của một hệ thống có áp dụng kỹ thuật điều khiển tỷ lệ

điện áp và tần số động DVFS thường có ba khối chính với chức năng

được mô tả như sau:

Khối cảm biến sẽ xác định các tham số chính của hệ thống như

điện áp, dòng điện trung bình hay nhiệt độ để làm cơ sở cho việc xác

định tải hoạt động của hệ thống.

Bộ điều khiển sẽ dựa trên các dữ liệu đo được từ cảm biến và so

sánh nó với hiệu năng tham chiếu được quy định trong khối quản lý

nguồn chung hoặc từ phần mềm để đưa ra các quyết định về việc

tăng/giảm điện áp và tần số cung cấp cho hệ thống.

Cuối cùng là Khối cấp nguồn và tần số có nhiệm vụ cung cấp

nguồn nuôi và tần số hoạt động cho hệ thống. Khối này thường gồm

HỆ THỐNG TRÊN CHIP

áp dụng kỹ thuật DVFS

Cảm biến

Bộ điều khiểnKhối cấp nguồn

và tần số

Dữ liệu lối vào Dữ liệu lối ra

Hiệu năngtham chiếu

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 107

các bộ cấp điện áp như bộ chuyển đổi nguồn DC-DC và các bộ cấp

xung nhịp như các bộ dao động sử dụng vòng lặp khóa pha (PLL:

Phase Locked Loop).

Trong những nghiên cứu đầu tiên về phương pháp điều khiển tỷ

lệ điện áp và tần số động DVFS, các hệ thống DVFS thường sử dụng

các bộ điều khiển dạng ngoại tuyến để giám sát tải hệ thống và từ đó

đưa ra quyết định tăng/giảm điện áp và tần số hoạt động. Với các bộ

điều khiển ngoại tuyến, chúng ta cần điều chỉnh và xác định các thông

số cần thiết của bộ điều khiển tùy thuộc vào đặc thù hệ thống trước

khi sử dụng. Các bộ điều khiển này thường dựa trên các thuật toán

điều khiển PID hoặc các biến thể của nó như các bộ điều khiển PI

hoặc điều khiển I. Tuy nhiên, nhược điểm của các bộ điều khiển kiểu

này là cần phải điều chỉnh các thông số của nó để có thể đo và dự

đoán chính xác sự thay đổi của tải hệ thống. Điều này làm cho khả

năng ứng dụng và mở rộng của hệ thống bị hạn chế nếu sử dụng các

bộ điều khiển dạng ngoại tuyến. Một vài phương pháp khác (chẳng

hạn sử dụng các bộ lọc Kalman [56, 57]) cũng đã được đề xuất để

thực hiện việc dự đoán tải hệ thống cũng như để điều khiển việc cấp

điện áp và tần số. Tuy vậy, phần lớn các phương pháp này vẫn cần

thực hiện việc thay đổi các tham số của bộ lọc khi áp dụng cho một

trạng thái mới của tải hệ thống hoặc là quá phức tạp về thuật toán để

có thể thực thi bằng phần cứng.

Cho đến nay, đã có rất nhiều hướng tiếp cận khác nhau để có thể

áp dụng phương pháp điều khiển tỷ lệ điện áp và tần số động DVFS

trong các hệ thống khác nhau. Trong những hệ thống điều khiển tỷ lệ

điện áp và tần số động DVFS đầu tiên, các thuật toán thường đánh giá

tải hệ thống dựa trên thời gian thực hiện công việc trung bình (ACET:

Average-Case Execution Time) hoặc dựa trên thời gian xử lý trong

trường hợp xấu nhất (WCET: Worst-Case Execution Time). Công

trình [58] được xem là một trong những công trình sớm nhất về

phương pháp điều khiển tỷ lệ điện áp và tần số động DVFS được công

bố. Theo đó, các tác giả đánh giá về tải hệ thống của CPU thông qua

thời gian thực hiện một tác vụ và xem rằng công suất tiêu thụ P trong

một chu kỳ xung nhịp CPU chỉ phụ thuộc vào tần số hoạt động. Từ đó,

108 Mạng trên chip

các tác giả đã đề xuất một thuật toán để xếp lịch cho các tác vụ nhằm

tối thiểu công suất tiêu thụ của CPU. Trong công trình [59], các tác

giả cũng đã đưa ra một kỹ thuật xác định thời gian xử lý WCET của

hệ thống dựa trên việc sử dụng bộ đệm và từ đó áp dụng phương pháp

điều khiển tỷ lệ điện áp và tần số động DVFS để giảm công suất tiêu

thụ. Kỹ thuật điều khiển tỷ lệ điện áp và tần số động DVFS dựa trên

thời gian xử lý WCET của các tác vụ đồng bộ trong hệ thống đa lõi xử

lý cũng được các tác giả trong công trình [60] đề xuất nhằm giảm

thiểu năng lượng hoạt động của hệ thống. Một số công trình khác [61,

62, 63] cũng áp dụng cách tiếp cận tương tự để có thể ứng dụng

phương pháp điều khiển tỷ lệ điện áp và tần số động DVFS cho hệ

thống. Tuy nhiên, nhược điểm chính của các cách tiếp cận này vẫn là

việc các thông số của thuật toán phải được thay đổi lại mỗi khi tài

nguyên hệ thống có sự biến đổi lớn.

Để khắc phục nhược điểm này, các phương pháp điều khiển tỷ lệ

điện áp và tần số động tự thích nghi đã bắt đầu được các nhóm nghiên

cứu đề xuất [64, 65]. Nielsen và đồng nghiệp [65] đã đưa ra một kiến

trúc hệ thống sử dụng vòng lặp đóng, có khả năng tự định thời để điều

chỉnh điện áp và tần số thích nghi với tải hệ thống. Bằng cách sử dụng

các bộ đệm FIFO ở đầu vào và đầu ra của vi xử lý, các tác giả thực

hiện việc đánh giá tải hệ thống dựa trên tính toán mức độ sử dụng bộ

đệm FIFO và đưa phản hồi này về để điều khiển một bộ chuyển đổi

DC-DC nhằm cung cấp điện áp một cách phù hợp với tải của CPU.

Gutnik và đồng nghiệp [64] cũng đề xuất một kiến trúc dựa trên việc

đánh giá mức độ sử dụng bộ đệm FIFO tương tự như công trình của

Nielsen. Tuy nhiên, Gutnik và đồng nghiệp đã đưa thêm vào một bộ

tạo dao động riêng để có thể thay đổi cả tần số cung cấp cho hệ thống.

Bằng việc so sánh tải hệ thống tại từng thời điểm với các giá trị tham

chiếu được lập trình sẵn trong một bảng tìm kiếm (LUT: Look-Up

Table) khả trình, bộ điều khiển sẽ điều chỉnh điện áp và tần số một

cách tương ứng với tải hoạt động. Những phương pháp điều khiển tỷ

lệ điện áp và tần số động mới được đề xuất đã giải quyết phần nào

những nhược điểm của các phương pháp cũ. Tuy nhiên, do phần lớn

những phương pháp này chỉ mới sử dụng một đại lượng, đó là mức độ

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 109

sử dụng bộ đệm (BU: Buffer Ultilization), để đánh giá tải hoạt động

của hệ thống nên chưa thể dự đoán được việc thay đổi giá trị của tải

trong tương lai gần. Do đó, khả năng đáp ứng của bộ điều khiển vẫn

còn chậm dẫn đến độ trễ của hệ thống còn lớn.

Vì vậy, để phát triển các bộ điều khiển tỷ lệ điện áp và tần số

động DVFS hiệu quả hơn thì việc đưa ra những kiến trúc mới cho các

thuật toán cho phép dự đoán tải hệ thống cũng như các phương pháp

điều khiển tự thích nghi mới đã trở thành một thách thức lớn khi thiết

kế các hệ thống điều khiển tỷ lệ điện áp và tần số động DVFS. Những

kỹ thuật này thường hướng đến việc dự đoán sự biến thiên của tải hệ

thống theo thời gian dựa trên các bộ lọc thích nghi. Phần lớn các bộ

điều khiển dạng này đều sử dụng thuật toán điều khiển PID và một số

biến thể của chúng. Một trong những kiến trúc được đưa ra đầu tiên

cho các bộ điều khiển dạng này là nghiên cứu của Wei và đồng nghiệp

[66]. Tại công trình này, các điện áp mẫu sẽ được sử dụng để điều

khiển một bộ dao động điều khiển bằng điện áp (VCO: Voltage-

Controlled Oscillator) nhằm thay đổi tần số hoạt động của hệ thống

theo sự phản hồi điện áp từ bộ chuyển đổi nâng điện áp (boost

converter). Các tín hiệu tham chiếu và tín hiệu phản hồi của bộ điều

khiển đều là sự biến đổi của tần số xung nhịp hệ thống. Bộ điều khiển

PID sẽ dựa trên việc tính toán các sai số giữa những tín hiệu này để

điều chỉnh lại điện áp và tần số của toàn mạch. Một vài kiến trúc điều

khiển tỷ lệ điện áp và tần số động dựa trên các bộ điều khiển PID cũng

được đề xuất như ở các công trình [67, 68, 55]. Hughes và đồng

nghiệp [67] đã sử dụng một bộ điều khiển PID để ước lượng thời gian

giải mã một khung hình trong các ứng dụng đa phương tiện để từ đó

điều chỉnh lại điện áp và tần số cung cấp cho CPU một cách phù hợp.

Trong các công trình [68, 55], bộ điều khiển PI đã được áp dụng để

ước lượng mức độ sử dụng bộ đệm trong một hệ thống sử dụng kỹ

thuật điều khiển tỷ lệ điện áp và tần số động DVFS để điều khiển tỷ lệ

điện áp và tần số trong các hệ thống đó. Các bộ điều khiển PID là các

bộ lọc tự thích nghi nên có khả năng dự đoán về tải của hệ thống.

Nhưng đối với các bộ điều khiển PID thì đáp ứng của bộ điều khiển

vẫn phụ thuộc vào các hệ số P, I và D được lựa chọn khi thiết lập ban

110 Mạng trên chip

đầu tương ứng với một dạng tải hệ thống nhất định. Chính vì vậy, mỗi

bộ hệ số PID chỉ phù hợp với một dạng tải nhất định của hệ thống và

người thiết kế cũng cần phải thay đổi lại các hệ số này nếu tải hệ

thống có sự thay đổi lớn. Việc thay đổi các hệ số này cũng sẽ ảnh

hưởng đến độ chính xác của quá trình dự đoán trong hệ thống.

Bên cạnh các bộ điều khiển dựa trên thuật toán PID, một vài

phương pháp ước lượng cũng như một số bộ lọc tự thích nghi khác

nhau cũng đã được đưa ra để cho phép hệ thống dự đoán về sự thay

đổi của tải và đưa ra quyết định điều chỉnh tần số và điện áp. Sinha và

đồng nghiệp [69] đã khảo sát một số bộ lọc để dự đoán tải dựa trên

các giá trị tải trong quá khứ và từ đó cho phép thiết lập điện áp động

cho bộ xử lý một cách phù hợp nhằm giảm công suất tiêu thụ. Các

khảo sát đã chỉ ra bộ lọc thích nghi LMS là một trong những bộ lọc tốt

nhất để dự đoán sự thay đổi của tải hệ thống và có thể áp dụng được

với nhiều dạng tải khác nhau mà không cần thay đổi lại các hệ số của

bộ lọc. Bang và đồng nghiệp [56] cũng đã đưa ra một bộ ước lượng tải

dựa trên bộ lọc Kalman cho phép dự đoán và bám theo sự thay đổi của

tải theo thời gian thực. Tại công trình [70], chúng tôi thực hiện việc

giám sát thời gian thực mức độ sử dụng của các FIFO trên đường

truyền thông giữa các khối xử lý để đưa ra quyết định điều khiển tần

số hoạt động của các khối xử lý này nhằm tối ưu công suất tiêu thụ.

So với những hướng tiếp cận trước đây, các bộ điều khiển ứng

dụng thuật toán lô-gic mờ đã mở ra một hướng mới cho việc áp dụng

phương pháp điều khiển tỷ lệ điện áp và tần số động DVFS trong các

mạch điện. Các bộ điều khiển lô-gic mờ có khả năng hoạt động tương

tự như với các bộ lọc tự thích nghi khi cho phép bộ điều khiển có thể

dự đoán được sự thay đổi của tải hệ thống trong tương lai gần bằng

việc dựa trên các giá trị đầu vào của tải hệ thống ở thời điểm hiện tại.

Bên cạnh đó, một ưu điểm của các bộ điều khiển lô-gic mờ so với các

bộ điều khiển PID đó là ta không cần phải thay đổi các tham số của bộ

điều khiển khi tải hệ thống thay đổi. Pourshaghaghi và đồng nghiệp

[71] đã đề xuất một kiến trúc điều khiển sử dụng thuật toán lô-gic mờ

để cho phép dự đoán sự thay đổi của tải hệ thống dựa trên biến đổi của

dòng điện tiêu thụ trong mạch. Kết quả nghiên cứu trong công trình

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 111

này đã chỉ ra rằng bộ điều khiển sử dụng thuật toán lô-gic mờ có khả

năng dự đoán và bám theo sự thay đổi của tải hệ thống với độ chính

xác cao. Hơn nữa, so với các bộ lọc tự thích nghi thì các bộ điều khiển

lô-gic mờ có thuật toán đơn giản hơn rất nhiều. Chính vì vậy, việc

cứng hóa một bộ điều khiển lô-gic mờ sẽ đơn giản hơn và cũng sẽ

chiếm ít tài nguyên hệ thống hơn so với các kiến trúc khác. Việc so

sánh giữa những công trình đã thực thi các bộ điều khiển PID [72, 73,

74, 75, 76] và Kalman [77, 78, 79] trên kiến trúc FPGA so với các bộ

điều khiển lô-gic mờ [80, 81, 82, 71] cũng đã chỉ ra được sự chênh

lệch về tài nguyên phần cứng bị chiếm dụng.

Để có thể đánh giá, lựa chọn một phương pháp điều khiển tỷ lệ

điện áp và tần số động phù hợp, một tổng hợp so sánh, đánh giá hiệu

quả giữa các phương pháp nói trên được thể hiện như trong Bảng 5-1.

Bảng 5-1: So sánh đánh giá giữa các phương pháp điều khiển tỷ lệ điện áp

và tần số động

Phương pháp

điều khiển Ưu điểm Nhược điểm

Bộ điều

khiển

ngoại

tuyến

- Sử dụng

thuật toán PID.

- Sử dụng các

biến thể của

PID: PI, PD.

Điều khiển tần số -

điện áp bám theo sự

thay đổi của tải hệ

thống khá chính

xác.

- Cần thay đổi

tham số của bộ

điều khiển khi tải

hệ thống có sự thay

đổi lớn.

- Thuật toán khá

phức tạp.

- Chiếm tài nguyên

thực thi phần cứng.

Bộ điều

khiển tự

thích nghi

Sử dụng các

bộ lọc thích

nghi (LMS,

Kalman...).

- Dự đoán và bám

theo sự thay đổi của

tải theo thời gian

thực với độ chính

xác cao.

- Không cần thay

đổi tham số khi tải

hệ thống thay đổi.

- Thuật toán điều

khiển rất phức tạp.

- Chiếm nhiều tài

nguyên thực thi

phần cứng.

112 Mạng trên chip

Bộ điều

khiển áp

dụng thuật

toán lô-gic

mờ

Sử dụng thuật

toán lô-gic

mờ.

- Hoạt động tương

tự với các bộ lọc

thích nghi.

Độ chính xác của

việc dự đoán sự

thay đổi của tải hệ

thống không bằng

các bộ lọc thích

nghi.

5.3.2. Một số thách thức trong thiết kế đa điện áp nguồn

Khi áp dụng các phương pháp thiết kế đa điện áp nguồn (cho dù

áp dụng chiến lược nào) thì người thiết kế phải luôn sẵn sàng đối mặt

với những thách thức sau:

Bộ chuyển mức: mục đích của bộ đệm chuyển mức đó là cho

phép tín hiệu có thể chuyển qua các khối sử dụng những mức điện áp

nguồn khác nhau trên vi mạch. Để người thiết kế có thể áp dụng các

phương pháp thiết kế đa điện áp nguồn thì các thư viện thiết kế (cell

library) phải hỗ trợ những bộ chuyển mức này.

Vấn đề tiếp đất, đặt điện áp nguồn và lưới dẫn nguồn: việc cung

cấp nhiều miền điện áp sẽ yêu cầu thêm nhiều chi tiết trong việc tiếp

đất (sử dụng chung tiếp đất hay bố trí tiếp đất riêng biệt) và mạng lưới

các đường dẫn cung cấp nguồn cũng phức tạp hơn.

Các vấn đề về bo mạch: thiết kế đa điện áp cũng yêu cầu bổ

sung thêm nguồn cung cấp điện áp trên bo mạch. Chúng ta phải thiết

kế bo mạch có khả năng cung cấp nhiều nguồn điện áp khác nhau.

Thứ tự thay đổi việc cấp nguồn (tăng hoặc giảm mức điện áp):

Để tránh tình trạng khóa chết (deadlock) thì việc thay đổi nguồn cung

cấp trong hệ thống phải được thực hiện theo một thứ tự nhất định.

5.4. Một số giải pháp thiết kế mạng trên chip theo hướng giảm thiểu

công suất tiêu thụ

Việc tích hợp nhiều lõi IP trong cùng một hệ thống mạng trên

chip làm cho vấn đề tiêu thụ năng lượng của toàn hệ thống trở nên rất

quan trọng. Năng lượng tiêu thụ không chỉ cung cấp cho các lõi IP mà

còn phải cung cấp cho cả kiến trúc truyền thông trên vi mạch.

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 113

Trong một số trường hợp, năng lượng dành cho kiến trúc truyền thông

có thể chiếm đến hơn 20% năng lượng tiêu thụ của toàn hệ thống (ví

dụ, đối với chip MIT Raw là 36% và đối với vi xử lý Alpha 21364 là

20%) [83]. Điều này ảnh hưởng đến hoạt động của toàn hệ thống, đặc

biệt là đối với các thiết bị di động sử dụng nguồn nuôi bằng pin. Chính

vì vậy, việc nghiên cứu và xây dựng các kiến trúc truyền thông, đặc

biệt là kiến trúc mạng trên chip, theo hướng tối ưu năng lượng tiêu thụ

đang là một vấn đề thu hút được nhiều quan tâm từ cộng đồng nghiên

cứu trong thời gian qua. Có nhiều hướng tiếp cận khác nhau khi thiết

kế mạng trên chip theo hướng tối ưu năng lượng tiêu thụ, được phân

thành ba nhóm kỹ thuật chính sau:

Áp dụng các kỹ thuật thiết kế tối ưu về năng lượng tiêu thụ cho

toàn kiến trúc mạng trên chip để đạt hiệu quả cao và tạo ra sự thống

nhất trên toàn mạng [84, 85, 86, 87]. Một số kỹ thuật thường hay được

áp dụng là kỹ thuật chặn cấp nguồn, kỹ thuật chặn cấp xung nhịp đồng

hồ, kỹ thuật điều khiển tỷ lệ tần số và điện áp động (DVFS), hay là kỹ

thuật điều khiển điện áp thích nghi (AVS)…

Thiết kế lại kiến trúc của từng mô-đun cơ bản trong mạng theo

hướng giảm thiểu năng lượng tiêu thụ. Một số nhóm nghiên cứu đã

thực hiện việc thiết kế các bộ định tuyến công suất thấp [88, 89], hay

các khối phối ghép mạng công suất thấp [90, 91]… Thường với xu

hướng này, người thiết kế sẽ tối giản kiến trúc cũng như hoạt động của

các mô-đun thiết kế nhằm giảm năng lượng tiêu thụ, đặc biệt là giảm

các phần tử nhớ trong thiết kế như thanh ghi hay bộ đệm.

Nghiên cứu, đề xuất các thuật toán định tuyến hoặc các thuật

toán nén dữ liệu trên mạng nhằm giảm thiểu thông tin truyền đi trong

mạng, từ đó giảm được năng lượng tiêu thụ của toàn mạng [92, 93].

Với hướng tiếp cận này, người thiết kế sẽ tập trung phân tích các đặc

tính trao đổi dữ liệu của ứng dụng và xây dựng phương án định tuyến

dữ liệu tối ưu.

Sau đây chúng ta sẽ tìm hiểu cụ thể một số giải pháp tối giản

công suất tiêu thụ điển hình trong thiết kế mạng trên chip được đề xuất

trong thời gian qua.

114 Mạng trên chip

5.4.1. Kiến trúc mạng trên chip công suất thấp ALPIN

Trong công trình [94], nhóm nghiên cứu tại Trung tâm Nghiên

cứu CEA-Leti, Minatec, Cộng hòa Pháp đã đưa ra nhiều giải pháp

khác nhau, áp dụng trên cùng một kiến trúc mạng trên chip bất đồng

bộ để giảm thiểu năng lượng tiêu thụ cho toàn hệ thống mạng trên

chip. Kiến trúc này được gọi là ALPIN (Asynchronous Low Power

Innovative NoC). Bằng cách áp dụng kỹ thuật thiết kế GALS (dị bộ

toàn cầu - đồng bộ cục bộ), kiến trúc mạng trên chip này được thiết kế

với nhiều vùng tần số và điện áp khác nhau. Từ đó, Edith và đồng

nghiệp đã áp dụng nhiều kỹ thuật khác nhau để làm giảm năng lượng

tiêu thụ của hệ thống cả về năng lượng tiêu thụ tĩnh và năng lượng tiêu

thụ động.

a) Kiến trúc tổng thể của mạng trên chip ALPIN

Trong kiến trúc mạng trên chip ALPIN (Hình 5-8), mỗi lõi IP

hoạt động nhờ vào một bộ tạo xung nhịp đồng hồ cục bộ. Bộ tạo xung

nhịp này có khả năng lập trình được để cho phép tạo ra một xung nhịp

có tần số thuộc một dải tần số định sẵn. Với việc hoạt động ở các vùng

tần số độc lập, mỗi lõi IP cũng được cấp nguồn bởi một khối nguồn

riêng, cho phép cung cấp hai mức điện áp hoạt động là và

cho lõi IP.

Hình 5-8: Kiến trúc ALPIN [94].

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 115

Kiến trúc ALPIN có tổng cộng sáu lõi IP và chín bộ định tuyến

đã được triển khai để tạo ra một ứng dụng cho truyền thông di động.

Các lõi IP trên hệ thống này bao gồm: một lõi TRX-OFDM, hai lõi

biến đổi Hartley nhanh (FHT: Fast Hartley Transform), một lõi MEM

(hoạt động như một bộ nhớ truy nhập trực tiếp), một lõi vi xử lý họ

80c51 và một lõi IP được sử dụng để đánh giá hiệu năng hoạt động

của mạng (NOC-pref). Mục đích triển khai hai lõi FHT trên hệ thống

là để đánh giá hai giải pháp điều khiển điện áp nguồn nhằm thay đổi

năng lượng động được áp dụng trên chip này. Một mặt, một bộ chuyển

đổi điện áp DC-DC cảm ứng tích hợp kiểu buck-boost tiên tiến được

sử dụng để thay đổi điện áp và tần số cấp cho khối FHT2 (được lập

trình thông qua 80c51). Mặt khác, kỹ thuật điều khiển điện áp và tần

số thích nghi cục bộ (LAVFS: Locally Adaptive Voltage and

Frequency Scaling) được áp dụng cho các lõi TRX-OFDM, MEM,

FHT1 để cho phép chuyển điện áp nguồn cấp cho các lõi này theo

những chế độ điện áp khác nhau ( và ). Ngoài ra, để giảm

mức tiêu thụ năng lượng tĩnh của hệ thống, kỹ thuật siêu cắt (UCO:

ultra-cut-off) [95] cũng được áp dụng. Kỹ thuật siêu cắt UCO cho

phép điều khiển các bộ chuyển mạch công suất PMOS nhằm duy trì

dòng rò tối thiểu khi lõi IP ở chế độ tạm ngừng hoạt động (stand-by).

Bên cạnh đó, để giảm tối đa năng lượng tiêu thụ tĩnh gây ra bởi các

dòng rò, các bộ định tuyến trong mạng cũng được thiết kế để tự động

chuyển về chế độ ngừng cấp nguồn nếu như không có dữ liệu được

chuyển qua nó.

Chiến lược quản lý năng lượng của hệ thống ALPIN được lập

trình bởi CPU 80c51. Vi xử lý này sẽ điều khiển các hoạt động thay

đổi điện áp thông qua một khối quản lý nguồn cục bộ (Local Power

Manager) được tích hợp vào trong bộ phối ghép mạng. Tùy thuộc vào

sự tương quan giữa hiệu năng hoạt động và năng lượng tiêu thụ mà

quá trình điều khiển điện áp và tần số diễn ra trong suốt quá trình hoạt

động tính toán và truyền thông của từng lõi IP. Một vấn đề đặt ra là

làm thế nào để đưa các lõi IP cũng như bộ định tuyến mạng quay lại

chế độ hoạt động bình thường sau khi được đặt vào chế độ ngừng hoạt

động hay bị ngắt nguồn nuôi. Để thực hiện điều đó, trong thiết kế hệ

116 Mạng trên chip

thống ALPIN có hai tín hiệu điều khiển chung toàn hệ thống. Bộ vi xử

lý sẽ điều khiển, tác động để đưa các lõi IP cũng như bộ định tuyến

mạng quay lại chế độ hoạt động bình thường thông qua hai tín hiệu

này. Lúc này, bộ vi xử lý sẽ nắm quyền điều khiển trực tiếp việc ngắt

nguồn, cũng như quá trình tái khởi động các đơn vị trên hệ thống.

Để đảm bảo kỹ thuật DVS hiệu quả trong từng vùng điện áp riêng

biệt, các quá trình điều khiển đều được triển khai thực thi ở mức phần

cứng với độ trễ giảm thiểu (so với việc triển khai các quá trình điều

khiển bằng phần mềm ở mức thấp). Nhờ việc áp dụng phương pháp

điều khiển sử dụng điều chế độ rộng xung (PWM: Pulse-Width

Modulation) vào trong quá trình chuyển mức điện áp và ,

hoạt động của các lõi IP vẫn diễn ra bình thường trong suốt quá trình

chuyển mức điện áp theo kỹ thuật DVS.

Hình 5-9: Bản layout và đóng vỏ của vi mạch ALPIN [96].

Sau đây là một số thông số kỹ thuật chính của vi mạch ALPIN

được chế tạo:

Công nghệ chế tạo: công nghệ CMOS 65nm của hãng

STMicroelectronics.

Chín bộ định tuyến mạng (trong đó, sáu bộ định tuyến được

trang bị kỹ thuật Power-Down và ba bộ định tuyến trang bị kỹ thuật

thiết kế kiểm tra [96]).

Độ phức tạp của vi mạch ALPIN: 800 kGEs, 150 pads, 4

(phần lõi), 7 (bao gồm pads), 9 miền nguồn nuôi, 6 miền tần số.

OFDMFHT1

FHT2

DC-

DC

MEM

80c51

RTW RTW RTW

RPD RPD RPD

RPD

RPD

RPD

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 117

Các kết quả chính của mạng trên chip ALPIN: thông lượng của

các bộ định tuyến là 550 MFlit/s, xung nhịp đồng hồ trong dải 120 MHz

÷ 320 MHz, thông lượng giao tiếp SAS là 200 MFlit/s.

b) Kiến trúc điều khiển tần số và điện áp tự thích nghi trong

mạng trên chip ALPIN

Để có thể tích hợp quá trình điều khiển tần số và điện áp động

DVFS trong các lõi IP, Beigne và đồng nghiệp bổ sung một số khối

chức năng bổ trợ trong mỗi lõi IP. Hình 5-10 mô tả một đơn vị mạng

hoàn chỉnh gồm lõi IP, bộ định tuyến và các khối chức năng bổ trợ [97].

Hình 5-10: Một đơn vị mạng hoàn chỉnh trong ALPIN [97].

Các khối chức năng bổ trợ này bao gồm:

Khối giao tiếp mạng (NI: Network Interface) kết hợp với khối

quản lý nguồn cục bộ (LPM: Local Power Manager). Nhiệm vụ của

khối NI là cung cấp các cơ chế truyền thông cho phép gửi và nhận các

gói tin của mạng. Khối quản lý nguồn cục bộ LPM kiểm soát các chế

độ cung cấp nguồn cục bộ để điều khiển khối cấp nguồn (PSU: Power

Supply Unit) và khối tạo tín hiệu xung nhịp đồng hồ cục bộ (LCG:

Local Clock Generation).

118 Mạng trên chip

Khối điều khiển xung nhịp bao gồm một giao tiếp SAS

(Synchronous - Asynchronous - Synchronous), một bộ tạo tín hiệu

xung đồng hồ cục bộ và một giao diện lập trình dòng trễ (delay line

programming interface) sử dụng trong kỹ thuật tạm dừng xung nhịp

đồng hồ (Pausable Clock) [97]. Khối giao tiếp SAS cho phép thực

hiện giao tiếp truyền thông dữ liệu giữa lõi IP (được thiết kế bởi lô-gic

đồng bộ) và bộ định tuyến (được thiết kế bởi lô-gic không đồng bộ).

Khối cấp nguồn (PSU) bao gồm một khối UCO (Ultra-Cut-Off)

kết hợp với các chuyển mạch công suất và một khối cung cấp điện áp

nguồn Hopping. Các bộ UCO kết hợp với các SCCMOS (Super-

Cut-Off CMOS) được sử dụng để đóng ngắt nhanh những lõi IP

không cần hoạt động. Mục đích là để ngăn dòng rò qua các transistor,

từ đó giảm được năng lượng tiêu thụ tĩnh trên lõi IP. Khối

Hopping được sử dụng để cung cấp điện áp cho quá trình điều

khiển tần số và điện áp động DVFS. Ngoài ra, khối cấp nguồn PSU

này cũng bao gồm cả một số bộ chuyển đổi mức điện áp.

Trong mỗi bộ định tuyến cũng sẽ được tích hợp một kiến trúc tự

động kiểm tra mức độ hoạt động truyền thông tại nút mạng đó theo

phương pháp đề xuất ở [98]. Kiến trúc này cho phép xác định thời

điểm nào bộ định tuyến đó không cần phải hoạt động và tự động ngắt

nguồn để giảm năng lượng tiêu thụ tĩnh ở bộ định tuyến đó.

Nhờ việc sử dụng khối UCO để điều khiển các SCCMOS, dòng

rò qua các lõi IP (ở chế độ OFF) giảm khoảng 8 lần so với khi sử dụng

các bộ chuyển mạch công suất CMOS đa ngưỡng điện áp MTCMOS

(Multiple Threshold CMOS). Năng lượng tiêu thụ động của lõi IP ở

chế độ LOW cũng giảm khoảng 10 lần so với năng lượng tiêu thụ của

lõi IP đó ở chế độ HIGH. Hiệu quả về mặt tiêu thụ năng lượng khi

hoạt động ở chế độ HOPPING là 97% nếu tỷ lệ giữa và là

50%. Việc tích hợp nhiều kỹ thuật thiết kế công suất thấp trên hệ

thống ALPIN cho phép các tác giả thử nghiệm nhiều phương án, chiến

lược giảm công suất tiêu thụ khác nhau để đánh giá hiệu quả của các

phương án.

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 119

5.4.2. Mô hình điều khiển tần số và điện áp dựa trên kỹ thuật PSTR

Zakaria và đồng nghiệp [99] đã thiết kế một mạng trên chip sử

dụng kỹ thuật GALS để phân chia các vùng điện áp và tần số hoạt

động khác nhau. Bằng cách đưa ra một phương pháp mới để tự động

điều chỉnh tần số và điện áp dựa vào các quá trình biến thiên trong

mỗi miền điện áp, các tác giả hướng đến việc đảm bảo được hiệu năng

hoạt động nhưng đồng thời giảm được năng lượng tiêu thụ của hệ

thống. Kỹ thuật điều khiển chính được đề xuất trong công trình này là

một thiết kế được gọi là PSTR (Programmable Self-Timed Ring);

trong đó, một bộ điều khiển chính sẽ giám sát lưu lượng tải trên hệ

thống cũng như các quá trình biến đổi của một số tham số trong hệ

thống để tự động điều chỉnh các giá trị tần số và điện áp cung cấp. Kỹ

thuật này được áp dụng cho mỗi miền điện áp/tần số trong hệ thống

GALS-NoC để giám sát, quản lý về mặt hiệu năng, đồng thời thực

hiện quá trình điều khiển DVFS. Hình 5-11 mô tả kiến trúc mô hình

điều khiển tần số và điện áp PSTR nêu trên.

Hình 5-11: Kiến trúc PSTR quản lý năng lượng/hiệu năng

cho mỗi vùng điện áp/tần số [99].

Chức năng của từng khối trong kiến trúc này được mô tả cụ thể

như sau:

Khối cảm biến đo tốc độ (Speed Sensor) thực hiện việc giám sát

tốc độ của vi xử lý MIPS ở chế độ thời gian thực. Việc giám sát tốc độ

120 Mạng trên chip

này là cơ sở để bộ điều khiển số đưa ra quyết định thay đổi tần số

xung nhịp đồng hồ cung cấp cho vi xử lý.

Khối giám sát hoạt động (Activity Node) thực hiện việc giám

sát hoạt động truyền thông của hệ thống mạng. Nó sẽ cung cấp kết quả

cho bộ điều khiển số để điều khiển điện áp/tần số nhằm đánh giá ước

lượng về hiệu năng của một số tham số cục bộ so với các khối xử lý

khác (ví dụ, tần số cục bộ). Giá trị ước lượng của các tham số sẽ được

xem như là giới hạn trên của tham số đó trong quá trình hoạt động.

Khối mạch vòng không đồng bộ khả trình (Programmable

Asynchronous Ring) về bản chất là mạch tạo dao động khả trình, có

nhiệm vụ tạo ra các tần số theo yêu cầu cho từng khối xử lý.

Khối chuyển đổi điện áp DC-DC chịu trách nhiệm cung cấp

điện áp hoạt động phù hợp theo tín hiệu điều khiển từ bộ điều khiển số

(Digital Controller). Lối ra của khối chuyển đổi điện áp là giá trị điện

áp cung cấp cho vi xử lý hoạt động.

Bộ điều khiển số Digital Controller sẽ thực hiện việc quản lý

chuyển đổi điện áp/tần số dựa trên các tham số từ Speed Sensor và từ

yêu cầu của phần mềm điều khiển (hệ điều hành). Sau khi so sánh giá

trị của tham số, bộ Digital Controller sẽ gửi tín hiệu điều khiển điện áp

đến khối DC-DC Converter và tín hiệu điều khiển tần số đến PSTR để

thay đổi điện áp và tần số hoạt động một cách phù hợp.

Với phương pháp điều khiển DVFS, Zakaria và đồng nghiệp sử

dụng thuật toán điều khiển như trình bày ở tài liệu [100]. Theo đó, họ

sử dụng hai mức điện áp { } và ba mức tần số

để thay đổi tùy thuộc vào đánh giá hiệu

quả năng lượng tiêu thụ của thuật toán này. Một tiến trình khởi chạy

thông thường của hệ thống được chia làm hai quá trình. Trong quá

trình đầu tiên, hệ thống sẽ hoạt động ở mức điện áp và với tần số

cực đại để đạt tốc độ hoạt động tối đa (hiệu năng cao nhất). Sau

đó, hệ thống sẽ chuyển sang hoạt động ở mức điện áp thấp và tần

số hoạt động thấp hơn . Thông qua việc dự đoán các hoạt động

tiếp theo của hệ thống, Zakaria và đồng nghiệp đã xây dựng một quy

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 121

luật điều khiển để tính toán thời gian chuyển từ điện áp xuống

điện áp và ngược lại.

Zakaria và đồng nghiệp đã thực thi kỹ thuật đề xuất trên với lõi vi

xử lý MIPS R2000 trên công nghệ CMOS 45nm của hãng

STMicroelectronics để kiểm chứng hoạt động và hiệu quả của nó. Với

hệ thống mạng trên chip có 8 phân khu GALS, kỹ thuật đề xuất có thể

tiết kiệm được khoảng 50,7% công suất tiêu thụ động, 19,92% năng

lượng tiêu thụ với chi phí phần cứng tăng 4,15%. Với các hệ thống có

nhiều lõi IP trong một phân khu GALS thì kỹ thuật này sẽ phát huy

hiệu quả cao hơn.

5.4.3. Kiến trúc Producer - Consumer FIFO

Pillamari và đồng nghiệp đề xuất một phương pháp phân chia

vùng điện áp/tần số dựa trên việc kết hợp các lõi IP lân cận, cùng sử

dụng một giá trị điện áp nguồn và xung nhịp hoạt động [57]. Các lõi

IP này được liên kết cùng với nhau để tạo thành một vùng điện áp/tần

số độc lập (VFI: Voltage Frequency Island). Việc liên kết các lõi IP

được dựa trên một thuật toán để ước lượng lưu lượng tải của lõi IP khi

làm việc để từ đó tính toán ra các giá trị điện áp và tần số cần thiết.

Mục đích của phương pháp này là để có thể áp dụng kỹ thuật điều

khiển điện áp và tần số động DVFS vào trong cấu trúc mạng nhưng

không làm tăng độ phức tạp của hệ thống lên quá nhiều.

Pillamari và đồng nghiệp đã áp dụng kỹ thuật tiên đoán dựa vào

bộ lọc Kalman để dự đoán được lưu lượng tải của lõi IP. Họ đã đề

xuất một kiến trúc FIFO mới có tích hợp bộ lọc Kalman để dự đoán

lưu lượng tải của từng vùng điện áp/tần số độc lập VFI. Kiến trúc

FIFO này được gọi là Producer – Consumer FIFO. Bên cạnh đó,

Pillamari và đồng nghiệp cũng đã đưa ra một thuật toán để cho phép

tính toán và gán các lõi IP có cùng điện áp, tần số và trong cùng một

VFI. Lưu đồ thuật toán này được mô tả như trong Hình 5-12. Nhờ

phân chia thiết kế thành các vùng điện áp/tần số độc lập VFI, kỹ thuật

điều khiển điện áp và tần số động DVFS được áp dụng cho từng vùng

VFI nhằm giảm công suất tiêu thụ của mạch.

122 Mạng trên chip

Hình 5-12: Thuật toán để xác định các vùng điện áp/tần số độc lập VFI [57].

Để các vùng điện áp/tần số độc lập VFI có thể trao đổi dữ liệu

với nhau, mô hình Producer – Consumer FIFO được thiết kế như mô

tả trong Hình 5-13 [57]. Trong đó, vùng điện áp/tần số độc lập VFI1

(được gọi là Producer VFI hay P-VFI) sẽ thực hiện việc ghi dữ liệu

vào FIFO và vùng điện áp/tần số độc lập VFI2 (được gọi là Consumer

VFI hay C-VFI) sẽ đọc dữ liệu đó từ FIFO. Tại mỗi thời điểm, chỉ có

một hoạt động đọc hoặc ghi là được thực hiện. Vùng điện áp/tần số

độc lập P-VFI chỉ có thể ghi dữ liệu nếu FIFO chưa đầy và vùng điện

áp/tần số độc lập C-VFI chỉ có thể đọc dữ liệu khi FIFO không trống.

Hình 5-13: Cấu trúc của Producer-Consumer FIFO.

ProducerPart

clk_put

Multi clockFirst-in First-out

ConsumerPart

data_put

req_put

data_get

req_get

full empty

Thao tác ghi Thao tác đọc

clk_get

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 123

Để có thể giám sát và thay đổi tần số trong từng VFI, Pillamari và

đồng nghiệp đã giới thiệu một kiến trúc điều khiển tần số động DFS

như mô tả trông Hình 5-14 [57].

Hình 5-14: Kiến trúc DFS cho VFI.

Với kiến trúc này, một khối giám sát được sử dụng để đếm số

lượng xung nhịp cần cho mỗi hoạt động đọc/ghi dữ liệu trong một

khoảng thời gian lấy mẫu . Hệ số bước nhảy tần số của từng

vùng điện áp/tần số độc lập VFI được tính thông qua giá trị xung nhịp

thu được ở vùng điện áp/tần số độc lập P-VFI và ở vùng điện áp/tần số

độc lập C-VFI. Đây cũng chính là các giá trị được sử dụng trong thuật

toán dự đoán tải hoạt động để xác định tần số hoạt động cực đại của

hệ thống.

Một giải pháp khác cũng có cơ chế điều khiển tần số và điện áp

động dựa vào FIFO được chúng tôi đề xuất và áp dụng cho bộ mã hóa

H.264/VENGME1 [70]. Điểm khác biệt ở đây là chúng tôi giám sát

mức độ sử dụng của các FIFO trên đường truyền thông giữa các khối

xử lý để đưa ra quyết định điều khiển tần số hoạt động của các khối xử

lý này nhằm tối ưu công suất tiêu thụ (thông qua bộ điều khiển PI,

xem Hình 5-15). Kỹ thuật quản lý công suất tiêu thụ dựa vào mức sử

dụng FIFO (FIFO-level based Power Management) đề xuất được tổng

1 VENGME (Video Encoder for Next Generation Equipment): Vi mạch mã hóa

video theo chuẩn H.264/AVC được phát triển bởi Phòng thí nghiệm trọng điểm

Hệ thống tích hợp thông minh, Trường Đại học Công nghệ, Đại học Quốc gia Hà

Nội. Sản phẩm đoạt Giải thưởng Nhân tài Đất Việt năm 2015.

124 Mạng trên chip

hợp và thực thi với công nghệ 28nm của hãng STMicroelectronics.

Giải pháp đề xuất có thể giảm công suất tiêu thụ của khối NAL

(Network Abstraction Layer) tới 59,3%. Nếu áp dụng phương pháp

điều khiển này với nhiều miền điện áp khác nhau thì hiệu quả tối giản

công suất tiêu thụ còn khả quan hơn nữa.

Hình 5-15: Tích hợp bộ điều khiển PI trong nền tảng hệ thống VENGME.

5.4.4. Bộ phối ghép mạng công suất thấp theo chuẩn OCP

Chouchene và đồng nghiệp [91] đã giới thiệu một cấu trúc phần

cứng giao diện mạng sử dụng chuẩn giao tiếp lõi mở (OCP: Open

Core Protocol) để giảm năng lượng tiêu thụ trong một mạng NoC

dạng 2D-mesh bằng cách sử dụng phương pháp chặn cấp xung nhịp

đối với các đơn vị mạng không hoạt động. Bộ giao diện mạng NI được

thiết kế như một cầu nối giữa giao tiếp OCP với kết cấu chuyển mạch

của NoC. Nó sẽ đóng vai trò đồng bộ về mặt thời gian giữa lõi IP có

giao tiếp OCP với NoC, đóng gói dữ liệu truyền từ OCP thành các flit

của NoC và ngược lại. Đồng thời, bộ giao diện mạng cũng đảm nhận

vai trò tính toán các thông tin về định tuyến và là bộ đệm cho các flit

trong một số trường hợp. Bộ giao diện mạng NI được thiết kế theo đặc

tả kỹ thuật của giao thức giao tiếp lõi mở OCP phiên bản 2.2 và hỗ trợ

các quá trình truyền: đọc/ghi đơn và đọc/ghi theo khối.

VENGME platform

EC-NAL module

NALSRAM

Intra prediction

Inter prediction

Transformation-Quantization

Async. FIFO

Data Data

Producer P(EC)

Consumer C(NAL)

fP = 50MHz

fC

Write enable

Full

Read enable

Empty

Write clock Read clock

Main clock

Control signalsSynchronizer

SynchronizerStatus signals

PI controller

Frequencydivider

Clockgating

fMax = 100MHz

Max clock

FIFO level

fsel

Clock generator

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 125

Với giải pháp đề xuất, các tác giả đã thiết kế bốn bộ giao diện

mạng chủ (MNI: Master Network Interface). Trong đó, mỗi bộ giao

diện mạng chủ MNI lại được phân chia thành hai khối con: một cho

kênh yêu cầu và một cho kênh phản hồi, xem Hình 5-16. Nhiệm vụ

chính của bộ giao diện mạng chủ MNI là nhận yêu cầu từ lõi IP chủ và

đóng gói yêu cầu này để truyền lên mạng, đồng thời nó cũng đảm

nhận việc nhận gói dữ liệu từ mạng, giải mã gói và chuyển dữ liệu cho

lõi IP chủ. Do đó, kiến trúc của MNI được thiết kế với hai luồng dữ

liệu, một cho quá trình yêu cầu và một cho quá trình phản hồi.

Hình 5-16: Kiến trúc của bộ MNI [91].

Với thiết kế luồng dữ liệu cho MNI như trên, Chouchene và đồng

nghiệp chia kiến trúc của MNI thành bốn khối chức năng: bộ điều

khiển FIFO, bộ tạo tiêu đề (Header Builder), khối giao tiếp mạng,

khối tạm ngừng cấp xung nhịp đồng hồ (Stoppable Clock). Đây cũng

chính là các khối cơ bản để các tác giả có thể áp dụng kỹ thuật tạm

ngừng cấp xung nhịp nhằm tiết kiệm năng lượng tiêu thụ. Việc giảm

năng lượng tiêu thụ của bộ giao diện mạng chủ MNI được thực hiện

126 Mạng trên chip

thông qua khối tạm ngừng cấp xung nhịp đồng hồ (Stoppable Clock).

Khối tạm ngừng cung cấp xung nhịp đồng hồ sẽ chịu trách nhiệm

cung cấp hoặc ngừng cung cấp xung nhịp đồng hồ cho các khối điều

khiển FIFO và Header Builder trong trường hợp những khối này tạm

ngừng hoạt động.

Kết quả thực nghiệm cho thấy giải pháp đề xuất của Chouchene

và đồng nghiệp có thể giảm được 63% công suất tiêu tán so với khối

MNI ban đầu đối với luồng dữ liệu điều khiển dựa vào cơ chế bắt tay

với chi phí phần cứng là 19%. Còn đối với luồng dữ liệu điều khiển

dựa vào credit thì công suất tiêu tán giảm được là 37% trong khi chi

phí phần cứng tăng lên chỉ 2%. Một vấn đề khác là tần số hoạt động

của hệ thống bị giảm khoảng 21% khi thực hiện giải pháp này.

Bảng 5-2 trình bày so sánh giữa các kỹ thuật thiết kế nhằm giảm

năng lượng cho một mạng trên chip đề cập trong phần trên.

Bảng 5-2: So sánh giữa các kỹ thuật thiết kế nhằm giảm công suất tiêu thụ

cho mạng trên chip

Kỹ thuật

thiết kế được

áp dụng

Khối kiến trúc

trên NoC được áp

dụng kỹ thuật

giảm công suất

tiêu thụ

Công nghệ

thực thi,

đánh giá

Hiệu quả

đạt được

Kiến trúc

ALPIN

[94]

Điều khiển tỷ

lệ điện áp

động (DVS).

Ultra-Cut-Off

Toàn bộ NoC bao

gồm: các lõi IP và

bộ định tuyến đi

kèm.

CMOS

65nm,

ST

Microelectr

onics.

- Công suất

tiêu thụ động

ở chế độ LOW

giảm 10 lần so

với chế độ

HIGH

- Công suất

tiêu thụ tĩnh

giảm 8 lần khi

sử dụng loại

transistor công

suất SC-

CMOS

Chương 5. Tối ưu năng lượng tiêu thụ cho mạng trên chip 127

Kỹ thuật

PSTR [99]

Điều khiển tỷ

lệ điện áp và

tần số động

(DVFS)

Từng phân vùng

của NoC (gồm

một số lõi IP và

bộ định tuyến hoạt

động ở cùng một

mức điện áp).

CMOS

45nm,

ST

Microelectr

onics

Công suất tiêu

thụ động của

một NoC giảm

được tối đa

51,42%.

Kiến trúc

Producer -

Consumer

FIFO [57]

Điều khiển tỷ

lệ điện áp và

tần số động

(DVFS)

Từng phân vùng

của NoC (gồm một

số lõi IP và bộ

định tuyến hoạt

động ở cùng một

mức điện áp).

CMOS

90nm,

TSMC.

Giảm được tối

đa 32,2%

công suất tiêu

thụ động của

một NoC.

Bộ phối

ghép

mạng công

suất thấp

chuẩn

OCP [91]

Chặn cấp

xung nhịp

Bộ phối ghép mạng

(NI).

FPGA

Xilinx

Virtex5

Giảm được từ

37% đến 63%

công suất tiêu

thụ của một

bộ NI

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

Công suất tiêu thụ của hệ thống trên chip luôn là một thách thức

vô cùng khó khăn đối với các nhà thiết kế, quyết định sự thành bại của

một sản phẩm khi đưa ra thị trường. Điều này đặc biệt đúng đối với

các hệ thống có độ tích hợp cao, được sử dụng trong các ứng dụng di

động với nguồn nuôi là pin hay ắc quy có giới hạn về công suất. Việc

tìm kiếm một giải pháp tối ưu công suất tiêu thụ luôn là điều mà các

nhà thiết kế hệ thống trên chip phải nghĩ tới. Trong chương này, chúng

ta đã tìm hiểu về các phương pháp tối ưu công suất tiêu thụ cho các hệ

thống trên chip, điển hình là các hệ thống trên chip dựa trên mô hình

mạng (mạng trên chip). Chương tiếp theo sẽ giới thiệu việc ứng dụng

lô-gic mờ trong phát triển một giải pháp thiết kế mạng trên chip công

suất thấp.

Chương 4. Thiết kế, mô hình hòa vĖ kiểm chứng bộ giao tiếp mạng 128

Chương 6

ỨNG DỤNG LÔ-GIC MỜ

TRONG THIẾT KẾ MẠNG TRÊN CHIP CÔNG SUẤT THẤP

Như đã trình bày ở chương trước, có nhiều kỹ thuật được áp dụng

để giảm công suất tiêu thụ của một hệ thống trên chip. Với hệ thống

trên chip được xây dựng dựa trên mô hình vi mạng thì việc triển khai

các kỹ thuật thay đổi mức điện áp, tần số hoạt động có phần thuận lợi

hơn nhờ tính mô-đun hóa của hệ thống dạng mạng trên chip. Một trong

những vấn đề cần quan tâm khi áp dụng các kỹ thuật thay đổi mức điện

áp và tần số hoạt động đó là việc đưa ra quyết định thay đổi vừa làm sao

có thể tối thiểu công suất tiêu thụ của hệ thống nhưng đồng thời vẫn

phải đảm bảo hiệu năng hoạt động của hệ thống ở mức đáp ứng yêu cầu

của ứng dụng. Một trong những phương pháp mà chúng tôi đã nghiên

cứu, triển khai đó là ứng dụng lô-gic mờ trong thiết kế mạng trên chip

công suất thấp. Chương này sẽ đề cập trước hết đến thuật toán lô-gic

mờ và một số mô hình cơ bản có thể triển khai trong thiết kế vi mạch

công suất thấp. Tiếp đó, các phần còn lại của chương sẽ trình bày việc

thực thi thuật toán lô-gic mờ trong thiết kế mạng trên chip có công suất

tiêu thụ thấp. Kết quả nghiên cứu này được công bố trong luận án tiến

sỹ của Phan Hải Phong, thực hiện tại Phòng thí nghiệm trọng điểm Hệ

thống tích hợp thông minh, Trường Đại học Công nghệ, Đại học Quốc

gia Hà Nội [101] dưới sự hướng dẫn của tác giả. Phần nội dung chương

này được biên tập lại từ Luận án.

6.1. Giới thiệu về thuật toán lô-gic mờ

Năm 1965, giáo sư Lotfi Aliasker Zadeh, Đại học California tại

Berkeley (Hoa Kỳ) đã đề xuất lý thuyết tập mờ [102]. Tiếp đó, năm 1973,

ông công bố lý thuyết về lô-gic mờ. Tại thời điểm lý thuyết tập mờ

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 129

được công bố, hầu hết các nhà toán học cũng như các kỹ sư điều khiển

tự động chưa hoàn toàn đón nhận khái niệm này. Tuy nhiên, cùng với

sự phát triển của công nghiệp, lý thuyết này đã có những ứng dụng

ngày càng quan trọng trong nhiều lĩnh vực khác nhau, từ lý thuyết

điều khiển cho đến trí tuệ nhân tạo (Artificial Intelligence).

Đặc biệt, vào thập niên 80, khi các kỹ sư Nhật Bản áp dụng thành

công lô-gic mờ vào các hệ thống điều khiển tự động (hệ thống xử lý

nước của Fuji Electric hay hệ thống xe điện ngầm của Hitachi...) thì

lô-gic mờ càng có vị trí quan trọng trong lĩnh vực này. Đến nay,

những lĩnh vực mà lý thuyết lô-gic mờ đã được áp dụng thành công có

thể kể đến là: điều khiển tự động, tiết kiệm năng lượng, xử lý dữ liệu,

xử lý tín hiệu… và đặc biệt là lĩnh vực thiết kế rô-bốt. Hiện nay, rất

nhiều nghiên cứu đang tập trung vào việc thiết kế các rô-bốt có

phương thức hành xử tương tự con người dựa trên các thuật toán về

lô-gic mờ. Nhờ đó, các rô-bốt thế hệ mới có thể có các “suy nghĩ” và

hoạt động giống với con người hơn so với các thế hệ rô-bốt trước đó

[103, 104].

Trước đây, các hệ thống xử lý lô-gic mờ thường được triển khai

dưới dạng các phần mềm. Ưu điểm của hướng tiếp cận này là cho

phép việc triển khai hệ thống nhanh hơn, dễ dàng sửa đổi hệ thống khi

cần thiết, giảm được thời gian phát triển và đặc biệt là chi phí phát

triển thấp. Mặc dù vậy, một trong những nhược điểm của các hệ thống

phần mềm đó chính là tốc độ xử lý và tính toán bị giới hạn. Điều này

đã ảnh hưởng đến việc triển khai các thuật toán lô-gic mờ lên những

hệ thống thời gian thực. Chính điều này đã thúc đẩy các nhà nghiên

cứu phát triển thêm những hệ lô-gic mờ có tốc độ xử lý và tính toán

nhanh hơn. Một trong những hướng phát triển hiện nay cho hệ thống

lô-gic mờ đó chính là thực thi chúng ở dạng các lõi xử lý cứng để tăng

tốc độ của hệ thống [105, 80, 106, 107]. Với hướng tiếp cận này, các

hệ thống xử lý lô-gic mờ có thể đạt đến hàng triệu phép tính toán/suy

luận lô-gic mờ trong một giây (FLIPS: Fuzzy Logical Inference per

Second) [108]. Nakamura và các cộng sự [109] cũng đã xây dựng

được một lõi xử lý lô-gic mờ với 12 đầu vào có độ phân giải 16 bit và

tốc độ tính toán cũng đạt đến FLIPS.

130 Mạng trên chip

6.1.1. Lý thuyết mờ

a) Tập mờ

Tập kinh điển

Khái niệm tập hợp dựa trên nền tảng lô-gic được định nghĩa như

là sự sắp xếp chung các đối tượng có cùng tính chất và được gọi là

phần tử của tập hợp đó. Cho một tập hợp , một phần tử thuộc

được ký hiệu là: . Thông thường ta dùng hai cách để biểu diễn

tập kinh điển, đó là:

Liệt kê các phần tử của tập hợp. Ví dụ, tập {xe đạp, xe

máy, xe khách, xe tải}.

Biểu diễn tập hợp thông qua đặc điểm và tính chất tổng quát

của các phần tử. Ví dụ, tập các số thực ( ), tập các số tự nhiên ( ).

Để biểu diễn một tập hợp trên tập nền , ta sử dụng hàm liên

thuộc , với:

{

(6-1)

Ký hiệu thỏa mãn một số tính chất nào đó . Ta nói,

tập được định nghĩa trên nền tập . Ví dụ, việc mô tả hàm liên

thuộc của tập số thực từ -7 đến 7 ( ) được

thể hiện như ở Hình 6-1.

Hình 6-1: Hàm liên thuộc của tập kinh điển .

Định nghĩa tập mờ

Các tập mờ hay tập hợp mờ là sự mở rộng của lý thuyết tập hợp

cổ điển và được dùng trong lô-gic mờ. Trong lý thuyết tập hợp cổ

điển, quan hệ thành viên của các phần tử trong một tập hợp được đánh

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 131

giá theo kiểu nhị phân với điều kiện rõ ràng: “một phần tử hoặc thuộc

hoặc không thuộc về tập hợp”. Trái lại, lý thuyết tập mờ cho phép

đánh giá từ từ về quan hệ thành viên giữa một phần tử và một tập hợp.

Quan hệ thành viên này được mô tả bằng một hàm liên thuộc

(membership function) .

Tập hợp mờ là tập hợp mà mỗi thành phần là một bộ số. Như vậy,

ta nói là tập mờ nếu có biểu diễn:

( ) (6-2)

trong đó, là tập mờ trên không gian nền nếu được xác định

bởi hàm:

: (6-3)

Trong đó:

: là tập nền hay được gọi là tập vũ trụ của tập mờ .

là hàm liên thuộc.

là độ liên thuộc của vào tập mờ .

Các tập mờ được coi là một mở rộng của lý thuyết tập hợp cổ

điển là vì với một không gian tham chiếu (không gian nền) nhất định,

một hàm liên thuộc có thể giữ vai trò của một hàm đặc trưng, ánh xạ

mỗi phần tử tới một giá trị 0 hoặc 1 như trong khái niệm cổ điển.

Trong khái niệm tập hợp kinh điển hàm liên thuộc của tập , chỉ có

một trong hai giá trị là “1” nếu hoặc “0” nếu .

Tuy nhiên, cách biểu diễn hàm liên thuộc như trên sẽ không phù

hợp với những tập được mô tả “mờ”. Ví dụ, ta cần mô tả tập gồm

các số thực gần bằng 5:

(6-4)

Khi đó, ta không thể khẳng định chắc chắn số 4 có thuộc tập

hay không mà ta chỉ có thể nói nó thuộc tập bao nhiêu phần trăm.

Lúc này, ta phải coi hàm liên thuộc có giá trị trong khoảng từ 0

đến 1 tức là: (Hình 6-2).

132 Mạng trên chip

Hình 6-2: Hàm phụ thuộc của tập “mờ” .

Từ phân tích trên ta có định nghĩa như sau: Tập mờ A xác định

trên tập kinh điển M là một tập mà mỗi phần tử của nó được biểu diễn

bởi một cặp giá trị . Trong đó, và là ánh xạ. Ánh

xạ được gọi là hàm liên thuộc của tập mờ . Tập kinh điển

được gọi là cơ sở của tập mờ .

Các hàm liên thuộc của tập ( ) được sử dụng để tính độ phụ

thuộc của một phần tử nào đó theo hai cách: tính trực tiếp (nếu

có công thức ở dạng tường minh) hoặc tra bảng (nếu ở dạng bảng).

Các hàm liên thuộc có dạng “trơn tru” được gọi là hàm liên

thuộc kiểu . Đối với hàm liên thuộc kiểu , do các công thức biểu

diễn có độ phức tạp lớn nên thời gian tính độ phụ thuộc cho một

phần tử lâu hơn. Trong kỹ thuật điều khiển mờ thông thường, các hàm

liên thuộc kiểu thường được thay gần đúng bằng một hàm tuyến tính

từng đoạn. Một hàm liên thuộc có dạng tuyến tính từng đoạn được gọi

là hàm liên thuộc có mức chuyển đổi tuyến tính (Hình 6-3).

Hình 6-3: Hàm liên thuộc tuyến tính từng đoạn.

Hàm liên thuộc ở trên với và chính là

hàm liên thuộc của một tập nền.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 133

Các thông số đặc trưng cho tập mờ

Trong một tập mờ, các thông số đặc trưng cho tập mờ đó bao

gồm: độ cao, miền xác định và miền tin cậy (như được mô tả như

trong Hình 6-4).

Hình 6-4: Các thông số đặc trưng của tập mờ.

Độ cao của một tập mờ (định nghĩa trên cơ sở tập ) là giá

trị lớn nhất trong các giá trị của hàm liên thuộc.

s (6-5)

Một tập mờ có ít nhất một phần tử có độ phụ thuộc bằng 1 được

gọi là tập mờ chính tắc ( ). Ngược lại, một tập mờ với

gọi là tập mờ không chính tắc.

Miền tin cậy của tập mờ trên nền là một tập là tập con

của thỏa mãn.

(6-6)

Miền xác định của tập mờ trên nền là một tập là tập con

của thỏa mãn.

(6-7)

b) Lô-gic mờ

Khái niệm

Lô-gic mờ (fuzzy logic) được phát triển từ lý thuyết tập mờ để

thực hiện lập luận một cách xấp xỉ thay vì lập luận chính xác theo

lô-gic cổ điển. Người ta hay nhầm lẫn mức độ đúng với xác suất.

134 Mạng trên chip

Tuy nhiên, hai khái niệm này hoàn toàn khác nhau. Độ đúng đắn của

lô-gic mờ biểu diễn độ liên thuộc với các tập được định nghĩa không rõ

ràng, chứ không phải khả năng xảy ra một biến cố hay điều kiện nào đó.

Để minh họa sự khác biệt, xét tình huống sau: A đang đứng trong

một ngôi nhà có hai phòng thông nhau: phòng bếp và phòng ăn. Trong

nhiều trường hợp, trạng thái của A là một tập hợp gồm hai biến cố:

hoặc là anh ta “trong bếp” hoặc “không ở trong bếp”. Nhưng vấn đề gì

sẽ xảy ra nếu A đứng tại cửa nối giữa hai phòng? Lúc này, anh ta có

thể được coi là “có phần ở trong bếp”. Việc định lượng trạng thái

“một phần” này cho ra một quan hệ liên thuộc đối với một tập mờ.

Chẳng hạn, nếu A chỉ thò một ngón chân cái vào phòng ăn, ta có thể

nói rằng A ở “trong bếp” đến 99% và ở trong phòng ăn là 1%. Một khi

anh ta còn đứng ở cửa thì không có một biến cố nào quyết định rằng A

hoàn toàn “ở trong bếp” hay hoàn toàn “không ở trong bếp”.

Lô-gic mờ cho phép độ liên thuộc có giá trị trong khoảng đóng 0

và 1. Nếu ở hình thức ngôn từ, các khái niệm không chính xác như

“hơi hơi”, “gần như”, “khá là” và “rất” là được chấp nhận. Cụ thể, nó

cho phép quan hệ thành viên không đầy đủ giữa thành viên và tập hợp.

Tính chất này có liên quan đến tập mờ và lý thuyết xác suất.

Biến ngôn ngữ

Biến ngôn ngữ có thể xem là một thành phần chính trong các hệ

thống lô-gic mờ. Một biến ngôn ngữ có thể xem như là sự kết hợp các

thành phần ngôn ngữ mô tả cùng một ngữ cảnh.

Ví dụ, trong trường hợp mô tả nhiệt độ, ta không chỉ có hai trạng

thái là “nóng” và “lạnh” mà còn có các trạng thái như “rất nóng”, “hơi

nóng”, “trung bình”, “hơi lạnh” và “rất lạnh”. Tất cả các trạng thái này

đều được dùng để mô tả nhiệt độ. Chúng được gọi là các tập ngôn

ngữ, mang một khoảng giá trị nào đó của biến ngôn ngữ và được vẽ

trên cùng một đồ thị. Các luật trong hệ lô-gic mờ sẽ mô tả hoạt động

của hệ thống. Các luật này sẽ dùng biến ngôn ngữ như là những từ

vựng để mô tả các tầng điều khiển trong hệ.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 135

Khái niệm biến ngôn ngữ đã được Zadeh đưa ra như sau [102]:

Một biến ngôn ngữ được xác định bởi bộ ( , , , ) trong đó:

là tên biến. Ví dụ: “nhiệt độ”, “tốc độ”, “độ ẩm”…

là tập các từ là các giá trị ngôn ngữ tự nhiên mà có thể nhận.

Ví dụ: là “tốc độ” thì có thể là {“chậm”, “trung bình”, “nhanh”}.

là miền các giá trị vật lý mà có thể nhận. Ví dụ: là “tốc

độ” thì có thể là {0 km/h, 1 km/h, …, 150 km/h}.

là luật ngữ nghĩa, ứng mỗi từ trong với một tập mờ

trong . Từ định nghĩa trên chúng ta có thể nói rằng biến ngôn ngữ là

biến có thể nhận giá trị là các tập mờ trên một vũ trụ nào đó.

6.1.2. Thiết kế hệ thống mờ

Một mô hình hệ thống lô-gic mờ sẽ bao gồm các yếu tố chính

sau: dữ liệu (đầu vào và đầu ra), các hàm chuyển đổi, các phép toán

lô-gic và các biến ngôn ngữ.

Dữ liệu cho hệ thống mờ được chia làm hai nhóm chính: dữ liệu

đầu vào và dữ liệu đầu ra. Mỗi nhóm lại chia ra dữ liệu rõ và dữ liệu mờ.

Các hàm liên thuộc thực hiện việc chuyển đổi từ dữ liệu rõ sang

dữ liệu mờ. Người thiết kế cần phải lựa chọn các hàm phục vụ cho

việc chuyển đổi phù hợp với mục tiêu của hệ thống. Thông thường có

bốn loại hàm thường được sử dụng trong các hệ thống mờ: hình tam

giác, hình thang, hình chuông và hình que.

Các phép toán của lô-gic mờ: lô-gic mờ cũng giống lô-gic thông

thường đều quy định về các phép toán như giao, hợp, loại trừ, cộng,

phủ định… Tuy nhiên, cách tính giá trị của mỗi phép toán lại khác so

với lô-gic thông thường. Các phép toán này ảnh hưởng rất nhiều đến

một thành phần quan trọng của hệ mờ đó là việc định khoảng giá trị.

Đây cũng là cơ sở cho việc thiết lập các luật trong hệ lô-gic mờ.

Biến ngôn ngữ: một biến ngôn ngữ sẽ quy định giá trị của một

trường cụ thể trong hệ thống. Giá trị của biến ngôn ngữ sẽ là dạng từ

ngữ. Thông thường, người ta gắn các khoảng giá trị số cho một từ ngữ

nào đó thể hiện được bản chất của biến.

136 Mạng trên chip

Các luật trong mô hình lô-gic mờ: đây là thành phần điều khiển

của một hệ thống lô-gic mờ. Các luật được thực hiện dựa trên câu lệnh

IF - THEN và một số phép toán lô-gic khác như AND, OR, NOT…

Trong một hệ thống, nếu tập luật càng chính xác thì hiệu quả của hệ

thống càng cao.

Để thiết lập một hệ thống mờ hoàn chỉnh, chúng ta cần xây dựng

các thành phần con của hệ thống như ở Hình 6-5.

Hình 6-5: Mô hình cơ bản của một hệ thống mờ.

Quá trình hoạt động của một hệ thống mờ có thể được mô tả như

sau: Đầu tiên các dữ liệu thực tế (dữ liệu rõ) sẽ được đưa vào đầu vào

của hệ thống. Qua bước mờ hóa (Fuzzification) ta sẽ thu được dữ liệu

“mờ” và kết quả này sẽ được sử dụng làm đầu vào cho quá trình xử lý

tiếp theo (Quá trình hợp thành - Fuzzy Engine). Dựa vào tập luật hợp

thành mà quá trình hợp thành sẽ tính toán và cho ra dữ liệu cần thiết cho

quá trình giải mờ (De–Fuzzification). Sau bước cuối cùng này ta sẽ có

kết quả là các dữ liệu rõ để dành cho quá trình điều khiển. Như vậy, về

cơ bản thì một hệ thống lô-gic mờ thường gồm ba quá trình chính:

Quá trình mờ hóa: thực hiện biến đổi các giá trị rõ đầu vào thành

một miền giá trị mờ với hàm liên thuộc và biến ngôn ngữ tương ứng.

Quá trình hợp thành: biến đổi các giá trị mờ của biến ngôn ngữ

đầu vào thành các giá trị mờ của biến ngôn ngữ đầu ra dựa trên các

luật hợp thành đã xây dựng.

Quá trình giải mờ: biến đổi các giá trị mờ của biến ngôn ngữ

đầu ra thành các giá trị rõ để thực hiện điều khiển đối tượng.

HỆ THỐNG MỜ

Quá trình

mờ hóa

Quá trình

hợp thành

Luật điều khiển

Quá trình

giải mờDữ liệu vào Dữ liệu ra

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 137

6.1.3. Mô hình thuật toán Sugeno

Mô hình thuật toán Sugeno (hay còn được gọi là mô hình Takagi-

Sugeno-Kang) là một mô hình lô-gic mờ được đề xuất vào năm 1985

bởi Sugeno [110]. Mô hình này cũng hoàn toàn tương tự với mô hình

chung đã được đề cập đến trong Mục 6.1.2. Hai quá trình đầu tiên là

quá trình mờ hóa và quá trình hợp thành đều giống nhau ở các mô

hình. Chỉ riêng với mô hình Sugeno thì các hàm liên thuộc ở đầu ra là

ở dạng hàm tuyến tính hoặc là một hằng số. Vì vậy, quá trình giải mờ

và luật điều khiển sẽ khác với các mô hình khác.

Đối với mô hình Sugeno, về cơ bản luật điều khiển sẽ được phát

biểu dưới dạng quy luật IF-THEN như sau:

“IF AND THEN ”

Trong trường hợp và đầu ra là một hằng số thì ta gọi

mô hình này là mô hình Sugeno bậc 0.

Với mô hình này, mỗi giá trị đầu ra của từng quy luật hợp

thành sẽ được đặc trưng bởi một giá trị trọng số . Giá trị trọng số

này sẽ phụ thuộc vào quy luật hợp thành mà ta đặt ra khi tổ hợp các

biến ngôn ngữ tự nhiên. Giả sử, nếu ta áp dụng quy tắc AND với đầu

vào và thì giá trị này sẽ là:

Với mô hình Sugeno, quá trình giải mờ sẽ sử dụng phương pháp

xác định giá trị trọng tâm để tính ra giá trị đầu ra . Với các giá trị

đầu ra của từng quy luật hợp thành và giá trị trọng số của nó thì

đầu ra của thuật toán này sẽ được tính theo công thức sau:

Trong đó, là tổng số các quy tắc hợp thành đã được thiết lập.

Hình 6-6 mô tả hoạt động của thuật toán lô-gic mờ theo mô hình

Sugeno với hai lối vào là input_1 và input_2.

138 Mạng trên chip

Hình 6-6: Thuật toán lô-gic mờ theo mô hình Sugeno.

6.2. Bộ điều khiển tần số - điện áp dùng cho bộ định tuyến mạng

trên chip

Nhằm giảm năng lượng tiêu thụ ở các nốt mạng trong một mô

hình mạng trên chip, trong các công trình nghiên cứu của nhóm [111,

101], chúng tôi đã đề xuất việc ứng dụng lô-gic mờ để xây dựng bộ

điều khiển tần số - điện áp cho các bộ định tuyến mạng. Trong mục

này, chúng ta sẽ lần lượt tìm hiểu cụ thể về mô hình đề xuất và cách

thức thực thi mô hình này.

6.2.1. Đề xuất mô hình bộ điều khiển tần số - điện áp cho bộ

định tuyến

Như đã đề cập trong phần trước, trong nhiều nghiên cứu về các

thuật toán điều khiển tần số và điện áp động DVFS cho mạng trên

chip, thông số về mức độ sử dụng bộ đệm thường được sử dụng để đo

mức độ hoạt động của mạng. Tuy nhiên, việc đánh giá hoạt động của

mạng dựa trên mức độ sử dụng bộ đệm có thể chưa được chính xác

trong một số trường hợp. Ví dụ, khi xuất hiện lỗi tại một bộ định tuyến

nào đó, giá trị mức độ sử dụng bộ đệm của bộ định tuyến đó có thể

tăng lên nhưng tải mạng tại thời điểm đó có thể vẫn ở mức thấp.

Chính vì vậy, các nhà thiết kế đề xuất một thông số khác cho phép

đánh giá lưu lượng truyền thông trên mạng một cách chính xác hơn,

đó là xác định lưu lượng truyền thông dựa vào mức độ sử dụng liên

kết giữa hai bộ định tuyến (LU: Link Ultilization) [112, 113]. Trên cơ

sở giám sát sự thay đổi về lưu lượng truyền thông trên mạng được

phản ánh qua hai thông số BU và LU, các nhà thiết kế đưa ra những

thuật toán điều chỉnh điện áp và tần số cho hệ thống một cách phù hợp

để giảm năng lượng tiêu thụ trên hệ thống nhưng vẫn duy trì được

hiệu năng truyền thông của hệ thống theo yêu cầu của ứng dụng.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 139

Trong nghiên cứu này, chúng tôi xác định rằng lưu lượng truyền

thông qua một bộ định tuyến chính là đại lượng phản ánh mức độ hoạt

động của bộ định tuyến đó. Từ đó, chúng tôi đề xuất mô hình cho bộ

điều khiển tần số - điện áp (VFC: Voltage Frequency Controller) cho bộ

định tuyến của mạng trên chip thông qua việc giám sát lưu lượng truyền

thông trên bộ định tuyến. Nếu lưu lượng truyền thông lớn, bộ định

tuyến cần phải được cấp tần số cũng như điện áp hoạt động cao hơn để

đáp ứng yêu cầu về tốc độ truyền dữ liệu cao và ngược lại. Để đánh giá

chính xác tình trạng hoạt động của mạng tại mỗi bộ định tuyến, chúng

tôi cũng sử dụng thông số sử dụng liên kết mạng LU như một đại lượng

đánh giá lưu lượng truyền thông qua mỗi bộ định tuyến. Ở đây, thông

số sử dụng liên kết mạng sẽ được tính toán dựa trên số lượng flit truyền

qua liên kết mạng ngay tại cổng tương ứng của bộ định tuyến.

Với bộ định tuyến được thiết kế tại Phòng thí nghiệm trọng điểm

Hệ thống tích hợp thông minh (SISLAB) cho một nền tảng mạng trên

chip dạng lưới hai chiều [47], quá trình truyền một flit giữa bộ định

tuyến với một bộ định tuyến khác (hoặc lõi IP) được thực hiện thông

qua các tín hiệu bắt tay như ở Hình 6-7. Quá trình truyền được bắt đầu

khi có một tín hiệu yêu cầu truyền („req0‟ hoặc „req1‟) gửi đến bộ

định tuyến (hoặc lõi IP) đích. Sau khi quá trình truyền nhận hoàn tất,

một tín hiệu phản hồi là „resp0‟ hoặc „resp1‟ sẽ được gửi lại để xác

nhận. Do đó, để có thể đo được số flit đã được truyền qua một cổng

nào đó trên bộ định tuyến, chúng ta chỉ cần đếm số lần tín hiệu „resp0‟

hoặc „resp1‟ phát sinh sự kiện và lấy đó để xác định số flit truyền.

Hình 6-7: Tín hiệu bắt tay giữa các bộ định tuyến và lõi IP.

Bộ định tuyến

req0, req1

Data

Bộ định tuyến

Hoặc Lõi IP

resp0, resp1

Data

req0, req1

resp0, resp1

Bộ đếm

140 Mạng trên chip

Để giảm thiểu năng lượng tiêu thụ của các bộ định tuyến được sử

dụng tại các nốt mạng trong một hệ thống mạng trên chip, chúng tôi

đề xuất sử dụng một khối điều khiển tần số - điện áp để thay đổi tần số

và điện áp hoạt động của bộ định tuyến theo mức độ hoạt động của

chính bộ định tuyến đó. Khối điều khiển này có nhiệm vụ giám sát lưu

lượng truyền thông qua bộ định tuyến; từ đó, dự đoán lưu lượng

truyền thông qua bộ định tuyến trong tương lai gần để đưa ra quyết

định tăng hoặc giảm tần số hoạt động một cách phù hợp với hoạt động

của bộ định tuyến. Đồng thời với việc thay đổi tần số, các mức điện áp

cung cấp cho bộ định tuyến cũng được khối điều khiển thiết lập phù

hợp với tần số hoạt động của bộ định tuyến này để có thể giảm tối đa

công suất tiêu thụ của bộ định tuyến (Hình 6-8).

Hình 6-8: Mô hình giải pháp điều khiển tần số điện áp được đề xuất

cho các nốt mạng của một mạng trên chip [101].

Để đơn giản hóa cấu trúc của bộ giám sát lưu lượng, đồng thời để

giảm thiểu được tài nguyên thực thi hệ thống, chúng tôi đề xuất áp

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 141

dụng thuật toán lô-gic mờ cho quá trình dự đoán lưu lượng và từ đó

đưa ra quyết định điều khiển tần số - điện áp. Mô hình của hệ thống

được đề xuất sẽ bao gồm các khối chính sau: các khối đo lưu lượng

Counter, khối tính toán giá trị lưu lượng trung bình cực đại (MA: Max

Average), khối tính toán biến thiên lưu lượng (DER: Derivative), bộ

xử lý lô-gic mờ (FLP: Fuzzy Logic Processing) và khối điều chỉnh tần

số - điện áp (VFA: Voltage Frequency Adjusting). Hình 6-9 mô tả sơ

đồ khối tổng thể của hệ thống.

Hình 6-9: Mô hình khối điều khiển tần số - điện áp

cho bộ định tuyến mạng trên chip [101].

Chức năng cụ thể của từng khối trong sơ đồ này được mô tả như sau:

Khối đo lưu lượng Counter sẽ thực hiện việc đo giá trị lưu

lượng truyền thông qua mỗi cổng của bộ định tuyến. Các giá trị lưu

lượng này sẽ được dùng để so sánh tại khối tính toán giá trị lưu lượng

trung bình cực đại MA nhằm xác định được giá trị lưu lượng truyền

thông cực đại truyền qua bộ định tuyến đó.

Khối tính toán giá trị lưu lượng trung bình cực đại MA sẽ xử lý

các giá trị lưu lượng truyền thông từ các cổng của bộ định tuyến gửi

đến. Khối này sẽ thực hiện việc so sánh các giá trị để chọn ra giá trị

Vdd – Fclk

Adjusting

Max Average Derivative

FZ

FE

DFZ

Input_1

Input_2

Counter_S

Counter_E

Counter_W

Counter_IP

Counter_N

Bộ xử lý lô-gic mờ

Bộ định tuyến

142 Mạng trên chip

lưu lượng lớn nhất đã được truyền qua bộ định tuyến và chuyển giá trị

này đến đầu vào thứ nhất của bộ xử lý lô-gic mờ FLP. Mục đích của

quá trình này chính là để cho bộ xử lý lô-gic mờ FLP có cơ sở để đưa

ra quyết định điều chỉnh tần số, điện áp của bộ định tuyến phù hợp với

yêu cầu về lưu lượng truyền thông cao nhất qua bộ định tuyến đó.

Khối tính toán biến thiên lưu lượng DER được thiết kế để có

thể xác định sự biến thiên về lưu lượng truyền thông của một cổng.

Các giá trị lưu lượng qua mỗi cổng sẽ được gửi đến các bộ tính toán

biến thiên lưu lượng DER tương ứng với cổng đó. Các khối tính toán

biến thiên lưu lượng DER sẽ thực hiện việc lưu hai giá trị lưu lượng:

một giá trị của thời điểm hiện tại và một giá trị của thời điểm trước đó

một “khung thời gian”. Từ đó, khối tính toán biến thiên lưu lượng

DER sẽ xác định được sự biến thiên về mặt lưu lượng truyền thông

qua từng cổng. Kết hợp với thông tin về lưu lượng cực đại từ khối tính

toán giá trị lưu lượng trung bình cực đại MA, khối tính toán biến thiên

lưu lượng DER sẽ đưa ra giá trị biến thiên của lưu lượng để làm đầu

vào cho thông số biến thiên lưu lượng của bộ xử lý lô-gic mờ.

Khối xử lý lô-gic mờ (FLP) được xây dựng từ ba khối con, đó

là: khối mờ hóa (FZ: Fuzzification), khối hợp thành (FE: Fuzzy

Engine) và khối giải mờ (DFZ: Defuzzification). Như đã đề cập ở

trên, hoạt động của khối xử lý lô-gic mờ FLP dựa trên mô hình

Sugeno nhằm đơn giản quá trình mô hình hóa và các quá trình tính

toán, từ đó giảm thiểu tài nguyên phần cứng cần sử dụng.

- Khối mờ hóa FZ nhận dữ liệu từ hai đầu vào đó là dữ liệu về lưu

lượng truyền thông lớn nhất đi qua bộ định tuyến và dữ liệu về sự biến

thiên của lưu lượng đó trong một đơn vị thời gian. Nhiệm vụ của khối

này là làm mờ hóa dữ liệu dựa trên các hàm liên thuộc đã được đề

xuất. Kết quả ở đầu ra của khối này là ta thu được các giá trị về độ phụ

thuộc của các hàm liên thuộc gọi là giá trị hay cấp độ liên thuộc).

- Khối hợp thành FE sẽ dựa trên bảng quy tắc hợp thành (quy tắc

IF-THEN) được đề xuất để xác định ra các giá trị trọng số của các quy

tắc hợp thành này. Ngoài ra, vì được xây dựng trên mô hình

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 143

Sugeno nên khối hợp thành FE cũng có nhiệm vụ tính toán giá trị ra

cho từng quy tắc hợp thành đã được đề xuất.

- Khối giải mờ DFZ sẽ dựa trên giá trị liên thuộc của các hàm liên

thuộc , giá trị trọng số của các quy tắc hợp thành và giá trị ra

của mỗi quy tắc để xác định giá trị đầu ra của bộ điều khiển. Giá trị

này chính là giá trị cần thiết để điều chỉnh tần số hoạt động của bộ

định tuyến phù hợp với lưu lượng và sự biến thiên của lưu lượng qua

bộ định tuyến đó.

Khối điều chỉnh tần số - điện áp VFA thực hiện việc điều khiển

điện áp và tần số hoạt động của bộ định tuyến. Trong mô hình được đề

xuất, bộ định tuyến sẽ sử dụng ba cặp giá trị của tần số - điện áp. Sự

thay đổi của tần số hoạt động đồng thời cũng sẽ điều chỉnh điện áp

hoạt động về mức tương ứng với tần số mới. Sự thay đổi tần số hoạt

động sẽ được xác định thông qua giá trị điều khiển ở đầu ra của bộ xử

lý lô-gic mờ.

Hình 6-10 mô tả mô hình cụ thể của bộ điều khiển tần số - điện

áp sử dụng cho bộ định tuyến mạng trên chip nêu trên.

Hình 6-10: Sơ đồ chi tiết của bộ điều khiển tần số - điện áp [101].

6.2.2. Thiết kế và mô hình hóa bộ điều khiển tần số - điện áp

Mô hình của khối điều khiển tần số - điện áp đã được đề xuất ở

mục trên được mô hình hóa bằng cách sử dụng ngôn ngữ mô tả phần

144 Mạng trên chip

cứng VHDL. Các khối thành phần của bộ điều khiển tần số - điện áp

sẽ được mô hình hóa ở mức truyền thanh ghi (RTL) và được mô

phỏng, kiểm chứng về mặt lô-gic bằng phần mềm mô phỏng

ModelSim của hãng Mentor Graphics.

a) Khối đo lưu lượng

Hình 6-11 mô tả mô hình của khối đo lưu lượng. Khối đo lưu

lượng Counter sẽ nhận tín hiệu bắt tay từ bộ định tuyến để xác định

thời điểm một flit đã được truyền hoàn tất. Tín hiệu bắt tay này sẽ

được đưa đến cổng vào „res_in‟ để thực hiện việc đo số lượng flit.

Khối đo lưu lượng được mô hình hóa với hai khối con: Signal_counter

và Clock_counter. Trong mô hình đề xuất, khối Clock_counter được

sử dụng để đếm số lượng xung nhịp từ tín hiệu xung nhịp đồng hồ

„clk‟. Khối Signal_counter sẽ đếm các sự kiện từ tín hiệu „resp_in‟.

Khi tín hiệu „resp_in‟ thay đổi giá trị từ „0‟ lên „1‟ là báo hiệu một flit

truyền đã hoàn thành và giá trị đếm trong khối Signal_counter sẽ tăng

thêm một đơn vị. Khi khối Clock_counter đếm đủ một số lượng xung

nhịp nhất định (trong mô hình này, giá trị được lựa chọn là 100 xung

nhịp), một tín hiệu chốt được sẽ được gửi đến khối Signal_counter.

Khối Signal_counter sau khi nhận được tín hiệu chốt từ Clock_counter

sẽ gửi số lượng xung tín hiệu „resp_in‟ mà nó đếm được ra cổng

„val_count_out‟. Sau đó, giá trị đếm sẽ được khởi tạo lại từ đầu để

chuẩn bị cho lần đo tiếp theo.

Hình 6-11: Sơ đồ mô tả khối đo lưu lượng [101].

Để có thể mô hình hóa các hoạt động của khối đo lưu lượng

Counter, chúng tôi sử dụng mô hình máy trạng thái hữu hạn (FSM:

Finite State Machine) với ba trạng thái để mô tả các hoạt động này. Ba

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 145

trạng thái được sử dụng để mô tả toàn bộ hoạt động của khối đo lưu

lượng Counter là: init, count và count_full (Hình 6-12).

Hình 6-12: Sơ đồ máy trạng thái mô tả khối đo lưu lượng [101].

Ở trạng thái init, các tín hiệu sẽ được khởi tạo về giá trị ban

đầu. Trạng thái tiếp theo sau trạng thái này sẽ là trang thái count và sẽ

được chuyển ngay ở xung nhịp tiếp theo của hệ thống.

Trạng thái count sẽ thực hiện việc đếm và lưu giá trị đếm vào

các thanh ghi „val_count‟, „clk_count‟ khi có các sự kiện từ tín hiệu

„resp_in‟ và tín hiệu xung nhịp đồng hồ „clk‟. Khi giá trị đếm của

thanh ghi „clk_count‟ đạt đến giá trị 100, máy trạng thái sẽ chuyển

sang trạng thái cuối cùng là count_full.

Trong trạng thái count_full, số sự kiện được lưu trong thanh

ghi val_count sẽ được chốt và gửi ra cổng „val_count_out‟. Trong

trạng thái này, một tín hiệu („end_count‟) cũng sẽ được gửi đến khối

tính toán biến thiên lưu lượng DER để thông báo một quá trình đếm

đã kết thúc. Tiếp theo, máy trạng thái sẽ chuyển về trạng thái init để

chuẩn bị cho quá trình đếm tiếp theo.

b) Khối tính toán giá trị lưu lượng trung bình cực đại

Khối tính toán giá trị lưu lượng trung bình cực đại MA sẽ nhận giá

trị lưu lượng truyền qua các cổng của bộ định tuyến từ những khối đo lưu

lượng Counter gắn vào từng cổng. Bằng cách so sánh các giá trị lưu

lượng truyền thông nhận được, khối tính toán giá trị lưu lượng trung bình

cực đại này sẽ xác định được giá trị lưu lượng trung bình lớn nhất truyền

qua bộ định tuyến và giá trị này thuộc về cổng truyền nào. Giá trị lưu

146 Mạng trên chip

lượng trung bình cực đại sẽ được gửi đến lối vào „input_1‟ của khối xử lý

lô-gic mờ để làm thông số đầu vào cho khối xử lý. Về mặt mô hình, khối

tính toán giá trị lưu lượng trung bình cực đại MA được thực thi như là tập

hợp của các khối so sánh 8-bit (Hình 6-13). Mỗi khối sẽ thực hiện việc so

sánh hai giá trị lưu lượng và chọn ra giá trị lớn hơn để gửi đến khối so

sánh tiếp theo. Sau khi lựa chọn được giá trị lớn nhất giữa năm đầu vào,

tín hiệu „port_sel(2:0)‟ sẽ thông báo đến khối tiếp theo địa chỉ của cổng

có giá trị lưu lượng lớn nhất này.

Hình 6-13: Mô hình khối tính toán giá trị lưu lượng trung bình cực đại [101].

c) Khối tính toán biến thiên lưu lượng

Để thực hiện việc tính toán biến thiên lưu lượng qua từng cổng

của bộ định tuyến, khối tính toán biến thiên lưu lượng DER được triển

khai với mô hình như mô tả trong Hình 6-14. Hai thanh ghi 8-bit:

nw_reg và pr_reg được sử dụng để lưu hai giá trị của lưu lượng. Một

giá trị là lưu lượng truyền thông hiện tại truyền qua mỗi cổng, một giá

trị là lưu lượng truyền thông chuyển qua cổng đó trước đó một khung

thời gian. Biến thiên của lưu lượng được tính là hiệu giá trị tuyệt đối

giữa hai giá trị này của lưu lượng.

Hình 6-14: Mô hình khối tính toán biến thiên giá trị lưu lượng DER.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 147

d) Khối xử lý lô-gic mờ

Để xử lý hai dữ liệu vào là lưu lượng và biến thiên của lưu lượng,

chúng tôi đề xuất sử dụng mô hình bộ xử lý lô-gic mờ FLP với hai đầu

vào. Do quá trình thay đổi tần số và điện áp phải hoạt động theo từng

cặp V-F, nên đầu ra bộ xử lý lô-gic mờ FLP chỉ cần có tín hiệu điều

khiển sự thay đổi về tần số. Vì vậy, bộ xử lý lô-gic mờ FLP được thiết

kế chỉ có một đầu ra và là các hàm đơn giá theo giá trị của tần số.

Cũng vì các hàm liên thuộc ở đầu ra của bộ xử lý lô-gic mờ FLP

là các giá trị đơn giá của tần số (là các giá trị hằng số) nên trong

trường hợp này quá trình điều khiển sẽ được áp dụng mô hình Sugeno

bậc 0 như đã trình bày ở Mục 6.1.3. Mô hình này được thực thi với

từng khối con như sau (Hình 6-15):

Hình 6-15: Sơ đồ của khối xử lý lô-gic mờ FLP.

Khối mờ hóa FZ được thực thi với hai khối con input_MSF.

Mỗi khối con là một quá trình tính toán giá trị liên thuộc của các đầu

vào „input_1‟ và „input_2‟ dựa trên các hàm liên thuộc được đề xuất.

Khối hợp thành FE bao gồm hai khối con: khối AND–rule xác

định giá trị trọng số cho từng quy luật hợp thành và khối được dùng

để tính toán giá trị đầu ra của mỗi quy luật hợp thành tương ứng.

Khối giải mờ DFZ được thực thi như một quá trình tính toán giá

trị đầu ra cuối cùng của bộ xử lý lô-gic mờ dựa trên các giá trị trọng

số và giá trị đầu ra của từng quy luật hợp thành .

148 Mạng trên chip

Toàn bộ các khối này sau đó được mô hình hóa bằng ngôn ngữ

mô tả phần cứng VHDL dưới dạng các tiến trình (Process). Các thanh

ghi được chèn vào sau mỗi Process để đảm bảo luồng dữ liệu được

thực hiện đúng. Việc mô hình hóa bộ xử lý lô-gic mờ FLP bằng ngôn

ngữ VHDL ở mức RTL như được mô tả trong Hình 6-16.

Hình 6-16: Mô hình hóa ở mức RTL cho bộ xử lý lô-gic mờ [111].

e) Quá trình mờ hóa

Quá trình mờ hóa là quá trình chuyển đổi từ một giá trị rõ của đầu

vào, thành một giá trị liên thuộc đối với từng hàm liên thuộc. Giá trị

liên thuộc này sẽ phụ thuộc vào hình dạng của hàm liên thuộc và tập

xác định của nó. Thông thường, các hàm liên thuộc thường có dạng

hình tam giác, hình thang, hoặc hình chuông (phân bố Gauss)… Tuy

nhiên, để việc mô hình hóa hệ thống được đơn giản thì dạng hình của

hàm liên thuộc được lựa chọn là hình tam giác.

Để mô hình hóa quá trình mờ hóa, một hàm liên thuộc dạng hình

thang sẽ được mô tả với một bộ các tham số như ở Hình 6-17 [107].

Hàm liên thuộc dạng tam giác sẽ là sự đơn giản hóa của hàm dạng

hình thang với tham số trùng với điểm . Bộ tham số cần mô

tả khi xây dựng một hàm liên thuộc dạng tam giác sẽ bao gồm:

, , , .

Hình 6-17: Mô tả cho hàm liên thuộc dạng hình thang.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 149

Giá trị liên thuộc của đầu vào theo hàm liên thuộc sẽ được

tính toán dựa trên ba phân đoạn chính:

Nếu hoặc thì .

Nếu thì

Nếu hoặc

{

Giá trị liên thuộc sẽ nằm trong khoảng . Tuy nhiên, để

thuận tiện trong việc tính toán thì khoảng xác định này sẽ được rời rạc

hóa thành khoảng nhỏ có giá trị rời rạc, bắt đầu từ 0x00 (tương ứng

với giá trị 0) đến 0xFF (tương ứng với giá trị 1). Với việc mô tả một

hàm liên thuộc bằng bộ bốn thông số như trên thì trong ngôn ngữ

VHDL, các hàm liên thuộc sẽ được mô tả dưới dạng một tập dữ liệu

dạng bản ghi.

Quá trình mờ hóa giá trị lưu lượng ở đầu vào sẽ được

thực hiện thông qua năm hàm liên thuộc, tương ứng với các biến ngôn

ngữ tự nhiên là “vlow, low, medium, high, vhigh”. Các hàm liên thuộc

được sử dụng trong mô hình này là các hàm dạng tam giác với các giá

trị của tập dữ liệu được mô tả như trong Hình 6-18. Theo đó, giá trị

cực đại của hàm liên thuộc vhigh là 0xC0, tương ứng với giá trị lưu

lượng cực đại là 192 Mflits/s. Giá trị này được lựa chọn phù hợp với

tốc độ truyền thông cực đại của bộ định tuyến đã được thiết kế tại

Phòng thí nghiệm trọng điểm Hệ thống tích hợp thông minh

(SISLAB), vào khoảng 180 Mflits/s [47]. Hệ số và

được chọn là 0x08 cho cả hai sườn của hàm liên thuộc, mục đích là

đảm bảo việc tính toán sẽ được thực hiện với sai số ít nhất có thể. Quá

trình mờ hóa giá trị lưu lượng sẽ tương ứng với một khối Input_MSF

trong mô hình được đề xuất và được thực thi như một Process trong

ngôn ngữ VHDL.

150 Mạng trên chip

Hình 6-18: Mô tả các hàm liên thuộc cho đầu vào input_1.

Đầu vào là giá trị của biến thiên lưu lượng cực đại qua bộ

định tuyến. Giá trị của biến thiên lưu lượng được xác định là lượng thay

đổi về lưu lượng, mà không phụ thuộc vào giá trị đó là tăng hay giảm.

Với đầu vào , quá trình mờ hóa sẽ được thực hiện thông qua ba

hàm liên thuộc với các biến ngôn ngữ tương ứng là “slow, normal,

fast”. Các hàm liên thuộc này cũng là các hàm tam giác với các giá trị

của tập xác định được mô tả như trong Hình 6-19. Giá trị cực đại của

hàm liên thuộc ứng với biến ngôn ngữ “fast” là 0x3C tương ứng với lưu

lượng biến thiên 60 Mflits/s. Giá trị và của các hàm

liên thuộc đều bằng nhau và được chọn bằng 0x11.

Hình 6-19: Mô tả các hàm liên thuộc cho đầu vào input_2.

Đầu ra của bộ xử lý lô-gic mờ FLP là một giá trị hằng số,

tương ứng với tần số hoạt động của bộ định tuyến. Vì vậy hàm liên

thuộc của đầu ra sẽ là các hàm đơn trị. Đầu ra sẽ được mô tả bằng ba hàm

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 151

liên thuộc với các biến ngôn ngữ là “low, normal và high” (Hình 6-20).

Trong ngôn ngữ VHDL, chúng ta mô tả các hàm liên thuộc ở đầu ra

như là các hằng số 8-bit.

Hình 6-20: Mô tả các hàm liên thuộc cho đầu ra output.

f) Quá trình xác định quy luật hợp thành

Bằng việc áp dụng mô hình Sugeno, một quy luật hợp thành trong

mô hình sẽ bị tác động bởi luật điều khiển được phát biểu dưới dạng

quy luật IF-THEN như sau:

IF AND THEN

Trong trường hợp và đầu ra là một hằng số thì ta gọi

mô hình này là mô hình Sugeno bậc 0. Ở mô hình này, với mỗi giá trị

đầu ra của từng quy luật hợp thành sẽ được đặc trưng bởi một giá trị

trọng số . Giá trị trọng số này sẽ phụ thuộc vào quy luật hợp thành

mà chúng ta đặt ra khi tổ hợp các biến ngôn ngữ tự nhiên. Giả sử, nếu

chúng ta áp dụng quy tắc AND với đầu vào và

thì giá trị này sẽ là:

Quá trình tính toán giá trị trọng số sẽ tương ứng với khối

AND-rule trong mô hình được đề xuất. Quá trình này sẽ được thực thi

như là một Process và được thực hiện thông qua đoạn mã tìm kiếm giá

trị cực tiểu như sau:

152 Mạng trên chip

begin{lstlisting}[frame=single]

rule_weight: process (u_x, u_y) is

variable i, j: integer;

begin -- Đoạn chương trình tìm giá trị cực tiểu

for i in 1 to n loop

for j in 1 to m loop

if (u_x(i) < u_y(j)) then

rule_w(i,j) <= u_x(i);

else

rule_w(i,j) <= u_y(j);

end if;

end loop;

end loop;

end process rule_weight;

end{lstlisting}

Trong đó, và chính là các giá trị liên thuộc của các đầu

vào và .

Với các hàm liên thuộc được mô tả ở Mục 6.1.1, chúng ta sẽ có

tất cả quy luật hợp thành. Thông thường, chúng ta có thể bỏ qua

những quy luật ít phổ biến hoặc ít xuất hiện trong tổng số các quy luật

hợp thành được đề xuất. Tuy nhiên, trong mô hình thực nghiệm của

chúng tôi, nên toàn bộ 15 quy luật này đều được thực thi vì số lượng

quy luật hợp thành không lớn. Bảng 6-1 mô tả chi tiết các quy luật

hợp thành.

Bảng 6-1: Các quy luật hợp thành của khối xử lý lô-gic mờ

Lưu lượng Biến thiên lưu lượng Tần số

vlow

low

medium

high

vhigh

slow

slow

slow

slow

slow

low

low

low

normal

normal

vlow normal low

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 153

low

medium

high

vhigh

normal

normal

normal

normal

low

normal

high

high

vlow

low

medium

high

vhigh

fast

fast

fast

fast

fast

normal

normal

high

high

high

g) Quá trình giải mờ

Quá trình giải mờ là quá trình tính toán lại giá trị chính xác ở đầu

ra của bộ xử lý lô-gic mờ FLP. Với các giá trị đầu ra của từng quy luật

hợp thành và giá trị trọng số của nó, quá trình giải mờ sẽ sử

dụng phương pháp xác định giá trị trọng tâm để tính ra giá trị đầu ra

. Giá trị này sẽ được tính theo công thức sau:

Trong đó, là tổng số các quy tắc hợp thành đã được thiết lập. Đoạn

mã nguồn VHDL sau được dùng để mô tả quá trình tính toán này:

for i in 1 to n loop

for j in 1 to m loop

w_t:= unsigned(w(i,j));

z_t:= unsigned(z(i,j));

upper:= upper + (w_t*z_t);

lower:= lower + w_t;

end loop;

end loop;

z_out:= divide(upper,lower);

Trong đó, và là số hàm liên thuộc của các đầu vào

và . Các giá trị và chính là các giá trị trọng số

và giá trị đầu ra của các quy tắc hợp thành được tính ra trong những

khối trước đó.

154 Mạng trên chip

6.3. Kiểm chứng hoạt động của bộ điều khiển tần số - điện áp

Để kiểm chứng hoạt động của bộ điều khiển tần số - điện áp

VFC, từng khối chức năng trong bộ điều khiển tần số - điện áp sẽ

được mô phỏng các hoạt động ở mức lô-gic bằng phần mềm

ModelSim. Đối với mỗi khối chức năng, chúng tôi tạo một môi trường

kiểm tra (testbench) bằng VHDL cho phép sinh ra các tín hiệu đầu vào

ngẫu nhiên cho khối chức năng đó. Sau khi chạy mô phỏng bằng phần

mềm ModelSim của hãng Mentor Graphics, kết quả ở đầu ra sẽ được

so sánh với dữ liệu tạo ra từ đặc tả kỹ thuật của từng khối để xác định

hoạt động của khối đó đã đúng với thiết kế hay chưa.

Để tạo các tín hiệu ngẫu nhiên, chúng tôi sử dụng thư viện OSVVM;

đây là một thư viện cho phép tạo ra các biến ngẫu nhiên trong ngôn ngữ

VHDL. Do đó, trong testbench chúng ta cần thêm vào gói RandomPkg

để có thể dùng các hàm tạo biến ngẫu nhiên của thư viện này.

6.3.1. Kiểm chứng hoạt động của khối đo lưu lượng

Sau khi chạy mô phỏng trên phần mềm ModelSim, kết quả mô

phỏng hoạt động của khối đo lưu lượng Counter được thể hiện dưới

dạng giản đồ sóng như ở Hình 6-21. Ở giản đồ sóng này, chúngta thấy

rằng khi thanh ghi count_num đếm đến giá trị 100 thì trạng thái của

máy trạng thái FSM sẽ chuyển sang trạng thái count_full để kết thúc

một lượt đếm. Giá trị đếm được lúc này là 0x78 sẽ được gửi từ thanh

ghi val_count_temp ra cổng ra „val_count_out‟. Giá trị này là phù hợp

với số sự kiện phát sinh từ xung „resp_in‟ trong thời gian 100 chu kỳ

xung nhịp. Đồng thời khi quá trình đếm kết thúc, xung

„end_count_out‟ cũng được đưa lên cao trong một chu kỳ xung nhịp

để thông báo quá trình đếm tại bộ đo lưu lượng đã kết thúc.

Hình 6-21: Kết quả mô phỏng hoạt động lô-gic của khối đo lưu lượng.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 155

6.3.2. Kiểm chứng hoạt động của khối xác định lưu lượng cực đại

Để thực hiện việc mô phỏng hoạt động của khối xác định lưu

lượng cực đại MA, chương trình testbench sẽ tạo ra năm giá trị ngẫu

nhiên để đưa vào năm đầu vào của khối xác định lưu lượng cực đại

MA. Sau đó, giá trị ở đầu ra của khối này sẽ được lấy và kiểm tra xem

có đúng với giá trị đầu vào lớn nhất trong năm đầu vào tại thời điểm

đó hay không.

Một đoạn giản đồ dạng sóng cho kết quả mô phỏng hoạt động của

khối xác định lưu lượng cực đại MA được thể hiện như ở Hình 6-22.

Với đoạn giản đồ sóng này, ta thấy tại thời điểm đang xét có năm giá

trị đầu vào là: 0xD6, 0xCB, 0x98, 0xF1 và 0x11. Khối xác định lưu

lượng cực đại MA đã lựa chọn giá trị lớn nhất trong năm giá trị này là

0xF1 và chuyển giá trị này ra đầu ra „max_traff_out‟ ngay khi đầu vào

tương ứng có sự thay đổi về giá trị. Đồng thời tín hiệu „port_sel_out‟

cũng xuất ra giá trị 0x00 để thông báo là giá trị lưu lượng lớn nhất

đang thuộc về cổng SOUTH (phía Nam).

Hình 6-22: Giản đồ dạng sóng thể hiện kết quả mô phỏng hoạt động lô-gic

của khối xác định lưu lượng cực đại.

6.3.3. Kiểm chứng hoạt động của khối xác định biến thiên lưu lượng

Giản đồ dạng sóng biểu diễn kết quả mô phỏng hoạt động của khối

xác định biến thiên lưu lượng DER được chỉ ra như trong Hình 6-23.

Như trong giản đồ sóng thể hiện, tại thời điểm đang xét thì giá trị lưu

lượng đầu vào là 0x4161 và giá trị lưu lượng truyền qua cổng này

trước đó một khung thời gian là 0x8449. Vì vậy giá trị của biến thiên

156 Mạng trên chip

lưu lượng qua cổng này là 0x4288. Giá trị này được cập nhật sau một

chu kỳ xung nhịp đồng hồ.

Hình 6-23: Giản đồ dạng sóng thể hiện kết quả mô phỏng hoạt động lô-gic

của khối xác định biến thiên lưu lượng.

6.3.4. Kiểm chứng hoạt động của bộ xử lý lô-gic mờ

Chương trình kiểm tra (testbench) sẽ tạo ra các dữ liệu đầu vào

với giá trị ngẫu nhiên và đưa vào các đầu vào và của

bộ xử lý lô-gic mờ FLP (tương ứng với các đầu vào „traffic_val_in‟ và

„dev_traffic_in‟ trong mã nguồn). Giá trị của dữ liệu vào sẽ được giới

hạn trong khoảng giá trị cực đại của các hàm liên thuộc. Bằng cách

quan sát dạng sóng của các tín hiệu ra và giá trị của đầu ra cuối cùng

(tương ứng với đầu ra z_out trong chương trình), ta sẽ xác định

được hoạt động của bộ xử lý lô-gic mờ FLP là đúng hay không.

Một đoạn kết quả ở dạng giản đồ dạng sóng của quá trình mô phỏng

được trình bày như ở Hình 6-24. Các kết quả từ đầu ra đều được so sánh

với những kết quả tính toán độc lập. Như ta thấy ở trong phần được đánh

dấu, sau khi có tín hiệu reset, bộ xử lý lô-gic mờ FLP bắt đầu hoạt động.

Khi các đầu vào có thay đổi về giá trị lần lượt là 0x4E (cho tín hiệu

„traffic_val_in‟) và 0x0F (cho tín hiệu „dev_traffic_in‟) thì kết quả ở đầu

ra là 0x30. Kết quả này là đúng với các tính toán như ở phần lý

thuyết. Ta cũng thấy được là kết quả tính toán sẽ thu được sau hai chu kỳ

xung nhịp đồng hồ. Điều này là hoàn toàn đúng đắn với thiết kế phần

cứng của khối xử lý lô-gic mờ FLP như trong Mục 6.2.2.

Hình 6-24: Giản đồ sóng thể hiện kết quả mô phỏng hoạt động

của khối xử lý lô-gic.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 157

Tiếp tục phân tích, ta thấy khi giá trị của đầu vào „traffic_val_in‟

thay đổi thành 0x73 trong khi giá trị của „dev_traffic_in‟ vẫn là 0x0F

thì đầu ra sẽ có giá trị là 0x4C. Tiếp theo, khi giá trị ở đầu vào

„dev_traffic_in‟ thay đổi thành 0x05 thì bộ xử lý lô-gic mờ FLP cũng

tính toán được ra giá trị của đầu ra là 0x48. Các kết quả tính toán thu

được ở đầu ra đều được thực hiện trong vòng hai chu kỳ xung nhịp kể

từ khi một trong hai đầu vào có sự thay đổi về mặt giá trị.

6.3.5. Kiểm chứng hoạt động của bộ điều khiển tần số - điện áp

Sau khi thực hiện mô phỏng và kiểm chứng chức năng hoạt động

của từng khối chức năng riêng rẽ, chúng tôi đã tích hợp các khối chức

năng này thành bộ điều khiển tần số - điện áp hoàn chỉnh. Để kiểm

chứng, đánh giá hoạt động của bộ điều khiển này, chúng tôi đã xây

dựng một chương trình kiểm tra để sinh ra các tín hiệu vào ngẫu nhiên

và đồng thời ghi lại giá trị lưu lượng truyền thông tương ứng với các

tín hiệu vào này. Bằng cách khảo sát sự thay đổi ở đầu ra của tín hiệu

điều khiển tần số theo giá trị lớn nhất của lưu lượng truyền thông

chuyển qua bộ định tuyến, chúng ta đánh giá được khả năng đáp ứng

của bộ điều khiển đã được thiết kế. Kết quả mô phỏng bộ điều khiển

tần số - điện áp hoàn chỉnh được thể hiện như ở trong Hình 6-25.

Hình 6-25: Kết quả mô phỏng khả năng đáp ứng của bộ điều khiển tần số điện áp

theo sự thay đổi của lưu lượng truyền thông [101].

Qua đồ thị phản ánh sự thay đổi của lưu lượng truyền thông và

đáp ứng thay đổi của tín hiệu điều khiển tần số, chúng ta có thể thấy

158 Mạng trên chip

bộ điều khiển tần số - điện áp đã hoạt động đúng với mục đích và đặc

tả đề ra của thiết kế. Sự thay đổi của tín hiệu điều khiển tần số đã bám

theo sát với sự thay đổi của lưu lượng truyền thông. Điều này cho thấy

khả năng giám sát và dự đoán sự thay đổi lưu lượng truyền thông của

bộ điều khiển tần số - điện áp là khá chính xác, đáp ứng được yêu cầu

thay đổi tần số và điện áp cho bộ định tuyến theo sự biến đổi của lưu

lượng truyền thông.

Cụ thể hơn, chúng ta xét sự thay đổi của tín hiệu điều khiển tần số

đối với lưu lượng truyền thông tại bà vùng trong đồ thị là V1, V2 và

V3. Ta thấy, tại vùng V1 của đồ thị khi lưu lượng truyền thông tăng

lên đến giá trị 150 Mflits/s - 160 Mflits/s (ở tại các đỉnh số 1 và số 2)

thì tín hiệu điều khiển tần số cũng thay đổi tương ứng (ứng với tần số

cao nhất). Sau đó, lưu lượng giảm xuống chỉ còn khoảng 50 Mflits/s

tại đỉnh số 3 vùng V1 thì tần số được điều chỉnh lại ở mức thấp nhất

để giảm công suất tiêu thụ cho hệ thống. Tiếp theo, tần số hoạt động

lại được tăng lên giá trị cao nhất để đáp ứng với giá trị lưu lượng

truyền qua tăng lên đến 130 Mflits/s (tại đỉnh 4 của vùng V1).

Tương tự đối với vùng V2, khi lưu lượng truyền thông khoảng

150 Mflits/s thì tần số hoạt động cũng được điều chỉnh ở mức cao nhất

(đỉnh số 5 của vùng V2). Sau đó, khi lưu lượng truyền thông giảm

xuống ở các đỉnh số 6 và số 7 (còn khoảng 70 Mflits/s) thì tần số cũng

được điều chỉnh tương ứng ở mức thấp nhất. Ở trong vùng V3, ta cũng

thấy rõ sự đáp ứng một cách tức thời của tín hiệu điều khiển tần số

tương ứng với sự thay đổi của lưu lượng truyền thông.

6.4. Mô phỏng và đánh giá hiệu quả của bộ điều khiển tần số -

điện áp

Tiếp theo phần thiết kế và mô hình hóa khối điều khiển tần số -

điện áp cho bộ định tuyến trong mạng trên chip, phần này sẽ trình bày

phương pháp mô phỏng và đánh giá hiệu quả của mô hình đề xuất.

Theo đó, chúng ta sẽ lần lượt đề cập đến mô hình ORION - một mô

hình cho phép ước lượng, đánh giá năng lượng tiêu thụ của mạng trên

chip với độ chính xác gần bằng với các kết quả tổng hợp phần cứng.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 159

Tiếp theo, chúng ta sẽ tìm hiểu việc sử dụng phần mềm mô phỏng

VNOC 2.0 và trao đổi về một số chiến lược đánh giá hiệu năng tiêu

thụ năng lượng của bộ điều khiển tần số - điện áp.

6.4.1. Ước lượng công suất tiêu thụ của một mạng trên chip

Mạng trên chip đã và đang chứng tỏ là một kiến trúc truyền thông

trên chip phù hợp với các hệ thống đa lõi nhờ những đặc tính như độ trễ

truyền thấp và khả năng mở rộng cao. Tuy nhiên, do tích hợp ngày càng

nhiều các lõi IP lên cùng một hệ thống nên việc triển khai hệ thống

mạng trên chip phải đối mặt với vấn đề tối ưu về độ trễ truyền và công

suất tiêu thụ. Để có thể hỗ trợ các nhà thiết kế lựa chọn được một mô

hình tốt ở thời điểm bắt đầu thiết kế một hệ thống, những mô hình hỗ

trợ mô phỏng và ước lượng năng lượng tiêu thụ cũng như độ trễ truyền

trên một mạng trên chip ngày càng yêu cầu phải có độ chính xác cao.

Với một mô hình tốt thì độ chính xác của quá trình mô phỏng, ước

lượng về mặt công suất tiêu thụ trên hệ thống có thể đạt đến sai số

không quá 10% so với thực tế triển khai hệ thống thực [114].

a) ORION 3 - một mô hình hiệu quả để đánh giá năng lượng tiêu

thụ cho mạng trên chip

Để có thể mô phỏng và ước lượng được công suất tiêu thụ của

một mạng trên chip ở mức kiến trúc, các mô hình ước lượng thường

được xây dựng dựa trên hai hướng tiếp cận chính sau:

Mô hình được xây dựng dựa trên các mô hình mẫu có sẵn ở

mức kiến trúc (chẳng hạn như mô hình ORION 2 [115, 116]). Với

hướng tiếp cận này, một tập các mô hình mẫu về công suất tiêu thụ và

diện tích thực thi của từng khối thành phần trong bộ định tuyến sẽ

được đề xuất. Các khối chính của bộ định tuyến mà các mô hình này

thường dùng để xây dựng tập mẫu là: bộ đệm cổng vào/ra, các

crossbar, các chuyển mạch (switch), bộ phân chia kênh ảo (VC

arbiter). Tuỳ thuộc vào kiến trúc cụ thể của bộ định tuyến cần thiết kế

mà mô hình mẫu phù hợp với từng khối thành phần sẽ được lựa chọn

để cho phép mô phỏng và ước lượng được công suất tiêu thụ và diện

tích thực thi của hệ thống mạng trên chip.

160 Mạng trên chip

Cách tiếp cận thứ hai là các mô hình mô phỏng được xây dựng

dựa trên việc phân tích hồi quy các dữ liệu thu được từ sau khi thực

hiện quá trình đặt chỗ và định tuyến (post Place & Route) [117, 118].

Bên cạnh hai hướng tiếp cận trên, một số mô hình khác cũng đã

được đề xuất dựa trên dữ liệu của quá trình tiền layout (tổng hợp mức

RTL hoặc mức cổng lô-gic) [119, 120, 121, 122, 123] hoặc là của quá

trình sau layout (post layout) [124, 125, 126, 127]. Trong [123], các

tác giả đã đề xuất mô hình xác định công suất tiêu thụ cho mạng trên

chip dựa vào việc xác định số lượng transistor mà kiến trúc đó sử

dụng. Tuy nhiên, mô hình này có nhược điểm là sai số rất lớn vì nó

không xác định được các tham số đặc trưng cho việc tiêu thụ năng

lượng của từng khối riêng rẽ trong một kiến trúc mạng trên chip.

Chang và đồng nghiệp [119] cũng phát triển một mô hình mô phỏng

khác cho phép ước lượng công suất tiêu thụ theo từng chu kỳ. Tuy

vậy, sai số của mô hình này cũng vẫn lên đến 20%. Với hướng tiếp

cận bằng việc xác định các tham số hồi quy, nhóm nghiên cứu của

Meloni [126] và nhóm nghiên cứu của Lee [121] đã đề xuất mô hình

phân tích hồi quy dựa trên dữ liệu của quá trình mô phỏng sau layout

và mô phỏng lô-gic ở mức RTL. Tuy vậy, các mô hình này vẫn còn

khá thô và chưa giải thích được sự phân bổ năng lượng tiêu thụ trong

từng khối thành phần của mạng trên chip khi tải mạng thay đổi.

Tương tự như các mô hình trên, ORION 3 cũng sử dụng mô hình

các tham số với độ chính xác cao bằng cách phân tích hồi quy các

tham số với phương pháp bình phương tối thiểu để tăng độ chính xác

của những tham số này. Bằng việc tính toán hồi quy cho các tham số

dựa trên các công nghệ chế tạo 65nm và 45nm, mô hình ORION 3 có

thể đạt được sai số không quá 9,8% [114] so với quá trình thực thi

thực tế. Bên cạnh đó, mô hình này còn được mở rộng để cho phép

tăng tính chính xác của việc mô phỏng bằng cách thêm vào quá trình

tính toán ước lượng năng lượng tiêu thụ của hệ thống ở mức truyền

từng flit. Đây chính là lý do chúng tôi lựa chọn mô hình ORION 3 để

đánh giá nhanh hiệu quả của giải pháp thiết kế mạng trên chip công

suất thấp đề xuất ở trên.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 161

Cấu trúc của mô hình ORION 3

Mô hình ORION 3 được mô hình hóa dưới dạng từng khối thành

phần của một bộ định tuyến. Mô hình của từng khối thành phần được

các tác giả phát triển dựa trên việc phân tích quá trình sau tổng hợp

(post-synthesis) và netlists được sinh ra từ quá trình đặt chỗ và định

tuyến (P&R) của hai bộ định tuyến là Net Maker (được phát triển bởi

Đại học Cambridge) và Open Source NoC router (được phát triển bởi

Đại học Standford). Các khối thành phần của bộ định tuyến được mô

hình hóa trong mô hình này bao gồm: bộ đệm vào, các chuyển mạch

và bộ phân chia kênh ảo (VC arbiter), bộ chuyển mạch chéo (crossbar)

và bộ đệm đầu ra (Hình 6-26). Dựa vào việc phân chia các khối thành

phần của bộ định tuyến, mô hình ORION dùng các tham số sau để đặc

trưng cho từng khối thành phần: P: các cổng vào ra; V: bộ phân chia

kênh ảo; B: các bộ đệm; F: chiều dài của flit. Ngoài ra, để nâng cao độ

chính xác của mô hình so với các phiên bản trước, một số yếu tố sau

đã được bổ sung thêm vào trong mô hình ORION 3:

Các tài nguyên điều khiển: chẳng hạn như các tín hiệu lựa chọn

FIFO và giải mã lô-gic ở các bộ đệm vào/ra.

Mô hình hóa bộ chuyển mạch chéo dưới dạng mạch ba trạng thái.

Bổ sung thêm tài nguyên của bộ đệm vào để tối ưu độ trễ cho

các bộ phân xử.

Các bộ đệm đầu ra được mô hình hóa để chỉ lưu trữ flit tiêu đề.

Hình 6-26: Mô hình cấu trúc từng khối thành phần của một bộ định tuyến

trong mô hình ORION 3 [114].

162 Mạng trên chip

Các khối thành phần được mô hình hóa với độ ảnh hưởng theo

từng tham số đến công suất tiêu thụ của bộ định tuyến như sau:

Mô hình của khối chuyển mạch chéo: khối chuyển mạch chéo

này làm nhiệm vụ đấu nối giữa hai đầu vào và đầu ra bất kỳ trên bộ

định tuyến với nhau để cho phép các flit truyền qua bộ định tuyến từ

các cổng tương ứng. Trong mô hình ORION 3, bộ chuyển mạch chéo

được mô hình hóa với tham số là .

Mô hình khối chuyển mạch và bộ phân chia kênh ảo: đây là

khối đưa ra các tín hiệu điều khiển cho bộ chuyển mạch chéo nhằm có

thể thiết lập một kết nối từ cổng vào đến cổng ra theo yêu cầu truyền

thông. Trong mô hình ORION 3, khối khối chuyển mạch và bộ phân

chia kênh ảo này được mô hình hóa với tham số là:

.

Mô hình khối đệm đầu vào: khối đệm đầu vào làm nhiệm vụ

chứa các flit đến ở từng cổng lối vào nhằm chuẩn bị cho việc giải mã

để xác định được cổng ra tương ứng của flit đó. Số bộ đệm FIFO trong

khối đệm đầu vào được mô hình hóa với tham số là

. Sau khi phân tích quá trình tổng hợp và quá trình đặt chỗ và định

tuyến (P&R), các tín hiệu điều khiển của khối đệm đầu vào được mô

hình hóa theo công thức:

.

Mô hình bộ đệm đầu ra: bộ đệm đầu ra có nhiệm vụ lưu trữ các

flit tiêu đề khi những flit này chuyển từ các chuyển mạch ra các kênh

truyền tiếp theo. Mục đích của bộ đệm đầu ra là để có thể đồng bộ

được tốc độ truyền của flit giữa các chuyển mạch và kênh truyền

tương ứng. Bộ đệm ra được mô hình hóa với tham số là . Tuy

nhiên, do mỗi cổng lại có thêm nhiều tín hiệu điều khiển khác và cả

các bộ kênh ảo cho riêng từng cổng, nên tham số mô hình cho bộ đệm

phải bổ sung thêm một lượng là .

b) Phần mềm mô phỏng VNOC 2.0

Phần mềm VNOC 2.0 được tác giả Cristinel Ababei (Đại học

Marquette, Cộng hòa Ý) phát triển để mô phỏng các hoạt động của

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 163

mạng trên chip [112]. Phần mềm này được phát triển bằng ngôn ngữ

C++ và cho phép người dùng thay đổi mã nguồn để tuỳ biến phù hợp

với mục đích sử dụng của mình. Bên cạnh việc hỗ trợ mô phỏng các

hoạt động thông thường của một mạng trên chip, VNOC 2.0 còn được

tích hợp hai mô hình ORION 2 và ORION 3 cho phép ước lượng năng

lượng tiêu thụ của mạng trên chip đó trong quá trình mô phỏng. Vì

vậy, người dùng có thể áp dụng các thuật toán về điều khiển tần số -

điện áp dựa trên phương pháp DVFS trên mạng trên chip và nhận

được các kết quả mô phỏng về năng lượng mà hệ thống đã tiêu thụ.

Có thể nói, đây là một trong những phần mềm hiếm hoi cho phép

người thiết kế có thể mô phỏng những thuật toán DVFS trên các mạng

trên chip ở mức hệ thống nhằm có thể kiểm tra những thuật toán này

tại thời điểm bắt đầu một thiết kế.

Một số ưu điểm của phần mềm VNOC 2.0 so với những công cụ

mô phỏng mạng trên chip khác là:

Được phát triển bằng C++, dễ dàng sửa đổi và tích hợp thêm

các thuật toán điều khiển DVFS. VNOC 2.0 hỗ trợ sẵn các hàm điều

khiển điện áp, tần số của các bộ định tuyến trong mạng.

Hỗ trợ mô phỏng nhiều mô hình truyền thông khác nhau trên

mạng trên chip như: uniform, transpose, hotspot và selfsimilar.

Được tích hợp mô hình mô phỏng ORION 2 và ORION 3.

VNOC 2.0 hỗ trợ mô phỏng tính toán năng lượng tiêu thụ cho mạng

trên chip.

Phần mềm VNOC 2.0 được tác giả phát triển trên nền tảng hệ

điều hành Linux Ubuntu 12.04 LTS (64bit). Để chạy được VNOC 2.0,

người dùng cần cài thêm một số gói thư viện cần thiết. Nếu biên dịch

thành công, file thực thi vnoc sẽ được tạo ra. Sau đó, chúng ta có thể

chạy lệnh vnoc để xem hướng dẫn về các tham số của phần mềm. Các

tham số cần thiết để chạy một quá trình mô phỏng trong VNOC 2.0

được mô tả như sau:

trace_file: tên của trace file (sử dụng trong trường hợp mô

phỏng truyền thông thực).

164 Mạng trên chip

traffic: kiểu mô hình truyền thông (kiểu mô hình truyền thông

phải thuộc một trong những dạng sau: Uniform, Hotspot, Transpose1,

Transpose2, Selfsimilar và Tracefile). Theo đó, UNIFORM là truyền

thông theo mô hình phân bố chuẩn. HOTSPOT là truyền thông theo mô

hình chỉ phát ở một số nút mạng. TRANSPOSE1 và TRANSPOSE2 là

truyền thông theo mô hình chuyển vị. SELFSIMILAR là truyền thông

theo mô hình tự ánh xạ. TRACEFILE là truyền thông theo kịch bản có

sẵn (lấy từ tập tin ghi lại một quá trình truyền thông trên mạng thật).

hotspots: danh sách của nút hotspot trong mạng nếu ta mô

phỏng với kiểu HOTSPOT.

hotspot_percentage: xác suất các gói gửi qua nút hotspot.

injection_rate: tỷ lệ gói tin gửi vào mạng.

ary_size: kích thước mạng.

packet_size: kích thước gói tin.

flit_size: kích thước của flit.

inp_buf: kích thước bộ đệm input-port.

out_buf: kích thước bộ đệm output-port.

routing: dạng thuật toán định tuyến (XY hoặc TXY - Torus XY).

vc_n: số lượng kênh ảo.

link_bw: băng thông của các liên kết (link).

cycles: số chu kỳ xung cần chạy mô phỏng.

warmup: số lượng xung cần chạy “Warmup”.

hist_window: khung thời gian lấy mẫu cho một dự đoán.

do_dvfs: có áp dụng điều khiển DVFS hoặc không.

dvfs_mode: chế độ điều khiển DVFS (phải thuộc hai dạng:

SYNC or ASYNC).

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 165

use_link_pred: có sử dụng dự đoán về mức độ sử dụng liên kết

(Link Utilization) hay không.

Để có thể sử dụng VNOC 2.0 mô phỏng và đánh giá hiệu năng

của bộ điều khiển tần số - điện áp, chúng ta cần chỉnh sửa mã nguồn

của VNOC 2.0 cho phù hợp với bộ điều khiển tần số - điện áp VFC đã

thiết kế. Thuật toán phân phối DVFS của chương trình sẽ được thay

bởi thuật toán dựa trên lô-gic mờ. Chương trình VNOC 2.0 hỗ trợ sẵn

thuật toán phân phối DVFS dựa trên dữ liệu của tải mạng trong quá

khứ để dự đoán sự thay đổi của tải. Thuật toán này hoạt động với hai

phương thức là đồng bộ (tham số SYNC) và bất đồng bộ (tham số

ASYNC). Trong nghiên cứu của chúng tôi, đoạn chương trình

ASYNC đã được thay bằng đoạn chương trình thực hiện thuật toán

FUZZY. Vì vậy, tham số để sử dụng bộ FUZZY như là khối điều

khiển DVFS khi mô phỏng sẽ là dvfs_mode: ASYNC.

Phần mềm VNOC 2.0 cũng cung cấp hai thông số cho người sử

dụng có thể dùng để dự đoán mức độ hoạt động của mạng đó là: mức

độ sử dụng bộ đệm trên mỗi cổng BU và mức độ sử dụng liên kết trên

mỗi cổng LU. Trong đó, thông số LU được xác định chính là số lượng

flit truyền qua liên kết đó trong một khung thời gian lấy mẫu (được

gọi là: history window – hist_window). Giá trị của LU sẽ nhận được

thông qua hàm: counter_flits_sent_during_hw(int i)}. Để triển khai

thuật toán lô-gic mờ, thông số LU và giá trị biến thiên của nó qua một

khung thời gian (hist_window) sẽ được sử dụng để làm đầu vào cho

khối lô-gic mờ của bộ điều khiển tần số - điện áp VFC. Việc sử dụng

tham số nào để đánh giá tải mạng sẽ phụ thuộc tham số use_link_pred.

Nếu tham số này có giá trị „0‟ thì thông số BU sẽ được sử dụng và nếu

nó có giá trị là „1‟ thì thông số LU sẽ được sử dụng. Vì sử dụng thông

số LU là đầu vào của khối điều khiển tần số - điện áp nên chương

trình mô phỏng phải thiết lập với tham số use_link_pred = 1. Đoạn mã

chương trình mô tả quá trình thay thế thuật toán phân phối DVFS

bằng khối lô-gic mờ được thể hiện như ở dưới đây.

166 Mạng trên chip

if (use_link_pred() = true) {

for (i = 1; i < 4; i++) {

if (_LU_predicted_out_i[i] < _LU_predicted_out_i[i+1])

{

_LU_predicted_max = int(_LU_predicted_out_i[i+1]);

_LU_predicted_der_max=int(_LU_predicted_out_i_der[i+1]);

} else

{

_LU_predicted_max = int(_LU_predicted_out_i[i]);

_LU_predicted_der_max = int(_LU_predicted_out_i_der[i]);

}

}

flp_out = flp(_LU_predicted_max,_LU_predicted_der_max);

Giá trị ở đầu ra của bộ điều khiển tần số - điện áp VFC sẽ được

sử dụng để điều khiển giá trị điện áp – tần số một cách phù hợp. Phần

mềm VNOC 2.0 cung cấp sẵn hàm cho phép thay đổi tần số và điện áp

của bộ định tuyến: set_frequencies_and_vdd(int DVFS_LEVEL).

4.4.2. Đánh giá hiệu quả của bộ điều khiển tần số - điện áp

Để mô phỏng hoạt động của mạng trên chip sau khi đã tích hợp

bộ điều khiển tần số - điện áp sử dụng thuật toán lô-gic mờ được,

chúng tôi sử dụng các cấu hình và tham số chính tham khảo từ bộ

thông số mô phỏng chuẩn ở các công trình [128, 112, 129] như sau:

NoC được cấu hình với mô hình mạng có cấu trúc liên kết dạng

lưới hai chiều (2D mesh) với kích thước mạng 8×8. NoC gồm 64 bộ

định tuyến với kích thước bộ đệm vào ở mỗi bộ là 18 flit (có độ rộng

64 bit) trên mỗi kênh ảo. Mỗi bộ định tuyến có bốn kênh ảo.

Các bộ định tuyến sẽ được nối với nhau thông qua các liên kết

với tổng độ dài là 2 mm và độ rộng bus là 64 bit. Tổng độ dài liên kết

được ước lượng dựa trên công nghệ và độ rộng bus đã chọn, đồng thời

tham khảo từ [112, 129].

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 167

Mô hình truyền thông sử dụng trong các kịch bản mô phỏng

gồm hai dạng: UNIFORM và SELF-SIMILAR. Trong đó, mô hình

truyền thông UNIFORM là mô hình truyền thông chuẩn, được nhiều

nghiên cứu sử dụng để đánh giá hiệu năng hoạt động của mạng trên

chip. Riêng với mô hình truyền thông SELF-SIMILAR, đây được cho

là một mô hình truyền thông phản ánh gần đúng nhất quá trình truyền

thông trên mạng máy tính.

Các gói tin được đưa vào mạng với kích thước cố định là

6 flit/gói tin.

Tất cả các mô phỏng đều được chạy trong 100.000 chu kỳ xung

nhịp, trong đó 1.000 xung nhịp đầu tiên là để chạy khởi động (warmup).

Chế độ DVFS được áp dụng với ba cặp tần số - điện áp như sau:

, , .

Tần số được chọn phù hợp với lưu lượng truyền

thông cực đại mà bộ xử lý lô-gic mờ FLP có thể xử lý được. Các

mức điện áp được chọn phù hợp với công nghệ 65nm mà mô hình

ORION sử dụng.

Để có cơ sở đánh giá về hiệu quả tiết kiệm năng lượng của bộ

điều khiển tần số - điện áp đã thiết kế, các mô phỏng đối với các kiểu

truyền thông khác nhau đều được thiết lập để chạy với hai trường hợp

là: không áp dụng quá trình điều khiển DVFS và áp dụng quá trình

điều khiển DVFS. Với mỗi mô hình truyền thông khi áp dụng thuật

toán điều khiển DVFS, kịch bản mô phỏng sẽ được chạy với ba giá trị

khác nhau của khung thời gian lấy mẫu đó là: hist_window = 100,

hist_window = 150 và hist_window = 200. Tỷ lệ gói tin gửi vào mạng

sẽ được thay đổi trong từng kịch bản mô phỏng tùy thuộc vào kiểu

truyền thông được sử dụng để đảm bảo mạng không bị tắc nghẽn.

Để thu được các giá trị về công suất tiêu thụ và độ trễ truyền của

mạng khi chưa áp dụng quá trình điều khiển DVFS ta chạy lệnh mô

phỏng hoạt động của NoC với tham số do_dvfs = 0. Ví dụ:

vnoc traffic: UNIFORM injection_rate: 0.001 cycles:10000 do_dvfs:0

168 Mạng trên chip

Để thu được các giá trị về công suất tiêu thụ và độ trễ truyền của

mạng khi áp dụng quá trình điều khiển DVFS ta chạy lệnh mô phỏng

hoạt động của NoC với tham số do_dvfs1 = 1 và dvfs_mode =

ASYNC. Ví dụ:

vnoc traffic: UNIFORM injection_rate: 0.001 cycles: 10000 do_dvfs: 1

dvfs_mode: ASYNC use_link_pred: 1

6.4.3. Đánh giá hiệu năng với dạng truyền thông UNIFORM

Để đánh giá hiệu quả của bộ điều khiển tần số - điện áp đối với dạng

truyền thông UNIFORM, chúng tôi tiến hành chạy mô phỏng với thông

số lưu lượng dữ liệu truyền thông traffic được thiết lập là UNIFORM. Tỷ

lệ gói tin gửi vào mạng (thông số injection_rate) được thiết lập với giá trị

khởi đầu là 0,01 gói/chu kỳ và được tăng dần với bước giá trị là 0,005

gói/chu kỳ theo từng kịch bản mô phỏng. Qua khảo sát, khi hệ thống

được thiết lập để hoạt động ở chế độ điều khiển tỷ lệ điện áp và tần số

động DVFS và tỷ lệ gói tin gửi vào mạng lớn hơn 0,05 gói/chu kỳ thì

mạng sẽ bị tắc nghẽn. Vì vậy, các kịch bản mô phỏng sẽ thực hiện với tỷ

lệ gói tin gửi vào mạng không quá 0,05 gói/chu kỳ.

Kết quả mô phỏng thu được về năng lượng tiêu thụ của hệ thống

đối với dạng truyền thông UNIFORM được trình bày ở trong Bảng 6-2.

Đồ thị biểu diễn sự phụ thuộc của năng lượng tiêu thụ với tỷ lệ gói tin

gửi vào mạng trong trường hợp này được thể hiện như ở Hình 6-27.

Từ đồ thị, ta có thể thấy với trường hợp khung thời gian lấy mẫu nhỏ

(hist_window = 100) thì năng lượng tiêu thụ của hệ thống chỉ giảm rất

ít so với trường hợp khi chưa áp dụng kỹ thuật điều khiển tỷ lệ điện áp

và tần số động DVFS. Hiệu quả tiết kiệm năng lượng chỉ đạt khoảng

5,2% tương ứng với tỷ lệ gói tin gửi vào mạng là 0,05 gói/chu kỳ.

Điều này có thể giải thích là với thời gian lấy mẫu ngắn thì bộ xử lý

lô-gic mờ sẽ không kịp thu đủ dữ liệu để có thể đưa ra quyết định về

thay đổi tần số - điện áp cho hệ thống. Với kết quả thu được, ta có thể

thấy đối với mô hình truyền thông kiểu UNIFORM thì bộ điều khiển

tần số - điện áp đã được đề xuất có thể đạt hiệu quả tiết kiệm năng

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 169

lượng lên đến 43% tương ứng với tỷ lệ gói tin gửi vào mạng là 0,05

gói/chu kỳ và thông số hist_window = 200.

Bảng 6-2: Công suất tiêu thụ đối với kiểu truyền thông UNIFORM

Tỷ lệ đưa gói

tin vào mạng Công suất tiêu thụ (W)

(gói/chu kỳ) No_DVFS DVFS_100 DVFS_150 DVFS_200

0,010 1,4361 1,4359 1,4355 1,4345

0,015 1,7062 1,706 1,7056 1,7012

0,020 1,9756 1,9753 1,9713 1,9424

0,025 2,2441 2,2425 2,2201 2,1049

0,030 2,5147 2,51 2,432 2,1811

0,035 2,7845 2,7712 2,5713 2,2087

0,040 3,0464 3,0075 2,6515 2,2391

0,045 3,3191 3,2248 2,7074 2,2618

0,050 3,5855 3,3992 2,7394 2,3029

Hình 6-27: Công suất tiêu thụ đối với kiểu truyền thông UNIFORM.

1

1,5

2

2,5

3

3,5

4

0 0,01 0,02 0,03 0,04 0,05

NG

SU

ẤT

(W

)

TỶ LỆ GÓI TIN ĐƯA VÀO MẠNG (GÓI/CHU KỲ)

No_DVFS DVFS_100 DVFS_150 DVFS_200

170 Mạng trên chip

Các kết quả mô phỏng về độ trễ truyền được trình bày như ở

trong Bảng 6-3. Đồ thị biểu diễn sự phụ thuộc của độ trễ truyền với tỷ

lệ gói tin gửi vào mạng được thể hiện như trong Hình 6-28. Kết quả

thu được cho thấy trong trường hợp tỷ lệ gói tin là 0,05 gói/chu kỳ thì

độ trễ truyền cũng chỉ tăng thêm tối đa khoảng 80% so với trường hợp

không áp dụng kỹ thuật điều khiển tỷ lệ điện áp và tần số động DVFS.

Bảng 6-3: Độ trễ truyền đối với kiểu truyền thông UNIFORM

Tỷ lệ đưa gói

tin vào mạng Độ trễ truyền (chu kỳ)

(gói/chu kỳ) No_DVFS DVFS_100 DVFS_150 DVFS_200

0,010 35,3127 35,3127 35,3127 35,3194

0,015 36,0762 36,0762 36,1397 36,3049

0,020 36,941 36,9424 37,1928 37,5584

0,025 37,9287 37,9944 38,4316 39,4467

0,030 39,2962 39,4951 40,3443 42,4035

0,035 40,9304 41,3328 43,1801 46,3998

0,040 42,9702 43,7516 47,2628 54,2017

0,045 46,0000 47,5315 53,7371 65,1928

0,050 49,7726 53,2126 65,6165 92,0129

Hình 6-28: Độ trễ truyền đối với kiểu truyền thông UNIFORM.

30

40

50

60

70

80

90

100

0 0,01 0,02 0,03 0,04 0,05

ĐỘ

TR

Ễ (

CH

U K

Ỳ)

TỶ LỆ ĐƯA GÓI TIN VÀO MẠNG (GÓI/CHU KỲ)

No_DVFS DVFS_100 DVFS_150 DVFS_200

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 171

6.4.4. Đánh giá hiệu năng với dạng truyền thông SELF-SIMILAR

Đối với mô hình truyền thông dạng SELF-SIMILAR, chúng tôi

tiến hành chạy các kịch bản mô phỏng tương tự như ở Mục 6.4.3

nhưng với thông số traffic được thiết lập là SELF-SIMILAR. Tỷ lệ gói

tin gửi vào mạng được thiết lập với giá trị khởi đầu là 0,001 gói/chu

kỳ và sẽ được thay đổi qua từng kịch bản với bước giá trị là 0,001

gói/chu kỳ. Với tỷ lệ gói tin vào khoảng 0,019 gói/chu kỳ, mạng cũng

sẽ bị tắc nghẽn; do đó, các kịch bản mô phỏng sẽ không được thiết lập

giá trị injection_rate vượt quá ngưỡng này. Kết quả mô phỏng về công

suất tiêu thụ của mạng đối với kiểu truyền thông này được trình bày

chi tiết ở Bảng 6-4. Đồ thị biểu diễn sự phụ thuộc của công suất tiêu

thụ với tỷ lệ gói tin gửi vào mạng trong các trường hợp khác nhau của

thông số hist_window cũng được thể hiện như ở Hình 6-29.

Bảng 6-4: Công suất tiêu thụ đối với kiểu truyền thông SELF-SIMILAR

Tỷ lệ đưa gói

tin vào mạng Công suất tiêu thụ (W)

(gói/chu kỳ) No_DVFS DVFS_100 DVFS_150 DVFS_200

0,0010 0,9501 0,9506 0,9475 0,9475

0,0021 1,0038 1,0082 1,0065 1,0026

0,0033 1,0721 1,0690 1,0606 1,0526

0,0044 1,1324 1,1255 1,1168 1,1055

0,0055 1,1914 1,1825 1,1698 1,1566

0,0065 1,2445 1,2410 1,2281 1,2019

0,0077 1,3124 1,3007 1,2807 1,2486

0,0089 1,3751 1,3597 1,3281 1,2930

0,0100 1,4295 1,4120 1,3845 1,3394

0,0111 1,4895 1,4792 1,4312 1,3679

0,0122 1,5449 1,5236 1,4834 1,4081

0,0134 1,6126 1,5961 1,5273 1,4395

0,0142 1,6491 1,6490 1,5799 1,4765

0,0155 1,7191 1,7098 1,6390 1,5146

0,0166 1,7869 1,7669 1,6903 1,5468

0,0177 1,8415 1,8427 1,7285 1,5857

0,0188 1,9015 1,9012 1,7894 1,6103

172 Mạng trên chip

Hình 6-29: Công suất tiêu thụ đối với kiểu truyền thông SELF-SIMILAR.

Cũng tương tự như với kiểu truyền thông UNIFORM, đối với

trường hợp hist_window = 100 ta thấy công suất tiêu thụ trong hai

trường hợp áp dụng kỹ thuật điều khiển tỷ lệ điện áp và tần số động

DVFS và không áp dụng kỹ thuật này là gần như không thay đổi. Tỷ lệ

hiệu quả về mặt tiêu thụ năng lượng đối với dạng truyền thông này cũng

chỉ đạt tối đa khoảng 15% (trong trường hợp hist_window = 200). Có

thể thấy rằng đối với mô hình truyền thông dạng SELF-SIMILAR thì

hiệu quả tiết kiệm năng lượng của bộ điều khiển được đề xuất là không

cao. Điều này có thể lý giải là do mô hình SELF-SIMILAR tuy được

đánh giá là dạng truyền thông phản ánh khá đúng với quá trình truyền

thông trên mạng [130] nhưng nó chỉ phù hợp với các mạng có độ phức

tạp cao như mạng máy tính. Trong những mô hình mạng đơn giản như

mô hình mạng trên chip thì dạng truyền thông này chưa thể phản ánh

sát với khả năng truyền thông thực tế của mạng.

Các kết quả mô phỏng về độ trễ truyền của kiểu truyền thông

SELF-SIMILAR cũng được trình bày như ở Bảng 6-5. Đồ thị biểu

diễn sự thay đổi về giá trị của độ trễ truyền theo tỷ lệ gói tin gửi vào

mạng trong từng trường hợp thông số hist_window khác nhau cũng

được thể hiện như trong Hình 6-30. Từ kết quả ta thấy độ trễ truyền

tăng thêm khoảng 88% với trường hợp hist_window = 200 và tỷ lệ gói

tin gửi vào mạng ở mức 0,019 gói/chu kỳ. Tuy nhiên, trong trường

hợp này ta thấy độ trễ truyền đã bắt đầu tăng đột biến nên sẽ làm tắc

nghẽn mạng nếu tỷ lệ gói tin gửi vào lớn hơn giá trị 0,019 gói/chu kỳ.

0,80

1,00

1,20

1,40

1,60

1,80

2,00

0,0000 0,0050 0,0100 0,0150 0,0200

NG

SU

ẤT

(W

)

TỶ LỆ ĐƯA GÓI TIN VÀO MẠNG (GÓI/CHU KỲ)

No_DVFS DVFS_100 DVFS_150 DVFS_200

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 173

Bảng 6-5: Độ trễ truyền đối với kiểu truyền thông SELF-SIMILAR

Tỷ lệ đưa gói

tin vào mạng Độ trễ truyền (cycles)

(gói/chu kỳ) No_DVFS DVFS_100 DVFS_150 DVFS_200

0,0010 62,4448 63,7469 63,1168 64,4616

0,0021 66,0308 67,1209 68,3670 68,0480

0,0033 70,2799 69,7621 70,5225 69,6866

0,0044 72,3271 72,4358 73,6598 75,0464

0,0055 75,4287 74,4464 75,4435 77,4675

0,0065 76,8289 78,2567 80,2838 79,8564

0,0077 81,5980 82,1508 84,7751 85,6886

0,0089 85,7357 87,7644 89,1817 97,0321

0,0100 88,4889 90,0644 95,6485 101,4250

0,0111 96,7212 96,0298 102,4270 105,9849

0,0122 100,2125 98,5326 109,5057 119,0150

0,0134 110,0215 111,0377 118,0791 126,4432

0,0142 117,6606 119,6319 133,1088 136,2806

0,0155 126,6277 128,9624 140,6516 159,5778

0,0166 139,0773 135,2421 154,3833 183,3667

0,0177 148,3676 156,9831 171,8460 246,2747

0,0188 168,5772 190,7613 204,7842 317,1215

Hình 6-30: Độ trễ truyền đối với kiểu truyền thông SELF-SIMILAR.

50

100

150

200

250

300

350

0,0000 0,0050 0,0100 0,0150 0,0200

ĐỘ

TR

Ẽ T

RU

YỀ

N (

CH

U K

Ỳ)

TỶ LỆ ĐƯA GÓI TIN VÀO MẠNG (GÓI/CHU KỲ)

No_DVFS DVFS_100 DVFS_150 DVFS_200

174 Mạng trên chip

Kết quả thực nghiệm được so sánh với một số công trình nghiên

cứu liên quan như ở trong Bảng 6-6. Với cùng công nghệ CMOS

65nm (như đối với mô hình ORION đã áp dụng), ta thấy kiến trúc

ALPIN [94] có khả năng tiết kiệm năng lượng tiêu thụ rất cao (từ 80%

đến 100% so với mức HIGH). Tuy nhiên, để đạt được điều này thì

Beigné và đồng nghiệp đã áp dụng rất nhiều kỹ thuật tiết kiệm năng

lượng khác nhau (DVS, Ultra-Cut-Off) trên nhiều phần khác nhau của

kiến trúc ALPIN nhằm tiết kiệm cả công suất tiêu thụ động và công

suất tiêu thụ tĩnh. Trong khi đó, trong nghiên cứu này chúng tôi chỉ

tập trung tiết kiệm công suất tiêu thụ động cho một thành phần nhỏ

của một NoC đó là các bộ định tuyến.

Công trình của nhóm Pillamari [57] và Zakaria [99] cũng áp dụng

kỹ thuật điều khiển tỷ lệ điện áp và tần số động DVFS để thay đổi

điện áp - tần số cho từng phân vùng trên NoC (mỗi phân vùng là bao

gồm cả lõi IP và bộ định tuyến). Do đó, khả năng tiết kiệm năng lượng

của những hệ thống này khá cao. Với công trình [99] thì có thể tiết

kiệm tới hơn 50% công suất tiêu thụ. Tuy nhiên, công trình [99] được

tổng hợp trên công nghệ CMOS 45nm là công nghệ tiên tiến hơn

nhiều so với công nghệ CMOS 65nm mà nhóm chúng tôi sử dụng.

Công trình [57] chỉ đạt được hiệu suất tiết kiệm khoảng 30% do phải

thực thi trên công nghệ CMOS 90nm. Tuy vậy, công trình này lại áp

dụng kỹ thuật điều khiển tỷ lệ điện áp và tần số động DVFS cho

những phân vùng lớn của NoC nên nếu so sánh với kết quả của chúng

tôi thì hiệu quả đạt được vẫn thấp hơn.

Công trình do Ababei và đồng nghiệp đề xuất [112] là một công

trình có hướng tiếp cận khá gần với nghiên cứu của chúng tôi khi đều

hướng đến việc áp dụng kỹ thuật điều khiển tỷ lệ điện áp và tần số

động DVFS cho bộ định tuyến để giảm được công suất tiêu thụ cho hệ

thống. Cả hai nghiên cứu đều được mô phỏng trong cùng điều kiện khi

cùng sử dụng mô hình ORION với công nghệ CMOS 65nm của hãng

TSMC. Trong công trình [112], các tác giả đã đề xuất một thuật toán

cho phép giảm công suất tiêu thụ của bộ định tuyến trong hệ thống lên

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 175

tới 50% với độ trễ truyền tăng thêm khoảng gần 150%. Trong khi đó,

với kết quả mô phỏng của chúng tôi cho thấy bộ điều khiển lô-gic mờ

được đề xuất cho phép giảm công suất của bộ định tuyến trong hệ

thống khoảng 43% và độ trễ truyền chỉ tăng tối đa khoảng 80%.

Việc so sánh kết quả nghiên cứu từ những công trình trên cho

thấy trong điều kiện sử dụng cùng một công nghệ và đều áp dụng kỹ

thuật điều khiển tỷ lệ điện áp và tần số động DVFS thì kết quả mà

chúng tôi thu được cũng tương đương với các kết quả của những công

trình khác trên thế giới.

17

6

Mạ

ng

tr

ên

ch

ip

176 Mạng trên chip

Bản

g 6

-6:

So

sán

h,

đán

h g

iá k

ết

qu

ả đ

ạt

đư

ợc v

ới

mộ

t số

kỹ t

hu

ật

thiế

t kế n

hằm

giả

m c

ôn

g s

uất

tiêu

th

ụ c

ho

mạ

ng

trê

n c

hip

Côn

g t

rìn

h

Kỹ

th

uậ

t th

iết

kế

đư

ợc

áp

dụ

ng

Kh

ối

kiế

n t

rúc

trên

NoC

đư

ợc

áp

dụ

ng

kỹ

th

uậ

t

giả

m c

ôn

g s

uấ

t ti

êu t

hụ

Côn

g n

gh

ệ th

ực

thi,

đá

nh

giá

Hiệ

u q

uả

đạ

t đ

ượ

c

Kiế

n t

rúc

AL

PIN

[94

]

Điề

u k

hiể

n t

ỷ l

điệ

n á

p đ

ộn

g

(DV

S)

Ult

ra-C

ut-

Off

To

àn b

ộ N

oC

bao

gồm

:

các

lõi

IP v

à b

ộ đ

ịnh

tuy

ến đ

i kèm

.

CM

OS

65

nm

(S

T

Mic

roel

ectr

onic

s)

Côn

g s

uất

tiê

u t

hụ đ

ộng ở

chế

độ

LO

W g

iảm

10 l

ần s

o v

ới

chế

độ

HIG

H.

Côn

g s

uất

tiê

u t

hụ t

ĩnh g

iảm

8 l

ần

kh

i sử

dụng l

oại

tra

nsi

sto

r cô

ng

suất

SC

-CM

OS

Kỹ

thu

ật P

ST

R

[99

]

Điề

u k

hiể

n t

ỷ l

điệ

n á

p -

tần

số

độ

ng

(D

VF

S)

Từ

ng

phân

vùng

của

No

C

(gồ

m m

ột

số l

õi

IP v

à bộ

địn

h t

uy

ến h

oạt

độn

g ở

cùn

g m

ột

mứ

c điệ

n á

p)

CM

OS

45

nm

(S

T

Mic

roel

ectr

onic

s)

Côn

g s

uất

tiê

u t

hụ đ

ộng c

ủa

một

NoC

giả

m đ

ượ

c tố

i đ

a 51

,42%

.

Bộ p

hối

gh

ép

mạn

g c

ôn

g s

uất

thấp

ch

uẩn

OC

P

[91

]

Ch

ặn c

ấp x

un

g

nh

ịp

Bộ

ph

ối

gh

ép m

ạng

(N

I)

FP

GA

- X

ilin

x

Vir

tex5

Giả

m đ

ượ

c từ

37%

đến

63%

côn

g

suất

tiê

u t

hụ c

ủa

một

bộ N

I

Chương 6

. Ứ

ng d

ụng lô

-gic

mờ tro

ng thiế

t kế

mạn

g trê

n ch

ip…

177

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 177

Kiế

n t

rúc

Pro

du

cer

-

Con

sum

er F

IFO

[57

]

Điề

u k

hiể

n t

ỷ l

điệ

n á

p -

tần

số

độ

ng

(D

VF

S)

Từ

ng

phân

vùng

của

No

C

(gồ

m m

ột

số l

õi

IP v

à bộ

địn

h t

uy

ến h

oạt

độn

g ở

cùn

g m

ột

mứ

c điệ

n á

p)

CM

OS

90

nm

(TS

MC

)

Giả

m đ

ượ

c tố

i đ

a 32

,2%

ng

suất

tiê

u t

hụ đ

ộng

của

một

No

C.

Th

uật

to

án p

hân

ph

ối

DV

FS

[11

2]

Điề

u k

hiể

n t

ỷ l

điệ

n á

p -

tần

số

độ

ng

(D

VF

S)

Bộ

địn

h t

uy

ến m

ạng

(ro

ute

r)

CM

OS

65

nm

(TS

MC

)

Giả

m đ

ượ

c tố

i đ

a 50

% c

ông s

uất

tiêu

th

ụ đ

ộng

của

toàn

bộ c

ác b

địn

h t

uy

ến t

ron

g m

ột

No

C.

Bộ đ

iều k

hiể

n

lô-g

ic m

ờ đ

ượ

c đ

xu

ất [

11

1,

131,

10

1]

Điề

u k

hiể

n t

ỷ l

điệ

n á

p -

tần

số

độ

ng

(D

VF

S)

Bộ

địn

h t

uy

ến m

ạng

(ro

ute

r)

CM

OS

65

nm

(TS

MC

)

Giả

m đ

ượ

c tố

i đ

a 43

% c

ông s

uất

tiêu

th

ụ đ

ộng

của

toàn

bộ c

ác b

địn

h t

uy

ến t

ron

g m

ột

No

C.

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 178

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

Trong chương này, chúng tôi đã trình bày mô hình của một bộ

điều khiển tần số - điện áp dựa vào xử lý lô-gic mờ cho các bộ định

tuyến để nhằm giảm năng lượng tiêu thụ ở các nốt mạng trong một mô

hình mạng trên chip. Mô hình của bộ điều khiển tần số - điện áp cũng

đã được tiến hành mô hình hóa bằng ngôn ngữ mô tả phần cứng

VHDL ở mức chuyển dịch thanh ghi để có thể xây dựng phương án

đánh giá, ước lượng được hiệu quả của mô hình này. Các mô phỏng

hoạt động lô-gic của từng khối trong mô hình và toàn bộ khối điều

khiển cũng đã được thực hiện trên phần mềm ModelSim. Các kết quả

thu được đã chứng tỏ bộ điều khiển tần số - điện áp hoạt động hoàn

toàn đúng với các yêu cầu đặt ra khi xây dựng mô hình.

Sau khi đã thiết kế và mô hình hóa bộ điều khiển tần số - điện áp

cho bộ định tuyến trong mạng trên chip, việc ước lượng, đánh giá và

kiểm chứng hiệu năng của mô hình đề xuất đã được thực hiện nhờ áp

dụng mô hình ORION 3 kết hợp với phần mềm mô phỏng VNOC 2.0.

Kết quả cho thấy giải pháp đề xuất hoạt động hiệu quả, cho phép hệ

thống giảm tới 43% công suất tiêu thụ trong khi độ trễ truyền của hệ

thống chỉ tăng nhẹ.

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 179

Chương 7

THIẾT KẾ KIỂM TRA CHO MẠNG TRÊN CHIP

Các vi mạch trước khi đưa vào sử dụng trong các thiết bị đều cần

được kiểm tra nhằm phát hiện các lỗi có thể xảy ra trong quá trình sản

xuất. Việc kiểm tra phát hiện lỗi càng được thực hiện càng sớm càng

tốt, giúp giảm chi phí sản xuất sản phẩm cuối cùng. Với các hệ thống

trên chip, việc kiểm tra tìm kiếm lỗi sau khi vi mạch đã được đóng gói

hoàn toàn không dễ dàng. Chính vì vậy, người thiết kế cần phải tính

đến việc thực hiện kiểm tra trong quá trình thiết kế vi mạch nhằm giúp

cho quá trình kiểm tra sau khi đóng gói trở nên dễ dàng hơn. Từ đó,

hình thành khái niệm thiết kế kiểm tra1. Hình 7-1 mô tả một mô hình

thiết kế kiểm tra thông dụng cho hệ thống trên chip. Dữ liệu kiểm tra

sẽ được đưa vào hệ thống để kiểm tra lõi IP nhúng nhờ vào cơ chế

truy cập kiểm tra (TAM: Test Access Mechanism) và một mạch điện

đặc biệt bao quanh lõi IP gọi là test wrapper – thường được thiết kế

theo chuẩn IEEE 1500 [132].

Hình 7-1: Mô hình thiết kế kiểm tra cho hệ thống trên chip.

1 Thiết kế kiểm tra (DFT: Design-for-Test/Testability)

IP cầnkiểm tra

IP

CPU

I/OInterface

ROM

UserDefined

Logic

IP

IP

Wrapper

SRAM

TAM TAM

IP

Phân tíchkết quảBộ tạo dữ

liệu kiểm tra

TAM: Test Access Mechanism

180 Mạng trên chip

Mô hình mạng trên chip có nhiều ưu điểm, hứa hẹn được ứng

dụng rộng rãi trong các thiết bị điện tử trong tương lai gần. Tuy nhiên,

để đưa mô hình NoC vào các sản phẩm thương mại trên thị trường thì

việc kiểm tra các hệ thống mạng trên chip là một thách thức. Trong

các hệ thống mạng trên chip, các tài nguyên tính toán nhúng có thể

được kiểm tra bằng các phương pháp truyền thống (được phát triển

cho hệ thống trên chip) trong khi chúng ta cần các phương pháp kiểm

tra hiệu quả cho các kiến trúc mạng vì chúng có cấu trúc khá quy tắc.

Chương này sẽ giới thiệu và bàn luận về việc thiết kế kiểm tra cho

mạng trên chip, từ các nghiên cứu của các nhóm trên thế giới cho đến

giải pháp đề xuất của chúng tôi đối với mô hình mạng trên chip.

7.1. Giới thiệu

Nhằm giải quyết các vấn đề gặp phải khi thiết kế các hệ thống

trên chip như các ràng buộc về mặt thời gian, các nhà thiết kế đã đề

xuất mô hình hệ thống dị bộ toàn cầu - đồng bộ cục bộ (GALS:

Globally Asynchronous - Locally Synchronous) [133]. Với một hệ

thống GALS, các lõi IP giao tiếp một cách không đồng bộ với nhau

thông qua một môi trường truyền thông không đồng bộ. Chúng ta sẽ

dễ dàng nhận thấy rằng kiến trúc mạng trên chip hoàn toàn phù hợp

với nền tảng GALS khi kiến trúc mạng (các bộ định tuyến và các liên

kết mạng) được thực thi hoàn toàn bằng lô-gic không đồng bộ trong

khi các tài nguyên tính toán (các lõi IP) được thực thi với các phương

pháp thiết kế đồng bộ truyền thống [134].

Những nghiên cứu gần đây đề xuất một số kiến trúc mạng trên

chip không đồng bộ [19], [135], [46], [136]. Những ưu điểm chính của

mạng trên chip không đồng bộ là robustness (ít bị ảnh hưởng bởi sự

biến thiên về độ trễ do các tính chất vật lý, nhiệt độ hay điện áp gây

nên), dễ dàng thực hiện việc định tuyến, việc quản lý công suất tiêu

thụ một cách hiệu quả [96].

Để đưa mô hình mạng trên chip vào các sản phẩm thương mại

trên thị trường thì việc kiểm tra các hệ thống mạng trên chip là một

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 181

thách thức. Ngày nay, trong các hệ thống NoC, các tài nguyên tính

toán nhúng có thể được kiểm tra bằng các phương pháp truyền thống

trong khi chúng ta cần các phương pháp kiểm tra hiệu quả cho các

kiến trúc NoC vì chúng có cấu trúc khá quy tắc.

Trong khoảng hơn một thập kỷ qua, một số giải pháp thiết kế

kiểm tra đã được đề xuất. Tuy nhiên, hầu hết các giải pháp đề xuất tập

trung vào thiết kế kiểm tra cho các NoC đồng bộ [133], [137], [138],

[139]. Bên cạnh một vài giải pháp thiết kế kiểm tra đề xuất cho các

kiến trúc NoC không đồng bộ [140], thì tại công trình [141] chúng tôi

đã đề xuất một kiến trúc thiết kế kiểm tra sử dụng các mạch lô-gic

QDI (Quasi-Delay-Insensitive) cho các kiến trúc NoC không đồng bộ.

Kiến trúc thiết kế kiểm tra này sau đó được thực thi bằng công nghệ

CMOS 65nm của hãng STMicroelectronics. Tiếp đó, để triển khai

việc kiểm tra, Trần Xuân Tú và đồng nghiệp cũng đưa ra một phương

pháp tạo các dữ liệu kiểm tra cho các bộ định tuyến và liên kết mạng.

7.2. Kiểm tra các hệ thống trên chip dựa trên NoC

Cũng giống như các hệ thống trên chip truyền thống, các hệ thống

trên chip dựa trên mô hình NoC cũng cần được kiểm tra để đảm bảo

không chứa các lỗi trong quá trình sản xuất. Do cấu trúc của NoC có

tính nguyên tắc, chiến lược kiểm tra cho các hệ thống NoC cần phải

quan tâm đến các vấn đề sau: (1) kiểm tra các tài nguyên tính toán

nhúng (lõi IP) và các giao diện mạng đi kèm; (2) kiểm tra hạ tầng kết

nối bao gồm các bộ định tuyến và các liên kết mạng giữa các bộ định

tuyến này.

7.2.1. Sử dụng kiến trúc mạng để kiểm tra các tài nguyên tính toán

Để kiểm tra các lõi IP nhúng trong các hệ thống NoC, chúng ta có

thể sử dụng test wrapper được định nghĩa trong chuẩn IEEE 1500

[132] để kiểm tra từng lõi IP nhúng và kiến trúc mạng có thể được sử

dụng như là cơ chế truy cập kiểm tra (TAM: Test Access Mechanism)

băng thông cao. Theo đó, dữ liệu kiểm tra sẽ được đóng gói thành các

182 Mạng trên chip

gói tin được truyền trên mạng nhờ giao thức mạng (network protocol).

Ý tưởng sử dụng kiến trúc mạng như là một TAM được đề xuất lần

đầu bởi Mohsen Nahvi và André Ivanov, Đại học British Columbia,

Canada với mạng NIMA (Novel Indirect and Module Architecture)

[142]. Kiến trúc mạng này được phát triển cho mục đích kiểm tra,

không phải cho mục đích truyền thông trên hệ thống. Không lâu sau

đó, một số giải pháp kiểm tra lõi IP sử dụng NoC như là các TAM

băng thông cao cũng được đề xuất [143], [144]. Sự khác nhau căn bản

giữa các đề xuất này là việc thiết kế các test wrapper và sự thích ứng

của chúng đối với cách thức vận hành của mạng trên chip.

Những ưu điểm chính của hướng tiếp cận này là chúng ta không

cần thêm chi phí phần cứng để thực thi các TAM bổ sung và có thể

triển khai việc kiểm tra lõi xử lý từ nhiều đường khác nhau (multi-path

core test). Hơn nữa, việc xử lý dữ liệu kiểm tra cũng được tách ra khỏi

quá trình truyền thông và kiến trúc kiểm tra hoàn toàn có thể mở rộng

quy mô theo yêu cầu của hệ thống. Tuy nhiên, chúng ta cần lưu ý một

điều là kiến trúc NoC cần được kiểm tra một cách kỹ lưỡng trước khi

được sử dụng.

7.2.2. Kiểm tra kiến trúc kết nối

Việc kiểm tra kiến trúc kết nối là một trong những thách thức mới

ở mạng trên chip. Trong các công trình nghiên cứu trước đây về các

hệ thống GALS, giao diện giữa các lõi IP đồng bộ cục bộ đã được

giảm xuống thành các kết nối điểm-điểm, sử dụng các kỹ thuật đồng

bộ ở cả hai đầu. Các giải pháp kiểm tra liên quan là các phần mở rộng

kiểm tra để áp đặt một xung nhịp đồng hồ đơn cho cả hai đầu kết nối

và sử dụng phương pháp scan chain truyền thống trên miền xung nhịp

đồng hồ mới này. Phương pháp kiểm tra này được sử dụng tại công

trình [145]. Theo đó, lô-gic không đồng bộ bổ sung được kiểm tra

thông qua các mẫu kiểm tra chức năng cụ thể. Tuy nhiên, trong mô

hình mạng trên chip, kiến trúc kết nối không còn là một tập các kết nối

điểm-điểm mà toàn bộ kiến trúc định tuyến cần phải được kiểm tra.

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 183

Có một cách đơn giản để kiểm tra mạng truyền thông đó là định

tuyến dữ liệu kiểm tra đi qua các đường truyền thông khác nhau sử

dụng giao thức mạng. Nếu các đáp ứng kiểm tra (test response) khác

với kết quả mong muốn hoặc bị thất lạc thì chúng ta có thể khẳng định

là mạng truyền thông bị lỗi. Ưu điểm của phương án tiếp cận này là sự

đơn giản của nó và không đòi hỏi chi phí phần cứng để triển khai. Tuy

nhiên, phương pháp tiếp cận này có một số hạn chế. Mặc dù các bộ

định tuyến mạng có thể được cấu hình để truyền các dữ liệu kiểm tra

đi bất kỳ nơi đâu trong mạng, tuy nhiên khả năng kiểm tra (testability)

của mạng vẫn không được giải quyết. Chúng ta không thể truy cập

một cách trực tiếp tới các cổng vào của bộ định tuyến cần kiểm tra

(router-under-test) để có thể điều khiển và chúng ta cũng không thể

truy cập trực tiếp tới tất cả cổng ra của bộ định tuyến cần kiểm tra để

đọc kết quả.

Có một vài đề xuất thiết kế kiểm tra cụ thể dùng để kiểm tra các

kiến trúc NoC. Với các NoC đồng bộ thì chúng ta có thể sử dụng một

xung nhịp đồng hồ kiểm tra riêng cho toàn bộ vi mạch vì chúng ta có

thể xem NoC là tập hợp các lõi xử lý đồng bộ được kết nối với nhau

bằng kết nối điểm-điểm. Tuy nhiên, cách thức này không thực sự tối

ưu về mặt thời gian thực thi kiểm tra. Do đó, một số giải pháp cụ thể

cho từng thành phần của NoC đã được nghiên cứu trong thời gian qua.

Vì rằng các bộ định tuyến bao gồm các bộ đệm FIFO và các phần

mạch lô-gic định tuyến cho nên hầu hết các trao đổi trong [133], [137]

đều cho rằng việc kiểm tra bộ định tuyến mạng cần được thực hiện

thành từng phần tách biệt: sử dụng một bộ BIST (Built-In Self-Test)

cho các FIFO và các phương pháp truyền thống cho phần lô-gic định

tuyến. Tuy nhiên, các FIFO lại được phân bố trên toàn vi mạch và trở

thành một thử thách lớn đối với phương pháp tiếp cận này.

Một số đề xuất [138], [139] sử dụng kỹ thuật quét nối tiếp (serial

scan). Đây là phương pháp rất tốn kém về mặt không gian phần cứng

và thời gian thực thi đối với việc kiểm tra các NoC không đồng bộ.

Bên cạnh đó, các đề xuất này chỉ tập trung vào việc kiểm tra các bộ

184 Mạng trên chip

định tuyến mạng mà không quan tâm đến việc kiểm tra các kết nối

giữa các miền xung nhịp đồng hồ khác nhau.

NoC không đồng bộ được thiết kế và thực thi bằng các lô-gic

không đồng bộ, không sử dụng tín hiệu xung nhịp đồng hồ chung.

Việc kiểm tra các NoC không đồng bộ thường khó hơn kiểm tra các

NoC đồng bộ vì có nhiều vòng lặp phản hồi trong các mạch không

đồng bộ và thiếu sự hỗ trợ của các công cụ thiết kế điện tử EDA

(Electronics Design Automation) cho kiểm tra [145]. Có một vài

phương pháp tiếp cận thiết kế kiểm tra cho các mạch không đồng bộ

nhưng chi phí phần cứng quá lớn. Công trình nghiên cứu [140] trình

bày một kiến trúc kiểm tra cho NoC không đồng bộ dựa trên việc chèn

các scan-latches để ngắt các vòng lặp phản hồi của các thành phần

Muller-C1. Nhược điểm của đề xuất này là không gian thực thi kiến

trúc này chiếm tới 43% tổng không gian thực thi của cả thiết kế, cho

dù kích thước thiết kế nào.

7.3. Giới thiệu về kiến trúc NoC không đồng bộ

Phần này trình bày về kiến trúc NoC không đồng bộ được sử dụng

làm mục tiêu thử nghiệm khi xây dựng giải pháp thiết kế kiểm tra. Chi

tiết hơn về kiến trúc NoC không đồng bộ này được trình bày bởi Edith

Beigné và đồng nghiệp tại [46]. Kiến trúc NoC không đồng bộ này

được đặt tên là ANOC. Hình 7-2 mô tả mô hình của mạng trên chip

ANOC. Theo đó, kiến trúc mạng ANOC bao gồm các bộ định tuyến

mạng, các liên kết mạng, các giao diện đồng bộ không đồng bộ SAS

(asynchronoussynchronous) và các giao tiếp mạng. ANOC được sử

dụng như là kiến trúc truyền thông trong hệ thống trên chip GALS có

tên gọi là FAUST (Flexible Architecture Unified System for Telecoms

– Hệ thống hợp nhất có kiến trúc linh hoạt cho viễn thông) [20].

1 Muller element là một linh kiện cơ bản trong thiết kế số không đồng bộ self-

timed. Nó thực thi một sự kết hợp của các signal transitions (sự kiện/events).

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 185

Hình 7-2: Kiến trúc mạng trên chip không đồng bộ ANOC.

Các bộ định tuyến mạng không đồng bộ là các thành phần cơ bản

của kiến trúc mạng. Chúng có năm cổng vào/ra hai hướng để nối với

bốn bộ định tuyến lân cận (NORTH, EAST, SOUTH, WEST) và tài

nguyên tính toán đồng bộ gần nhất thông qua một bộ giao tiếp mạng

(NI: network interface) và một bộ giao diện SAS. Các bộ định tuyến

và liên kết mạng được thiết kế và thực thi sử dụng kiểu lô-gic không

đồng bộ QDI như trong [146]. Truyền thông giữa các bộ định tuyến

mạng được thiết lập bằng một giao thức bắt tay (giao thức “send-

accept” ở mức flit) với hai kênh ảo nhằm cải thiện chất lượng dịch vụ

(QoS: Quality of Service) của hệ thống. Các liên kết mạng là các kênh

hai hướng 34 bit. Trong đó, 32 bit được sử dụng cho dữ liệu và 2 bit

được sử dụng để mã hóa thông tin về gói tin: bắt đầu gói tin BoP

(Begin-of-Packet) và kết thúc gói tin EoP (End-of-Packet). Thông tin

định tuyến được chứa trong flit tiêu đề, cụ thể là ở trường thông tin

định tuyến “Path-to-Target”. Trường thông tin định tuyến này sẽ được

dịch sang phải hai bit tại mỗi bộ định tuyến sau khi hai bit có trọng số

thấp được sử dụng để xác định hướng đi tiếp theo (định tuyến nguồn).

7.4. Phương pháp kiểm tra đề xuất cho ANOC

Như đề cập trong Mục 7.2, các phương pháp tiếp cận có cấu trúc,

ứng dụng cho các mạch không đồng bộ, có chi phí không gian thực thi

NI

SAS

NI

SAS

NI

SAS

NI

SAS

NI

SAS

NI

SAS

NI

SAS

NI

SAS

NI

SAS

IP IP IP

IP IP IP

IP IP IP

R R R

R R R

R R R

186 Mạng trên chip

phần cứng khá lớn cũng như thời gian thực hiện kiểm tra khá dài. Hơn

nữa, việc thiếu vắng các công cụ EDA hỗ trợ kiểm tra từ các công ty

cung cấp công cụ hỗ trợ thiết kế cũng làm cho việc tạo ra các dữ liệu

kiểm tra một cách tự động ATPG (Automatic Test Pattern Generation)

cho các mạch lô-gic không đồng bộ trở nên rất khó khăn. Do đó,

phương pháp tiếp cận của chúng tôi là dựa vào tính nguyên tắc và các

đặc tính của kiến trúc mạng. Thách thức chủ yếu ở đây là làm thế nào

để tách rời các thành phần mạng (bộ định tuyến và các liên kết mạng)

để sau đó áp đặt trực tiếp các mẫu dữ liệu kiểm tra lên các thành phần

mạng cần kiểm tra (element-under-test) và thu về các kết quả kiểm tra.

Để việc kiểm tra trở nên dễ dàng đối với ANOC, chúng tôi đã đề

xuất kiến trúc thiết kế kiểm tra DFT như trong Hình 7-3. Trong kiến

trúc này, mỗi bộ định tuyến mạng không đồng bộ sẽ được bao quanh

bởi một test wrapper không đồng bộ để cải thiện khả năng điều khiển

(controllability) và khả năng quan sát (observability) của các bộ định

tuyến. Các liên kết mạng được tái sử dụng để thiết lập các cơ chế truy

cập kiểm tra TAM băng thông cao.

Hình 7-3: Kiến trúc thiết kế kiểm tra đề xuất [141].

Như vậy, test wrapper được sử dụng với các mục đích sau: (a) để

chèn các véc-tơ kiểm tra (test vector) vào các thành phần mạng cần

kiểm tra và lấy kết quả kiểm tra ra; (b) cùng với các liên kết mạng, để

cfg_in

cfg_out

data_in

data_out

GAC unit

Test Wrapper

kênh cấu hình kiểm traWCM

Lõi IP Lõi IP Lõi IP

Lõi IP Lõi IP Lõi IP

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 187

thiết lập các cơ chế truy cập kiểm tra TAM không đồng bộ có băng

thông cao để vận chuyển dữ liệu kiểm tra. Để kiểm tra một liên kết

mạng giữa các bộ định tuyến, chúng ta có thể sử dụng hai test wrapper

để chèn các véc-tơ kiểm tra và thu nhận kết quả kiểm tra.

Tất cả các hoạt động của test wrapper được điều khiển bởi mô-đun

điều khiển gọi là mô-đun điều khiển wrapper (WCM: Wrapper

Control Module). Để thiết lập một luồng kiểm tra (test flow)1 cho toàn

bộ kiến trúc mạng trên chip, trong đề xuất này chúng tôi thiết lập một

kênh cấu hình 2-bit dùng riêng cho mục đích kiểm tra bằng cách nối

các mô-đun WCM nối tiếp với nhau. Các luồng kiểm tra của toàn bộ

kiến trúc mạng trên chip được định nghĩa bởi một bộ điều khiển bên

ngoài. Bộ điều khiển này được tích hợp vào trong một thiết bị gọi là

thiết bị Cung cấp – Điều khiển – Phân tích dữ liệu kiểm tra (GAC:

Generator-Analyzer-Controller). Vai trò của thiết bị GAC là tạo ra các

dữ liệu kiểm tra, tạo ra cấu hình kiểm tra và phân tích kết quả kiểm

tra. Khối GAC này có thể được thực thi trên chip như là một khối

BIST hoặc thực thi bên ngoài chip như là một chương trình máy tính.

Trong quá trình nghiên cứu của chúng tôi, khối GAC này được thực

thi trên một kit phát triển FPGA để có thể dễ dàng kết nối với vi mạch

hệ thống mạng trên chip.

Giao tiếp truyền thông giữa khối GAC và kiến trúc ANOC bao

gồm các kênh vào/ra 34 bit „data_in‟ và „data_out‟) và kênh cấu hình

kiểm tra vào/ra hai bit („cfg_in‟ và „cfg_out‟).

Kiến trúc DFT đề xuất này được thiết kế và thực thi bằng lô-gic

không đồng bộ QDI vì một số lý do sau: hoàn toàn phù hợp với kiến

trúc mạng ANOC (cũng được thực thi với lô-gic không đồng bộ QDI);

không cần tín hiệu xung nhịp đồng hồ dành riêng cho kiểm tra; và

không thêm chi phí thực thi giao diện kết nối đồng bộ không đồng

bộ SAS. Hơn nữa, thường thì chúng ta dễ dàng kiểm tra thiết kế QDI

hơn vì trong hoạt động của mạch QDI yêu cầu sự dịch chuyển tín

hiệu; nếu xuất hiện bất kỳ một lỗi stuck-at tại lối ra linh kiện nào thì

1 Luồng kiểm tra (test flow) được hiểu là trình tự kiểm tra.

188 Mạng trên chip

cũng có thể làm mạch QDI bị treo [147]. Việc treo mạch này dễ dàng

nhận biết tại khối GAC vì nó không thể tiếp tục thực thi các giao thức

bắt tay 4 pha của lô-gic không đồng bộ. Sử dụng một watchdog, chúng

ta thực sự có thể nhận biết được liệu một ghi nhận (acknowledgement)

không bao giờ được trả về tại lối vào hoặc đầu ra dự kiến sẽ không

bao giờ đến hoặc không bao giờ kết thúc.

Việc tái sử dụng các liên kết mạng giữa các bộ định tuyến không

chỉ cho phép thiết lập được cơ chế truy cập kiểm tra TAM băng thông

cao mà còn giúp chúng ta tránh được các vấn đề liên quan đến tắc

nghẽn dây dẫn khi thực hiện layout cho toàn bộ vi mạch. Kiến trúc

DFT đề xuất được thiết kế cho mạng trên chip ANOC nhưng hoàn

toàn có thể được sử dụng cho tất cả các kiến trúc mạng trên chip

không đồng bộ khác được xây dựng bởi lô-gic QDI.

7.5. Thiết kế và thực thi

Mục này sẽ trình bày việc thiết kế và thực thi test wrapper – một

thành phần quan trọng của kiến trúc DFT đề xuất. Việc xây dựng kiến

trúc DFT tổng thể được thực hiện một cách đơn giản bằng việc lắp

ghép các test wrapper lại với nhau.

7.5.1. Kiến trúc test wrapper

Vai trò của test wrapper là vận chuyển dữ liệu kiểm tra (test

vector) tới các bộ định tuyến cần kiểm tra và lấy ra các kết quả kiểm

tra. Tương ứng với số cổng vào/ra của bộ định tuyến ANOC, test

wrapper được thiết kế bao gồm 5 khối kiểm tra lối vào (ITC: input test

cell), 5 khối kiểm tra lối ra (OTC: output test cell) và một mô-đun

điều khiển wrapper (WCM), như mô tả ở Hình 7-4. Các ITC và OTC

được kết nối luân phiên với nhau, tạo nên một đường boundary-scan

bao quanh bộ định tuyến. Lý do kết nối luân phiên các ITC và OTC là

nhằm tối ưu chi phí phần cứng thực thi test wrapper cũng như tối ưu

dây nối. Vai trò của WCM là điều khiển tất cả các khối kiểm tra (test

cell) để thực thi các chức năng của test wrapper.

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 189

Hơn nữa, để giảm thời gian kiểm tra và tối thiểu hóa độ phức tạp

của kiểm tra, trong các kiến trúc DFT luôn có chức năng bypass (vượt

qua). Chức năng này sẽ cho phép giảm độ dài của đường kiểm tra (test

path) bằng cách sử dụng các ngắn mạch (short-circuit) giữa đầu vào

và đầu ra của test wrapper. Với chức năng bypass, chỉ những bộ định

tuyến cần kiểm tra mới được đặt trong chế độ kiểm tra. Do đó, bộ định

tuyến cần kiểm tra dường như được kết nối trực tiếp với khối GAC,

trong khi các bộ định tuyến khác được đặt ở chế độ không hoạt động.

Hình 7-4 mô tả đường bypass hai hướng (đường đậm đứt nét) giữa các

cổng vào/ra EAST và các cổng và/ra WEST. Dữ liệu kiểm tra từ cổng

vào EAST của test wrapper được vận chuyển trực tiếp đến cổng ra

WEST của test wrapper và dữ liệu từ cổng vào WEST của test wrapper

được vận chuyển trực tiếp đến cổng ra EAST của test wrapper mà

không cần phải đi qua bộ định tuyến cũng như các test cell khác.

Hình 7-4: Test wrapper cùng với bộ định tuyến [141].

Bởi vì giao diện bên ngoài của test wrapper tương tự với giao

diện bên ngoài của bộ định tuyến, kiến trúc mạng trên chip gần như

không thay đổi ngoại trừ bổ sung thêm kênh cấu hình kiểm tra 2-bit.

Cũng giống kiến trúc ANOC, test wrapper này được thiết kế và

thực thi với lô-gic không đồng bộ QDI. Tại công trình nghiên cứu này,

WCM

OTC

ITC

ITC

OTC

ITC OTC

ITC

OTC

OTC ITC

Test wrapper

ANOC

router

WEST

RES

EAST

SOUTH

NORTH

cfg_in

cfg_out

2

2

34

190 Mạng trên chip

chúng tôi đã sử dụng giao thức trao đổi tín hiệu RTZ (return-to-zero)

4 pha cho các kênh không đồng bộ cùng với sử dụng bộ đệm WCHB

(Weak-Condition Half Buffer) cho các tầng đường ống. Để giảm thiểu

công suất tiêu thụ, đường truyền dữ liệu (32 bits + BoP + EoP) được

thiết kế hoàn toàn với dữ liệu mã hóa 1-of-4 (MR4) [148]; do đó, cần

kết nối 17 MR4 QDI (mỗi kết nối MR4 bao gồm 4 rails và một tín

hiệu acknowledge). Kênh cấu hình kiểm tra 2 bit cũng được thiết kế

với dữ liệu mã hóa 1-of-4 và do đó cần một kết nối MR4. Các kênh

điều khiển khác được thiết kế với dữ liệu mã hóa 1-of-2 (DR: Dual-

Rail) hoặc Single-Rail (SR) (mỗi kết nối DR bao gồm 2 rails và một

tín hiệu acknowledge và mỗi kết nối SR bao gồm 1 rail và một tín

hiệu acknowledge). Hình 7-5 mô tả cấu trúc của liên kết mạng.

Hình 7-5: Cấu trúc của một liên kết mạng [141].

7.5.2. Kiến trúc test cells

Trong kiến trúc test wrapper, các thành phần chính là các test cell

(ITC và OTC). Chức năng của các test cells có thể được mô tả như sau:

Ở chế độ bình thường (normal mode), dữ liệu truyền thông được

vận chuyển từ mạng đến bộ định tuyến thông qua các ITC và từ bộ

định tuyến trở về mạng thông qua các OTC mà không cần các tín hiệu

điều khiển kiểm tra (test control), nhờ tín hiệu vô hiệu hóa chế độ

kiểm tra chung.

Ở chế độ kiểm tra (test mode), hoạt động của các ITC được giải

thích như sau: dữ liệu kiểm tra từ mạng hoặc từ test cell trước đó được

một liên kết mạng

1 kênh DR

17 kênh MR4

2 kênh SR

Req. 1

Ack.

Req. 2

Req.

từ 1 đến 4

Ack.

Req.

Ack.

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 191

lưu trữ trong test cell hiện tại, sau đó dữ liệu được lưu trữ này sẽ được

vận chuyển tới bộ định tuyến cần kiểm tra hoặc test cell tiếp theo.

Điều này cũng hoàn toàn tương tự đối với OTC: dữ liệu kiểm tra từ bộ

định tuyến cần kiểm tra hoặc từ test cell trước đó được lưu trữ tại test

cell hiện tại; sau đó, dữ liệu được lưu trữ này sẽ được vận chuyển tới

mạng hoặc test cell tiếp theo. Tất cả các thao tác này được điều khiển

bởi các kênh điều khiển có nguồn gốc từ mô-đun WCM của wrapper.

Để thực thi các chức năng trên, chúng tôi đã phát triển một vi kiến

trúc của các test cell (cho cả ITC lẫn OTC) như mô tả trong Hình 7-6.

Hình 7-6: Vi kiến trúc của các test cell vào/ra (ITC và OTC) [96].

Vi kiến trúc này bao gồm hai bộ hợp kênh không đồng bộ (MUX

và MODE) và hai khối phân chia (splitting blocks) không đồng bộ (S1

và S2). Với kiến trúc này, dữ liệu truyền trông được vận chuyển từ lối

vào „noc-in‟ tới lối ra „noc-out‟ thông qua MODE trong chế độ hoạt

động bình thường. Trong chế độ kiểm tra, dữ liệu kiểm tra hoặc từ lối

vào „noc-in‟ hoặc từ lối vào „cell-in‟ được lưu trữ trên kênh không

đồng bộ „LOCAL‟ giữa MUX và MODE/cell tiếp theo nhờ vào các

đặc tính lưu trữ của thiết kế kênh không đồng bộ; sau đó, dữ liệu được

lưu trữ này sẽ được vận chuyển đến hoặc là lối ra „noc-out‟ hoặc lối ra

„cell-out‟. Các thao tác này được điều khiển bởi hai kênh điều khiển

không đồng bộ, „ctrl-mux‟ và „ctrl-mode‟, cung cấp bởi WCM.

Ở chế độ hoạt động bình thường (normal mode), „ctrl-mode‟ chỉ

được thăm dò và không cần xác nhận (sử dụng một C-element bất đối

xứng) để giảm thiểu độ trễ và tín hiệu điều khiển.

S2noc-in

noc-out

cell-in

cell-out

ctrl-mux

ctrl-mode

0

1

10

S1

MODE

MUX

LO CAL

A

B

192 Mạng trên chip

Để gửi dữ liệu tới một trong hai linh kiện tiếp theo, chúng ta sử

dụng một khối phân chia không điều khiển. Do đó, kênh lối vào „noc-in‟

được phân chia bởi S1 thành hai kênh (A và B) được nối với MODE

và MUX. Tương tự, kênh lưu trữ tại chỗ/cục bộ „LOCAL‟ được phân

chia bởi S2 thành hai kênh nối với MODE và „cell-out‟. Các bộ phân

chia không điều khiển này hoàn toàn là mạch tổ hợp và có thể dễ dàng

được thực thi bằng cách kết hợp các tín hiệu acknowledge (các tín

hiệu acknowledge từ MUX và MODE cho S1, các tín hiệu

acknowledge từ MODE và „cell-out‟ cho S2) nhằm giảm thiểu trễ và

chi phí không gian thực thi. Việc thực thi chi tiết các khối lô-gic này

được trình bày tại [96].

Ngoài ra, kiến trúc này sử dụng hai tín hiệu „accept0‟ và

„accept1‟ để điều khiển các luồng dữ liệu của hai kênh ảo. Mỗi bộ hợp

kênh (MUX và MODE) tạo ra một cặp tín hiệu accept. Nhờ vào điều

kiện loại trừ, các tín hiệu accept ra tại „noc-in‟ được tạo ra bằng cách

hợp các tín hiệu accept từ các bộ nhập kênh này. Việc này có thể được

thực hiện một cách dễ dàng bởi một khối lô-gic tổ hợp nhỏ. Để đơn

giản, vi kiến trúc của các test cell trong Hình 7-6 không bao gồm các

tín hiệu send/accept này.

Kích thước của các kênh kiểm tra cơ bản giống như kích thước

của các liên kết mạng bởi vì các khối hợp kênh và phân chia được

thực thi với các kênh có độ rộng 34 bit. Do đó, mỗi kênh kiểm tra có

17 kết nối MR4 QDI đối với đường truyền dữ liệu, một kết nối DR

dành cho tín hiệu „send‟ và hai kết nối SR dành cho hai tín hiệu

„accept0‟ và „accept1‟.

7.5.3. Các test cell với chức năng bypass

Như đề cập ở trên, chức năng bypass thường hay được sử dụng

trong các kiến trúc thiết kế kiểm tra. Trong trường hợp của chúng tôi,

để thực thi chức năng bypass cho test wrapper, chúng tôi đã sửa đổi

kiến trúc test cell như mô tả trong Hình 7-7.

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 193

Hình 7-7: Vi kiến trúc của các test cell với chức năng bypass:

(a) khối kiểm tra lối vào ITC; (b) khối kiểm tra lối ra OTC [141].

Phần thay đổi quan trọng ở đây chính là bộ hợp kênh MODE. Với

các khối kiểm tra lối vào ITC, chúng tôi thêm một kênh lối ra bypass

(„bp-out‟), xem Hình 7-7(a). Với các test cell lối ra OTC, chúng tôi

thêm một kênh bypass lối vào („bp-in‟), xem Hình 7-7(b). Lúc này,

kênh điều khiển „ctrl-mode‟ được mã hóa bằng dữ liệu mã hóa MR3

để có thể mã hóa giá trị ba chế độ hoạt động khác nhau (bình thường,

kiểm trat và bypass). Ở chế độ bypass, dữ liệu từ „noc-in‟ sẽ được vận

chuyển tới lối ra „bp-out‟ của các ITC và dữ liệu từ lối vào „bp-in‟ sẽ

được vận chuyển tới „noc-out‟ của các OTC. Bảng 7-1 tổng hợp các

hoạt động của test cell theo các giá trị của các kênh điều khiển.

S2noc-in

noc-out

cell-in

cell-out

ctrl-mux

ctrl-mode

10

S1

MODE

MUX

LO CAL

bp-out

(a)

S2noc-in

noc-out

cell-in

cell-out

ctrl-mux

ctrl-mode

10

S1

MODE

MUX

LO CAL

bp-in

(b)

194 Mạng trên chip

Bảng 7-1: Mô tả hoạt động của các test cell

ctrl-

mode

ctrl-

mux Mô tả hoạt động của các test cell

0 - Chế độ hoạt động bình thường (normal), luôn được

cho phép để giảm số lần điều khiển.

- 0 Nhận dữ liệu từ „noc-in‟ và lưu trữ.

- 1 Nhận dữ liệu từ „cell-in‟, sau đó lưu trữ dữ liệu hoặc

vận chuyển dữ liệu tới „cell-out‟ nếu có một yêu cầu

từ cell tiếp theo.

1 - Vận chuyển dữ liệu đang lưu trữ tới „noc-out‟.

2 - Chế độ bypass (luôn được cho phép để giảm số lần

điều khiển).

Chú ý: dấu (-) có nghĩa là không có giá trị nào được viết lên kênh điều khiển.

Để nhận một dữ liệu từ „noc-in‟, lưu trữ dữ liệu này trên kênh

„LOCAL‟ và sau đó gửi nó tới „noc-out‟, kênh điều khiển „ctrl-mux‟

cần được viết với giá trị „0‟ và kênh điều khiển „ctrl-mode‟ cần được

viết với giá trị „1‟.

7.5.4. Mô-đun điều khiển wrapper

Hoạt động của test wrapper được quyết định bởi các khung cấu

hình kiểm tra (TCF: Test Configuration Frame), tạo ra bởi khối GAC.

Để giảm số kênh điều khiển được cung cấp bởi khối GAC, toàn bộ

khung cấu hình kiểm tra được phân chia ra thành hai mẩu 2-bit, được

gửi lần lượt tới mô-đun điều khiển wrapper (WCM: Wrapper Control

Module). Với kiến trúc của chúng tôi, mỗi khung cấu hình kiểm tra

gồm 25 mẩu cấu hình 2 bit (được mã hóa bởi mã 1-of-4), minh họa

trong Hình 7-8.

Hình 7-8: Khung cấu hình kiểm tra.

EoF ID [2:0] EMO4 MMCO4 EMI4 MCI4 EMO0 MCI0 EMO0 MCI0

24 23 : 21 RO – RI 0NO – NIW…S…E

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 195

Ý nghĩa của khung cấu hình kiểm tra được giải thích trong Bảng 7-2.

Bảng 7-2: Giải thích về khung cấu hình kiểm tra

EoF Thông báo kết thúc khung cấu hình (End of Frame)

ID[2:0] Mã số test wrapper

EMO[i] Cho phép kênh „ctrl-mode‟ của OTC i

MCO[i] Giá trị của kênh „ctrl-mux‟ của OTC i

EMI[i] Cho phép kênh „ctrl-mode‟ của ITC i

MCI[i] Giá trị của kênh „ctrl-mux‟ của ITC i

M Chế độ làm việc của test wrapper

Mỗi vị trí cấu hình được mã hóa bởi một dữ liệu MR4 (2 bit); do

đó, giá trị của mỗi vị trí cấu hình có thể là “0”, “1”, “2” và “3” [MR4]

(tương ứng với các giá trị {00}, {01}, {10} và {11} trong mã nhị phân).

Giá trị “3” [MR4] thông báo kết thúc khung cấu hình EoF; do đó, các vị

trí cấu hình khác có thể sử dụng nhiều nhất ba giá trị. Với ba vị trí cấu

hình cho phần nhận diện test wrapper, khung cấu hình kiểm tra TCF có

thể được sử dụng cho các kiến trúc NoC có tới 27 bộ định tuyến. Với

các kiến trúc NoC lớn hơn, chúng ta cần thêm vị trí nhận diện.

Vai trò của mô-đun điều khiển WCM là gom các giá trị cấu hình

liên tiếp từ kênh cấu hình cho đến khi chúng tạo nên khung cấu hình

kiểm tra TCF cho test wrapper. Khi mô-đun điều khiển WCM nhận

được khung cấu hình đầy đủ bằng cách nhận biết thông tin EoF như là

mảnh cuối cùng của cấu hình, nó phải xác định xem khung cấu hình

nhận được dành cho test wrapper này hay không. Việc này được thực

hiện một cách dễ dàng bằng trường ID (“Indentifier‟). Nếu ID của

khung cấu hình tương ứng với test wrapper này thì WCM của test

wrapper đó sẽ tạo ra các kênh điều khiển (tương ứng với các giá trị

của khung cấu hình) để điều khiển các test cell.

Để thực thi chức năng trên, mô-đun điều khiển WCM được cấu

tạo gồm bộ dịch khung (frame shifter), khối “EoF Detector” (phát hiện

kết thúc khung), khối “ID Verifier” (kiểm tra mã số của wrapper) và

khối truyền tín hiệu kiểm tra, như minh họa ở Hình 7-9.

196 Mạng trên chip

Hình 7-9: Mô-đun điều khiển wrapper (WCM) [141].

Mục đích của bộ dịch khung là đọc cấu hình mới từ khối GAC

thông qua lối vào „cfg-in‟, dịch khung cấu hình kiểm tra một vị trí

(mẩu cấu hình 2 bit) sang phải và viết ra vị trí cấu hình có trọng số

thấp nhất lên kênh cấu hình thông qua lối ra „cfg-out‟. Khối kiểm tra

kết thúc khung “EoF Detector” sẽ nhận biết việc một khung cấu hình

kiểm tra đã được nhận đầy đủ và khối kiểm tra mã số “ID Verifier” sẽ

xác minh mã số nhận dạng của khung cấu hình kiểm tra nhận được.

Khối truyền tín hiệu kiểm tra được sử dụng để điều khiển các test cell.

Nó nhận các giá trị điều khiển từ bộ dịch khung khi xuất hiện tín hiệu

EoF và mã số ID trùng hợp với test wrapper. Các lối ra của Bộ dịch

khung này bao gồm 20 kênh điều khiển „ctrl-mode[i]‟ và „ctrl-mux[i]‟,

với i nhận giá trị từ 0 đến 4 tương ứng với các hướng NORTH, EAST,

SOUTH, WEST, RES) được sử dụng để điều khiển 10 test cell.

Giá trị của Mode (M) có thể là “0”[MR4] (chế độ hoạt động

thông thường), “1”[MR4] (chế độ kiểm tra), hoặc “2”[MR4] (chế độ

bypass). Giá trị được viết lên kênh điều khiển „ctrl-mode[i]‟ của các

ITC hoặc của các OTC là giá trị của vị trí Mode. Tuy nhiên, trong chế

độ kiểm tra kênh „ctrl-mode[i]‟ của ITC i chỉ được viết khi EMI[i]

bằng “1”[MR4] và kênh điều khiển „ctrl-mode[i]‟ của OTC i chỉ được

viết khi EMO[i] bằng “1”[MR4]. Giá trị được viết trên mỗi kênh „ctrl-

mux[i]‟ của các ITC hoặc các OTC phụ thuộc vào giá trị của MCI[i]

hoặc MCO[i] một cách tương ứng: kênh „ctrl-mux[i]‟ của ITC i nhận

giá trị „0‟ khi MCI[i] bằng “1”[MR4], nó nhận giá trị „1‟ khi MCI[i]

bằng “2”[MR4]; tương tự, kênh „ctrl-mux[i]‟ của OTC i nhận „0‟ khi

MCO[i] bằng “1”[MR4], nó nhận giá trị „1‟ khi MCO[i] bằng “2”[MR4].

Bộ dịch khung

EoF

Detector

ID

Verifier

Truyền tín hiệu kiểm tra

MR[4] MR[4]cfg-in cfg-out

ctrl-mode[i] &

with i = 0..4

ctrl-mux[i]

EoFID ok

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 197

Chúng ta có thể tổng hợp các mối liên hệ giữa TCF và các kênh điều

khiển ở trên như trong Bảng 7-3.

Bảng 7-3: Mối liên hệ giữa TCF và các kênh điều khiển

For direction i OTC i ITC i

M EMO MCO EMI MCI ctrl-mode ctrl-mux ctrl-mode ctrl-mux

0 X X X X 0 - 0 -

2 X X X X 2 - 2 -

1 0 0 0 0 - - - -

1 1 0 1 0 1 - 1 -

1 0 1 0 1 - 0 - 0

1 0 2 0 2 - 1 - 1

Chú ý: dấu (-) có nghĩa là không có giá trị nào được viết lên kênh điều khiển.

Để hiểu rõ hơn, bây giờ chúng ta lấy một ví dụ về việc kiểm tra

đường định tuyến NORTH SOUTH của một bộ định tuyến, như minh

họa trong Hình 7-10. Trong ví dụ này, chúng ta giả thiết rằng cổng

phía Đông (EAST) của bộ định tuyến được kết nối với cơ chế truy cập

kiểm tra TAM.

Hình7-10: Wrapper được cấu hình để kiểm tra đường định tuyến

NORTH SOUTH [96].

WCM

OTC-3

ITC-3

ITC-1

OTC-1

ITC-0 OTC-0

ITC-4

OTC

-4

OTC-2 ITC-2

Test wrapper

ANOC

router

WEST

RES

EAST

SOUTH

NORTH

cfg_in

cfg_out

2

2

34

Input

Output

Routing path

Under test

198 Mạng trên chip

Chúng ta có thể dễ dàng tạo ra khung cấu hình kiểm tra TCF cho

quá trình kiểm tra này, xem Bảng 7-4.

Bảng 7-4: TCF dùng để kiểm tra đường định tuyến NORTH-SOUTH

EoF ID RO-RI WO-WI SO-SI EO-EI NO-NI M

3 001 00-00 00-00 01-02 12-01 02-12 1

Khung cấu hình kiểm tra này có thể được giải thích như sau: Giá

trị có trọng số lớn nhất EoF = “3”[MR4] cho biết kết thúc khung cấu

hình. Ba giá trị tiếp theo ID = “001”[MR4]) có nghĩa là khung cấu

hình này được dùng cho test wrapper có mã số là 1. Giá trị có trọng số

bé nhất Mode = “1”[MR4] đặt test wrapper vào chế độ kiểm tra. EI = “01”

(cũng như EMI[1] = „0‟ và MCI[1] = „1‟) có nghĩa là ITC-1 (EAST)

nhận dữ liệu kiểm tra từ TAM và dịch chuyển chúng tới OTC-0

(NORTH). NO = “02”[MR4] có nghĩa là OTC-0 hoạt động ở chế độ

dịch chuyển (shifting mode); do đó, dữ liệu kiểm tra được dịch tới

ITC-0 (NORTH). Dữ liệu kiểm tra sau đó được đưa vào bộ định tuyến

cần kiểm tra bởi ITC-0 vì rằng NI = “12”[MR4].

Sau các hoạt động của bộ định tuyến, với SO = “01”[MR4], OTC-2

(SOUTH) nhận các kết quả kiểm tra từ bộ định tuyến cần kiểm tra và

vận chuyển chúng tới ITC-2 (SOUTH). ITC-2 đang hoạt động ở chế độ

dịch chuyển vì SI = “02”[MR4]. Do đó, kết quả kiểm tra được dịch

chuyển tới OTC-1 (EAST). Với EO = “12”[MR4], OTC-1 nhận các kết

quả kiểm tra và gửi chúng tới bộ phân tích kiểm tra được tích hợp

trong khối GAC thông qua cơ chế truy cập kiểm tra TAM.

Chú ý rằng, cơ chế truy cập kiểm tra TAM được thiết lập bởi các

test wrapper khác và các liên kết mạng. Các vị trí cấu hình kiểm tra

khác như RO, RI, WO, WI nhận giá trị “00”[MR4] có nghĩa là các test

cell sau đây không liên quan và không bị điều khiển: OTC-4 (RES),

ITC-4 (RES), OTC-3 (WEST) và ITC-3 (WEST).

Mục tiêu của ví dụ trên là chỉ ra cách thức xây dựng một khung

cấu hình kiểm tra. Về thực tiễn, các khung cấu hình kiểm tra này được

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 199

tạo ra một cách tự động bằng một chương trình kiểm tra riêng, phụ

thuộc vào chiến lược kiểm tra.

7.6. Tạo dữ liệu kiểm tra

7.6.1. Mô hình lỗi cho mạch không đồng bộ QDI

Thao tác của mạch đồng bộ dựa vào các giá trị lô-gic quan sát

được trên các net1 tại từng chu kỳ xung nhịp đồng hồ. Do đó, kiểm tra

mạch đồng bộ dựa vào việc điều khiển và quan sát các mức lô-gic của

các net. Các phương pháp ATPG đồng bộ truyền thống sử dụng đặc

tính này để áp đặt các giá trị lối ra flip-flop với các giá trị lô-gic khác

nhau và quan sát mức lô-gic tại các lối vào flip-flop để nhận biết các

lỗi stuck-at đơn (SSA) của mạch cần kiểm tra. Công cụ ATPG xác

định các tổ hợp giá trị trên tất cả các flip-flop để nhận biết lỗi.

Tuy nhiên, hoạt động của mạch không đồng bộ QDI dựa trên các

mã thông báo (token) chạy bên trong lô-gic. Mã hóa 1-of-N return-to-

zero được sử dụng để truyền bá các mã thông báo: tất cả các net nhận

giá trị giữa lô-gic „1‟ (có dữ liệu) và lô-gic „0‟ (không có dữ liệu)

trong quá trình hoạt động. Hình 7-11 mô tả hành vi này trong trường

hợp các mạch không đồng bộ QDI mã hóa 1-of-2 return-to-zero.

Chúng ta có thể thấy rằng một net bị mắc kẹt (stuck-at net) sẽ cản trở

sự thay đổi xen luân phiên nói trên và chặn một trong các vòng bắt tay

cũng như tất cả các quá trình tiếp của mạch, như minh họa trong

Hình 7-12. Khi đó, tại lối ra chúng ta không quan sát thấy dữ liệu.

Hơn nữa, nếu nhiều net bị mắt kẹt ở các vòng lặp bắt tay khác nhau thì

thiết kế đang kiểm tra sẽ bị ngừng hoạt động. Nhờ đó, chúng ta dễ

dàng phát hiện thiết kế bị lỗi.

1 Cách gọi đường tín hiệu trong mạch.

200 Mạng trên chip

Hình 7-11: Hoạt động của các mạch không đồng bộ QDI

mã hóa 1-of-2 return-to-zero.

Hình 7-12: Mạch bị chặn (ngừng hoạt động) bởi một stuck-at net „Req1‟.

Do đó, để quan sát các lỗi stuck-at trên các net của mạch không

đồng bộ QDI, chúng ta chỉ cần gán ép (force) một tín hiệu bắt tay trên

mỗi net và kiểm tra sự sống của mạch. Nhờ vậy, việc tạo dữ liệu kiểm tra

cũng đơn giản hơn. Tuy nhiên, do không có công cụ tự động để tạo dữ

liệu kiểm tra, trong trường hợp này chúng tôi phải phân tích chức năng

Bên gửi Bên nhận

Req0

Req1

Ack

0 1

Req0

Req1

Ack

lần truyền thứ nhất lần truyền thứ hai

Pha 1 Pha 2 Pha 3 Pha 4Pha 1 Pha 2 Pha 3 Pha 4

Req0

Req1

Ack

Bên gửi Bên nhận

Req0

Req1

Ack

0 1

Req0

Req1

Ack

Req0

Req1

Ack

lần truyền thứ nhất lần truyền thứ hai

Pha 1 Pha 2 Pha 3 Pha 4Pha 1 Pha 2 Pha 3 Pha 4

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 201

của mạch để xây dựng dữ liệu kiểm tra. Vì rằng, mạng trên chip là các

cấu trúc kết nối, không phải là cấu trúc xử lý, nên chỉ có một vài phần

điều khiển cần phải kích thích tất cả các net và test wrapper chỉ cần được

cấu hình để đưa các véc-tơ kiểm tra vào lối vào và lấy kết quả ở lối ra.

7.6.2. Dữ liệu kiểm tra cho các liên kết mạng

Trong ANOC, các liên kết mạng được thực thi bằng lô-gic QDI

không đồng bộ. Mỗi liên kết mạng được cấu thành gồm 17 kênh MR4,

một kênh DR và hai kênh SR, như minh họa trong Hình 7-5. Các kênh

MR4 được sử dụng để vận chuyển dữ liệu truyền thông, kênh DR

„send‟ được sử dụng để chỉ ra kênh ảo nào được sử dụng để truyền dữ

liệu và các kênh SR („accept0‟ và „accept1‟) được sử dụng để biểu thị

sự sẵn sàng của các kênh ảo tương ứng. Mỗi kênh MR4 bao gồm bốn

đường (rail) yêu cầu và một đường xác nhận. Mỗi kênh DR bao gồm

hai đường yêu cầu và một đường xác nhận và mỗi kênh SR gồm một

đường yêu cầu và một đường xác nhận.

Xem xét chức năng của mạng, các liên kết mạng không cần điều

khiển mà chỉ truyền các giá trị từ lối vào của liên kết mạng tới lối ra

của liên kết mạng. Việc kiểm tra một liên kết mạng tương đương với

việc kiểm tra 17 kênh MR4 độc lập và kiểm tra các kênh DR và SR.

Các véc-tơ kiểm tra toàn diện cho 17 kênh MR4 được xây dựng dựa

trên 4 giá trị có thể xảy ra đối với mỗi một chữ số mã 1-of-4 của các

tín hiệu dữ liệu, đó là “0.0.0….0”, “1.1.1….1”, “2.2.2….2”;

“3.3.3….3”. Các véc-tơ này được gửi từ test wrapper của một bộ định

tuyến tới test wrapper của bộ định tuyến bên cạnh. Bên cạnh đó, để

kiểm tra tín hiệu biểu thị kênh ảo (tín hiệu „send‟), hay kênh DR, thì

chúng ta cần chữ số mã 1-of-2 với hai giá trị có thể xảy ra (“0” và “1”)

đi kèm với các véc-tơ kiểm tra ở trên. Các kênh SR „accept‟ sẽ được

kiểm tra một cách tự nhiên khi test wrapper của bộ định tuyến bên

cạnh phản hồi việc chấp nhận một flit trên các tín hiệu „data+send‟.

Bảng 7-5 trình bày bộ véc-tơ kiểm tra dành cho một liên kết mạng.

Cuối cùng, chúng ta chỉ cần bốn véc-tơ để kiểm tra một liên kết mạng.

Bởi vì tất cả các liên kết mạng giống nhau nên các véc-tơ này được sử

dụng để kiểm tra tất cả các liên kết mạng.

202 Mạng trên chip

Bảng 7-5: Bộ dữ liệu kiểm tra cho từng liên kết mạng

Data (tất cả 17 chữ số mã “1-of-4”) Send (chữ số mã 1-of-2)

“0.0.0…………………0” “0”

“0.0.0…………………0” “1”

“0.0.0…………………0” “0”

“0.0.0…………………0” “1”

7.6.3. Dữ liệu kiểm tra cho các bộ định tuyến mạng

Chức năng của bộ định tuyến ANOC có thể được giải thích như

sau: các tài nguyên tính toán chia sẻ các gói dữ liệu (các gói dữ liệu

này có thể được định tuyến một cách riêng rẽ trên mạng). Một gói tin

bao gồm các flit nối tiếp nhau (mỗi một flit bao gồm 32 bit dữ liệu và

hai bit điều khiển). Mỗi gói tin luôn bao gồm một flit tiêu đề, theo sau

bởi các flit dữ liệu và flit đuôi như được đề cập trong Mục 7.3. Flit

tiêu đề sẽ cung cấp thông tin định tuyến, chứa tại trường thông tin

định tuyến “Path-to-Target”, là một véc-tơ gồm các hướng định tuyến

mà gói tin cần đi theo. Mỗi bộ định tuyến sử dụng hai bit có trọng số

thấp nhất của véc-tơ định tuyến đó để định tuyến toàn bộ gói tin đến

hướng được xác định sẵn và dịch trường định tuyến “Path-to-Target”

sao cho nó có thể được sử dụng bởi bộ định tuyến tiếp theo. Các flit

dữ liệu chứa các dữ liệu truyền thông và flit đuôi thông báo với bộ

định tuyến sự kết thúc của gói tin.

Theo Hình 7-13, mỗi một đơn vị cổng vào bao gồm một khối vào

IN nhận dữ liệu từ lối vào. Dữ liệu này sau đó được phân kênh tới hai

khối kênh ảo (VC0 và VC1). Tương tự, mỗi đơn vị cổng ra bao gồm

các khối kênh ảo (VC0 và VC1) và một khối lối ra OUT cho phép

nhập kênh dữ liệu từ hai kênh ảo và chuyển chúng tới lối ra.

Việc kiểm tra một bộ định tuyến có thể được thực hiện theo cách

sau: các véc-tơ kiểm tra được chèn vào một trong các cổng vào của bộ

định tuyến và kết quả kiểm tra được đọc tại các cổng ra. Để đưa được

các véc-tơ kiểm tra này tới bộ định tuyến cần kiểm tra, các véc-tơ kiểm

tra này phải được đóng gói như các gói dữ liệu kiểm tra và phải tuân thủ

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 203

định dạng của các gói tin thông thường được sử dụng trong mạng trên

chip. Với cấu trúc được trình bày trong Hình 7-13, các đường định

tuyến thông thường trong bộ định tuyến được xác định bởi:

- Thông tin BoP/EoP thông báo sự hiện diện của trường định

tuyến và sự cần thiết để dịch chuyển nó hay không.

- Thông tin hướng định tuyến chỉ báo nơi mà dữ liệu được định

tuyến đến.

- Thông tin kênh ảo VC chỉ báo nơi mà các flit được lưu trữ.

Việc chèn các gói dữ liệu kiểm tra vào trong các đơn vị lối vào

khác nhau được thực hiện bằng cách cấu hình test wrapper như đã đề

cập ở trên.

Hình 7-13: Phân tích cấu trúc của một bộ định tuyến ANOC [141].

Để có thể có được độ bao phủ kiểm tra đầy đủ cho bộ định tuyến

cần kiểm tra, dữ liệu kiểm tra cần được đóng gói theo định dạng mô tả

trong Hình 7-14.

IN

(Kết

nốichuyển

mạch)

Đơn vị cổng vào 0

IN_0 OUT_0

VC0

VC1

IN_4

VC0

VC1

OUT

Đơn vị cổng ra 0

OUT_4

Ctrl Ctrl

IN

VC0

VC1

VC0

VC1

OUT

Ctrl CtrlĐơn vị cổng vào 4

Đơn vị cổng vào 1

Đơn vị cổng vào 2

Đơn vị cổng vào 3

Đơn vị cổng ra 1

Đơn vị cổng ra 2

Đơn vị cổng ra 3

Đơn vị cổng ra 4

204 Mạng trên chip

Hình 7-14: Định dạng của một gói dữ liệu kiểm tra.

Cấu trúc của một cổng vào/ra của bộ định tuyến bao gồm 17 kênh

MR4 không đồng bộ dành cho dữ liệu, một kênh DR và hai kênh SR

dành cho các tín hiệu điều khiển “send-accept”, tương tự như đối với

cấu trúc liên kết mạng (như trình bày ở Mục 7.6.2). Do đó, chúng ta

sử dụng cách tương tự để tạo nên các véc-tơ kiểm tra như chúng ta đã

thực hiện đối với các liên kết mạng. Tất cả các chữ số mã “1-of-4” của

flit kiểm tra không liên quan đến thông tin điều khiển nên được gán ép

một cách độc lập với tất cả các giá trị có thể (“0”, “1”, “2” và “3”), đó

là 15 chữ số mã “1-of-4” như được trình bày trong Bảng 7-6.

Bảng 7-6: Gói tin kiểm tra đa flit dùng để kiểm tra lối vào, lối ra

và kênh ảo của bộ định tuyển

Dữ liệu (data) Send

BoP/EoP 15 chữ số mã “1-of-4” Hướng Kênh ảo

2 “0.0.0……………0” “dir.” “vc.”

0 “0.0.0……………0” “0” “vc.”

0 “1.1.1……………1” “1” “vc.”

0 “2.2.2……………2” “2” “vc.”

1 “3.3.3……………3” “3” “vc.”

Chúng ta có thể thấy rằng các véc-tơ kiểm tra này cho phép kiểm

tra phần “dữ liệu” của các khối khác nhau (IN, VCvc.) của đơn vị lối

vào được xác định bởi test wrapper và các khối khác nhau (VCvc.,

1 0

(a) Flit tiêu đề

(b) Flit thân

(c) Flit đuôi

dir.dữ liệu kiểm tra

dữ liệu kiểm tra

BoP EoP

0 0

0 1

path-to-target

dữ liệu kiểm tra

dữ liệu kiểm tra

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 205

OUT) của đơn vị lối ra được xác định bởi hướng định tuyến (“dir.”).

Tuy nhiên, để bao phủ được phần “điều khiển” của mỗi đơn vị vào/ra,

chúng ta phải quan tâm đến tất cả các tổ hợp của các giá trị điều khiển.

Do đó, các chữ số mã “1-of-4” chứa thông tin BoP/EoP, tất cả các chữ

số mã “1-of-4” trong trường định tuyến “Path-to-Target” và chữ số mã

“1-of-2” biểu thị kênh ảo được sử dụng phải được gán với các tổ hợp

có thể xảy ra để kiểm tra tất cả các tín hiệu của từng cặp vào-ra. Để

thực hiện điều đó, chúng tôi đã định nghĩa ba gói tin 1-flit bổ sung

như mô tả trong Bảng 7-7.

Bảng 7-7: Ba gói dữ liệu kiểm tra đơn flit bổ sung dùng để kiểm tra lối vào,

lối ra và kênh ảo của bộ định tuyến

Dữ liệu (data) Send

BoP/EoP 15 chữ số mã “1-of-4” Hướng Kênh ảo

3 “1.1.1……………1” “dir.” “vc.”

3 “2.2.2……………2” “dir.” “vc.”

3 “3.3.3……………3” “dir.” “vc.”

Cuối cùng, chúng ta cần tới 8 véc-tơ kiểm tra để bao phủ các

chức năng hoạt động của một cụm gồm một lối vào, một lối ra và một

kênh ảo. Do mỗi bộ định tuyến có 5 lối vào, 4 lối ra kết nối với mỗi

lối vào và hai kênh ảo, để kiểm tra toàn bộ bộ định tuyến chúng ta cần

tổng cộng 320 véc-tơ kiểm tra. Những véc-tơ kiểm tra này được chèn

vào bộ định tuyến cần kiểm tra thông qua việc cấu hình test wrapper.

Các cấu hình kiểm tra tương ứng có thể được tính toán bằng một

chương trình máy tính riêng và đưa ra tổng cộng là 640 khung cấu

hình kiểm tra do việc đưa véc-tơ kiểm tra vào và đọc kết quả ra là tách

biệt. Mục 7.8.4 sẽ đề cập đến độ bao phủ các lỗi stuck-at khi sử dụng

các véc-tơ chức năng trên. Trong mục tiếp theo chúng ta sẽ trình bày

cách thức kiểm tra toàn bộ mạng ANOC.

7.7. Chiến lược kiểm tra

Mục này sẽ trình bày một chiến lược kiểm tra đơn giản, cho phép

kiểm tra tất cả các thành phần của mạng ANOC. Với chiến lược này,

206 Mạng trên chip

tại mỗi thời điểm chỉ có một bộ định tuyến mạng được kiểm tra. Sau

đó, chúng ta sẽ kiểm tra tất cả các liên kết mạng kết nối với bộ định

tuyến đó. Sau khi bộ định tuyến hiện tại và các liên kết mạng của nó

được kiểm tra xong, chúng ta sẽ cấu hình test wrapper để đưa bộ định

tuyến này vào hoạt động ở chế độ bypass và chuyển sang kiểm tra bộ

định tuyến tiếp theo và các liên kết mạng của bộ định tuyến tiếp theo

đó. Luồng kiểm tra được thiết lập bởi kênh cấu hình kiểm tra, được

minh họa bằng đường mũi tên nét đậm như trong Hình 7-15.

Hình 7-15: Luồng kiểm tra cho mạng ANOC [141].

Với luồng kiểm tra này, thuật toán kiểm tra được mô tả như sau:

THUẬT TOÁN KIỂM TRA CHO MẠNG TRÊN CHIP ANOC

Set current-router = 1; /* Bắt đầu từ bộ định tuyến thứ nhất */

While current-router ≤ N do /* N là số bộ định tuyến trong mạng */

/***** Kiểm tra bộ định tuyến *****/

Set current-router in test mode;

Apply all router test vectors (320) to the router-under-test;

/* Một véc-tơ kiểm tra cần 2 khung cấu hình kiểm tra TCF */

/***** Kiểm tra liên kết mạng *****/

If current-router is not in the last row of the network then

Set current-router in transfer mode;

/* Hướng định tuyến hướng tới cổng South (V-next router) */

links-under-test

current-routerH-next

router

V-next

router

12345

106

1115

2016

Kênh cấu hình

kiểm tra

cfg-in

cfg-out

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 207

Set V-next-router in loop-back mode;

/* nhờ vòng định tuyến lặp, mỗi véc-tơ kiểm tra có thể kiểm tra cả hai

hướng của liên kết mạng */

Apply all link test vectors (4) to the vertical links-under-test;

/* links-under-test là các liên kết theo chiều dọc giữa bộ định tuyến hiện

tại và bộ định tuyến V-next */

End if;

If the current-router is not the last router of the row-under-test then

Set current-router in transfer mode;

/* Hướng định tuyến tới H-next router */

Set H-next-router in loop-back mode;

Apply all link test vectors (4) to the horizontal links-under-test;

/* links-under-test là các liên kết mạng giữa bộ định tuyến hiện tại và

bộ định tuyến H-next */

End if;

/***** Chuẩn bị lặp lại các bước kiểm tra tiếp theo *****/

Set current-router in bypass mode;

/* Đặt current-router (bộ định tuyến hiện tại) ở chế độ bypass và chuyển

sang next-router (bộ định tuyến tiếp theo). Chú ý rằng, hướng bypass được

xác định bởi luồng kiểm tra */

current-router = current-router + 1;

End while;

Hình 7-16: Các cấu hình kiểm tra: Chế độ kiểm tra (a);

Chế độ bypass (b); Chế độ transfer (c); Chế độ loop-back (d).

Router Router

Router Router

(a) (b)

(c) (d)

208 Mạng trên chip

Chiến lược kiểm tra trình bày ở trên đòi hỏi kiến trúc DFT phải

hoạt động một cách chính xác. Do đó, kiến trúc DFT này cũng cần

được kiểm tra trước khi thực hiện việc kiểm tra các bộ định tuyến và

liên kết mạng. Việc kiểm tra kiến trúc DFT này được thực hiện bằng

cách đặt tất cả các test wrapper sang chế độ truyền dữ liệu và khi đó

việc tạo các dữ liệu kiểm tra tương ứng được thực hiện như nguyên

tắc tạo dữ liệu kiểm tra cho các liên kết mạng.

Mặc dù kiến trúc DFT nêu trên được thiết kế để kiểm tra kiến trúc

mạng NoC (các bộ định tuyến và liên kết mạng), tuy nhiên kiến trúc

này cũng có thể được sử dụng để kiểm tra các tài nguyên tính toán

(các lõi IP) và các giao tiếp mạng của chúng. Có nghĩa là kiến trúc

DFT này có thể được sử dụng để kiểm tra toàn bộ hệ thống mạng trên

chip. Cụ thể về vấn đề này được trình bày chi tiết ở [96]. Nhờ vào việc

tái sử dụng các liên kết mạng như là các cơ chế truy cập kiểm tra

TAM thông lượng cao để vận chuyển dữ liệu kiểm tra nên kiến trúc

DFT này không sử dụng thêm bất kỳ bus kiểm tra riêng nào.

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

7.8.1. Chi phí không gian thực thi

Kiến trúc DFT không đồng bộ đề xuất được thực thi bằng công

nghệ CMOS 65nm của hãng STMicroelectronics (cùng với thư viện

công nghệ lô-gic không đồng bộ 65nm của Phòng thí nghiệm TIMA

thuộc Trung tâm Khoa học và Công nghệ Quốc gia (CNRS), Cộng

hòa Pháp [149]). Không gian thực thi của một test cell là 8.560 µm2 và

không gian thực thi của mô-đun điều khiển WCM là 10.400 µm2. Kết

quả là một test wrapper gồm 5 khối kiểm tra lối vào, 5 khối kiểm tra

lối ra và một mô-đun điều khiển WCM sẽ cần một không gian thực thi

khoảng 96.000 µm2; tương đương 32,7% không gian thực thi của một

bộ định tuyến mạng không đồng bộ có thể kiểm tra. Để có thể hình

dung dễ dàng hơn về không gian thực thi test wrapper, chúng ta so

sánh test wrapper với một khối biến đổi Fourier nhanh (FFT) trong hệ

thống được thực thi với một chi phí khoảng 1.600.000 µm2 (tương

đương 250 kGates).

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 209

Tuy nhiên, kiến trúc DFT đề xuất không chỉ được sử dụng cho

mỗi việc kiểm tra kiến trúc mạng mà còn có thể được sử dụng như là

cơ chế truy cập kiểm tra TAM để kiểm tra các thành phần khác của hệ

thống ANOC (bao gồm cả các lõi IP và giao tiếp mạng khác). Do đó,

chi phí không gian thực thi kiến trúc DFT này nên được chia sẻ cho

toàn bộ các tài nguyên tính toán trên vi mạch. Kết quả là chi phí này

chỉ chiếm vào khoảng 3% đến 5% tổng chi phí toàn vi mạch, phụ

thuộc vào kích thước của vi mạch. Với trường hợp dự án FAUST [20],

không gian thực thi của kiến trúc DFT này chiếm 4,8% tổng không

gian thực thi cả vi mạch FAUST).

7.8.2. Độ trễ tăng thêm

Test wrapper được sử dụng để cải thiện khả năng truy cập và khả

năng kiểm tra của kiến trúc mạng ANOC nhưng chúng cũng làm tăng

độ trễ truyền thông của mạng ANOC ở chế độ hoạt động thông

thường. Với thực thi của chúng tôi, độ trễ tăng thêm này là 0,34 ns đối

với một cặp cổng lối vào và lối ra, so với độ trễ truyền của bộ định

tuyến là 2 ns (kết quả đo đạc sau layout), xem Hình 7-17.

Hình 7-17: Độ trễ tăng thêm.

Điều này tương ứng với độ trễ của hai C-elements bất đối xứng

và hai cổng AND. Tuy nhiên, do các vòng lặp tín hiệu bắt tay tại các

lối vào/lối ra của bộ định tuyến không phải là vấn đề lớn (trong các

OTC

ITC

ITC

OTC

ITC OTC

ITC

OTC

ANOC

router

WEST

RES

EAST

NORTH

0.17ns 0.17ns2.00ns

210 Mạng trên chip

mạch không đồng bộ QDI, hiệu suất được xác định bằng chiều dài của

các vòng lặp tín hiệu bắt tay) nên hầu như thông lượng truyền thông

của NoC không bị giảm đi, nghĩa là vẫn 500 Mflits/s ở chế độ hoạt

động thông thường.

7.8.3. Thời gian thực thi kiểm tra

Bằng cách sử dụng các liên kết mạng như là cơ chế truy cập kiểm

tra TAM, kiến trúc DFT đề xuất sở hữu các đường kiểm tra băng thông

cao. Tuy nhiên, chúng ta cần gửi dữ liệu cấu hình kiểm tra để điều

khiển việc chèn dữ liệu kiểm tra và thu thập kết quả kiểm tra. Thông

lượng của kênh cấu hình vào khoảng 2 ns cho từng mẩu cấu hình,

khoảng 50 ns cho một khung dữ liệu cấu hình kiểm tra hoàn chỉnh.

Khi kiểm tra các liên kết mạng, chúng ta cần hai khung cấu hình

cho từng véc-tơ kiểm tra, cho cả quá trình chèn dữ liệu kiểm tra và

quá trình quan sát kết quả kiểm tra bởi vì lúc đó có hai test wrapper

được sử dụng. Để kiểm tra các bộ định tuyến, trong hầu hết các trường

hợp chúng ta chỉ cần một khung cấu hình kiểm tra đơn là đủ để chèn

dữ liệu kiểm tra và quan sát kết quả kiểm tra. Do đó, tốc độ kiểm tra

vào khoảng 20 Mtest-vectors/s. Tuy nhiên, để đơn giản việc tạo các

khung cấu hình kiểm tra, chúng ta sử dụng hai khung cấu hình kiểm

tra cho mỗi véc-tơ kiểm tra khi kiểm tra các bộ định tuyến: một khung

cấu hình dùng để chèn véc-tơ kiểm tra và một khung cấu hình dùng để

quan sát kết quả kiểm tra. Theo đó, tốc độ kiểm tra vào khoảng 10

Mtest-vectors/s. Với các véc-tơ kiểm tra được tạo ra, thời gian kiểm

tra cần thiết cho mỗi bộ định tuyến mạng là 32 µs và thời gian kiểm

tra cần thiết cho mỗi liên kết mạng hai hướng là 0,4 µs.

Kết quả là tổng thời gian thực thi việc kiểm tra cho một mạng

ANOC gồm 20 bộ định tuyến là 0,7 ms (trong khi đó, thời gian thực

thi kiểm tra đối với một khối FFT trong hệ thống là 7,114 ms).

7.8.4. Độ bao phủ lỗi

Để đánh giá, ước lượng hiệu quả của phương pháp tiếp cận này,

chúng ta sử dụng mô hình lỗi stuck-at đơn khá nổi tiếng trên cả các lối

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 211

vào và lối ra của các tế bào mạch (circuit cells). Vì không có công cụ

hỗ trợ để tính toán độ bao phủ lỗi (fault coverage) cho các thiết kế

không đồng bộ nên chúng tôi đã xây dựng một chương trình phần

mềm dựa trên các kịch bản (scripts) để chèn một cách tự động các lỗi

lên tất cả các chân của tế bào mạch tiêu (standard cell) chuẩn của bộ

định tuyến cần kiểm tra (mỗi lần chèn một lỗi đơn), mô phỏng và tính

toán các lỗi được phát hiện. Một lỗi được phát hiện nếu mạch kiểm tra

bị treo (không có sự thay đổi giá trị tại các lối ra hoặc không xuất hiện

tín hiệu acknowledge) trước khi kết thúc quá trình kiểm tra. Với các

véc-tơ kiểm tra được tạo ra, phương pháp kiểm tra đề xuất đạt độ bao

phủ lỗi lên tới 99,86% đối với các bộ định tuyến, 100% đối với các

liên kết mạng. Độ bao phủ lỗi của việc kiểm tra chính kiến trúc DFT

đạt 99,75% sử dụng tất cả các véc-tơ kiểm tra có thể. Sở dĩ chúng ta

đạt được độ bao phủ rất cao này là nhờ vào đặc tính kiến trúc luồng dữ

liệu (dataflow) của các bộ định tuyến mạng, chủ yếu được xây dựng

dựa trên các bộ hợp kênh và phân kênh trên một cấu trúc giống đường

ống và kiểu thiết kế dựa vào mã thông báo (token-base design style)

sử dụng trong mạng ANOC: các lỗi duy nhất không được phát hiện

trong bộ định tuyến đã được định vị trước khi các lối vào của một số ít

C-elements bất đối xứng sử dụng trong thiết kế để kiểm tra các điều

kiện chạy đua (race conditions – là tình huống không mong muốn khi

nhiều yêu cầu xảy ra cùng một lúc) trên các mã thông báo điều khiển

sử dụng cho một số mã thông báo dữ liệu.

Bảng 7-8: Báo cáo về độ bao phủ lỗi Single Stuck-At (SSA)

khi kiểm tra bộ định tuyến

Mạch cần kiểm tra Lỗi SSA

ở lối ra

Lỗi SSA

ở lối vào

Lỗi SSA ở cả lối ra

và lối vào

Bộ điều khiển

cổng vào

3.178/3.178

(100%)

6.016/6.016

(100%)

9.194/9.194 (100%)

Bộ điều khiển

cổng ra

5.185/5.198

(99,74%)

8.925/8.944

(99,78%)

14.110/14.142

(99,77%)

Toàn bộ bộ

định tuyến

41.815/41.880

(99,84%)

74.705/74.800

(99,87%)

116.520/116.680

(99,86%)

212 Mạng trên chip

Bảng 7-8 trình bày một báo cáo ngắn gọn về số lượng các lỗi

được đưa vào, số lượng các lỗi nhận biết được và độ bao phủ lỗi của

từng phần của bộ định tuyến cũng như của cả toàn bộ bộ định tuyến.

Mô hình lỗi stuck-at đơn dựa vào chân (pin-based) được sử dụng ở

đây mang lại kết quả tốt vì hiệu ứng lô-gic của lỗi stuck-at là để ngăn

chặn sự xuất hiện quá trình chuyển dịch mức lô-gic và do đó hầu hết

các trường hợp hấp thụ mã thông báo trong hệ thống mạch không

đồng bộ. Các loại lỗi khác có thể làm xuất hiện một quá trình chuyển

dịch mức lô-gic mới, nghĩa là tạo ra một mã thông báo mới trong một

phần khác của hệ thống (ngắn mạch, nhiễu chéo tín hiệu – crosstalk,

v.v…). Những lỗi này không làm cho mạch bị treo ngay lập tức và

không thể phát hiện được khi sử dụng các véc-tơ kiểm tra nêu ở trên.

Dù vậy, với việc lặp đi lặp lại quá trình kiểm tra, các mã thông báo bổ

sung được tạo ra bởi loại lỗi này có thể lấp đầy toàn bộ chuỗi mã

thông báo và làm cho hệ thống bị treo. Giả sử rằng lỗi xảy ra ở mỗi

lần kiểm tra, hệ thống sẽ bị treo sau một số lần kiểm tra, bằng với độ

sâu đường ống của bộ định tuyến, ví dụ bằng 9 trong trường hợp mạng

ANOC. Điều này có thể dẫn tới việc chúng ta cần khoảng thời gian

kiểm tra tổng thể khoảng 7 ms cho toàn bộ mạng ANOC để bắt được

loại lỗi này.

7.8.5. Chẩn đoán lỗi và định vị điểm khiếm khuyết

Kiến trúc DFT đề xuất không chỉ cho phép chúng ta phát hiện các

lỗi stuck-at mà còn cho phép chúng ta xác định được vị trí của các

điểm khiếm khuyết - là nguyên nhân tạo nên các lỗi stuck-at. Ưu điểm

là chúng ta có thể định vị được các lỗi đã phát hiện trong các mạch

cần kiểm tra và sau đó tìm kiếm các nguyên nhân trong quá trình sản

xuất sinh ra các lỗi này. Kết quả, việc chẩn đoán giúp chúng ta cải

thiện quy trình sản xuất để tránh các khiếm khuyết đó xảy ra trong

tương lai.

Thực vậy, bằng việc phân tích cấu trúc của bộ định tuyến chúng

ta có thể thấy rằng phần điều khiển của bộ định tuyến chiếm khoảng

10% số cổng lô-gic của bộ định tuyến và số lượng các cổng lô-gic của

một khối lối vào tương đương với số lượng cổng lô-gic của một khối

Chương 7. Thiết kế kiểm tra cho mạng trên chip… 213

lối ra. Ngoài phần điều khiển, mỗi khối lối vào và lối ra có thể được

chia nhỏ thành ba phần con với số cổng lô-gic khá tương đồng, xem

Hình 7-13.

Trong trường hợp lỗi stuck-at đơn, tập hợp 320 véc-tơ trên cho

phép cách ly ngay phần chứa lỗi; đó là một phần trong 40 phần con.

Nếu lỗi nằm ở phần dữ liệu, sự độc lập của các kênh MR4 cho phép

cách ly lỗi ở không gian 1/600 của bộ định tuyến khi sử dụng thêm 15

véc-tơ tính toán trong quá trình phân tích. Hơn nữa, nếu tất cả 4 giá trị

của mã số 1-of-4 bị loại bỏ, chúng ta có thể kết luận rằng lỗi nằm trên

đường ghi nhận (acknowledgement). Còn nếu chỉ một trong 4 giá trị

bị loại bỏ thì lỗi nằm trên một trong các đường (rail) 1-of-4. Do đó,

một khiếm khuyết có thể được định vị trên một không gian 1/3000 của

bộ định tuyến. Với bộ định tuyến gồm khoảng 20.000 cổng lô-gic, có

thể nói là phương pháp này cho phép chúng ta định vị lỗi với độ chính

xác trong cụm khoảng 7 cổng lô-gic.

7.8.6. Tái cấu hình bộ định tuyến trong trường hợp có lỗi đơn

Nhờ vào việc thêm các kênh bypass cho mục đích kiểm tra,

chúng ta có thể sử dụng các kênh bypass này để duy trì kết nối trong

mạng khi bộ định tuyến bị lỗi bằng cách cấu hình bộ định tuyến

chuyển sang sử dụng chế độ bypass, thay vì để dữ liệu di chuyển qua

bộ định tuyến bị lỗi. Khi đó, thông tin trường định tuyến cũng được

chỉnh sửa bằng cách loại bỏ các hướng định tuyến không sử dụng.

Điều này cho phép tiếp tục sử dụng vi mạch bị lỗi (với hiệu năng thấp

hơn) hoặc sử dụng vi mạch này cho các ứng dụng khác để giảm chi

phí sản xuất hoặc có thể được sử dụng để kiểm tra kỹ hơn nhằm tìm

kiếm các lỗi khác trong quá trình thử nghiệm/gỡ lỗi.

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

Việc xây dựng giải pháp thiết kế kiểm tra luôn là một trong

những vấn đề quan trọng, góp phần đảm bảo sản phẩm vi mạch cuối

cùng không có lỗi và có thể được đưa vào ứng dụng thực tiễn. Mô

hình mạng trên chip có nhiều điểm ưu việt khi triển khai các hệ thống

214 Mạng trên chip

lớn nhưng cũng cho thấy nhiều thách thức, đặc biệt là vấn đề kiểm tra

tìm kiếm và phát hiện các lỗi có thể xảy ra trong quá trình sản xuất vì

chúng có độ tích hợp cao.

Với mạng trên chip, các kiến trúc mạng trên chip không đồng bộ

dường như đang là lựa chọn tốt cho truyền thông trên chip của các hệ

thống GALS, chúng cũng có những vấn đề hết sức quan trọng liên

quan đến khả năng kiểm tra cần được quan tâm. Trong quá trình

nghiên cứu về mạng trên chip, chương này đã trình bày một hướng

tiếp cận đầy đủ của chúng tôi về thiết kế kiểm tra cho các kiến trúc

mạng trên chip không đồng bộ. Cụ thể, chúng tôi đã đề xuất, thiết kế

và thực thi một kiến trúc DFT hoàn toàn không đồng bộ cho kiến trúc

mạng ANOC [141]. Kiến trúc DFT này có thể được cấu hình để có thể

thích nghi với các mạng trên chip không đồng bộ khác với các tô-pô

mạng khác nhau. Kiến trúc DFT này được thực thi với công nghệ

CMOS 65nm của STMicroelectronics, sử dụng thư viện tế bào chuẩn

từ Phòng thí nghiệm TIMA, Đại học Bách khoa Grenoble, Cộng hòa

Pháp [149]. Việc kiểm thực được triển khai thông qua một nền tảng

đồng mô phỏng SystemC/Verilog netlist. Kiến trúc DFT này sau đó

được tích hợp trên một hệ thống NoC được sản xuất thử nghiệm có tên

gọi là ALPIN [94, 96].

Liên quan đến dữ liệu kiểm tra, chúng tôi cũng đề xuất một

phương pháp tạo dữ liệu kiểm tra đơn giản, hiệu quả. Việc tạo dữ liệu

kiểm tra và các thông tin cấu hình kiểm tra tương ứng được thực hiện

thông qua một chương trình phần mềm. Với dữ liệu kiểm tra này,

hướng tiếp cận của chúng tôi đạt được độ bao phủ lên tới 99,86% (sử

dụng các mô hình lỗi stuck-at đơn).

Chương 6. Ứng dụng lô-gic mờ trong thiết kế mạng trên chip… 215

TÀI LIỆU THAM KHÂO

[1] ARM, AMBA Advanced eXtensible Interface (AXI) Protocol

Specification (Version 1.0), 2003.

[2] R. Rajsuman, System-on-a-Chip: Design and Test, Artech

House Publishers, 2000.

[3] D. Sylvester and K. Keutzer, "A Global Wiring Paradigm for

Deep Submicron Design," IEEE Transactions on Computer

Aided Design Integrated Circuits, vol. 19, pp. 242-252, 2000.

[4] A. Jantsch and H. Tenhunen, Networks on Chip, Kluwer

Academic Publisher, 2003.

[5] W. Dally and B. Towles, "Route Packets, Not Wires: On-chip

Interconnection," in Proceedings of the Design Automation

Conference (DAC), Las Vegas, 2001.

[6] L. Benini and G. D. Michel, "Networks on Chips: A New SoC

Paradigm," IEEE Computer Journal, vol. 35, no. 1, pp. 70-78, 2002.

[7] C. A. Zeferino, M. Kreutz, L. Carro and A. A. Susin, "A Study

on Communication Issues for Systems-on-Chip," in

Proceedings of the 15th Symposium on Integrated Circuits and

System Design, 2002.

[8] A. Radulescu and K. Goossens, "Communication Services for

Network on Chip," in Domain-Specific Processors: Systems,

Architectures, Modeling, and Simulation, 2003, pp. 275-299.

[9] C. Grecu, P. P. Pande, A. Ivanov and R. Saleh, "Structured

Interconnect Architecture: A Solution for the Non-Scalability of

Bus-based SoCs," in Proceedings of the Great Lakes

Symposium VLSI, 2004.

216 Mạng trên chip

[10] IBM CoreConnect, "CoreConect Bus Archiecture," [Online].

Available: www-03.ibm.com/chips/products/coreconnect/index.

html. [Accessed 01 10 2019].

[11] L. Benini and G. De Michel, "Powering Networks on Chips," in

Proceedings of the 14th IEEE/ACM Int'l Symposium on Systems

Synthesis (ISSS), 2001.

[12] A. Hemani, A. Jantsch, S. Kumar, A. Postula, J. Oberg, M.

Millberg and D. Lindqvist, "Network on Chip: An Architecture

for Billion Transistor Era," in Proceedings on the IEEE

NorChip Conference, Turku, Finland, 2000.

[13] R. Ho, K. W. Mai and M. A. Horowitz, "The Future of Wires,"

Proceedings of the IEEE, vol. 89, no. 4, pp. 490-504, 2001.

[14] P. Guerrier and A. Greiner, "A Generic Architecture for On-chip

Packet-Switch Interconnections," in Proceedings of the Design,

Automation and Test in Europe Conference (DATE), 2000.

[15] J. Liang, S. Swaminathan and R. Tessier, "aSOC: A Scalable,

Single-Chip Communications Architecture," in Proceedings of

the IEEE Int'l Conference on Parallel Architectures and

Compilation Techniques, 2000.

[16] E. Rijpkema, K. Goossens and P. Wielage, "A Router

Architecture for Networks on Silicon," in Proceedings of 2nd

Workshop on Embedded Systems, 2001.

[17] F. Karim, A. Nguyen, S. Dey and R. Rao, "On-Chip

Communication Architecture for 0C-768 Network Processors,"

in Proceedings of the 38th Design Automation Conference

(DAC), Las Vegas, NV, USA, 2001.

[18] S. Vangal and e. al., "An 80-Tile 1.28TFLOPS Network-on-

Chip in 65nm," in the IEEE Int'l Solid-State Circuits

Conference (ISSCC), San Francisco, USA, 2007.

TĖi liệu tham khĘo 217

[19] J. Bainbridge and S. Fuber, "CHAIN: a Delay-Insensitive Chip

Area Interconnect," IEEE Micro, vol. 22, no. 5, pp. 16-23, 2002.

[20] D. Lattard, E. Beigne, C. Bernard, C. Bour, F. Clermidy, Y.

Durand, J. Durupt, D. Varreau, P. Vivet, P. Penard, A. Bouttier

and F. Berens, "A Telecom Baseband Circuit based on an

Asynchronous Network-on-Chip," in International Solid-State

Circuits Conference (ISSCC), San Francisco, 2007.

[21] S. Wielage and K. Gossens, "Networks on Silicon: Blessing or

Nightmare?," in The Euromicro Symposium on Digital System

Design (DSD), Dortmund, 2002.

[22] F. Moraes, N. Calazans, A. Mello and L. O. L. Moller,

"HERMES: an Infrastructure for Low Area Overhead Packet-

Switching Networks on Chip.," Integration, the VLSI Journal,

pp. 69-93, October 2004.

[23] E. Rijpkema, K. Goossen, A. Radulescu, J. Dielissen and P. v.

Meerbergen, "Trade Offs in the Design of a Router with both

Guaranteed and Best-Effort Services for Networks on Chip,"

IEE Proceedings on Computers and Digital Techniques, vol.

150, no. 5, pp. 294-302, September 2003.

[24] M. Karol, H. M and S. Morgan, "Input versus Output Queuing on

a Space-Division Packet Switch," IEEE Transactions on

Communications, vol. 35, no. 12, pp. 1347-1356, December 1987.

[25] P. Pande, C. Grecu, M. Jones, A. Ivanov and R. Saleh,

"Performance Evaluation and Design Trade-offs for Network-

on-Chip Interconnect Architectures," IEEE Transactions on

Computers, vol. 54, no. 8, pp. 1025-1040, August 2005.

[26] E. Bolotin, I. Cidon, R. Ginosar and A. Kolodny, "Efficient Routing

in Irregular Topology NoCs," CCIT Technical Report, 2005.

[27] W. Dally and C. Seitz, "Deadlock-Free Message Routing in

Multiprocessor Interconnection Networks," IEEE Transactions

on Computers, vol. 36, no. 5, pp. 547-553, May 1987.

218 Mạng trên chip

[28] C. Glass and L. Ni, "The Turn Model for Adaptive Routing,"

vol. 41, pp. 875-902, 1994.

[29] K. Goosens, J. Dielissen and e. al., "Guaranteeing The Quality

of Services in Networks on Chip.," in Networks on Chip,

Kluwer Academic Publisher, 2003, pp. 61-82.

[30] T. Bjerregaard and J. Sparso, "A Router Architecture for

Connection-Oriented Service Guarantees in the MANGO

Clockless Network-on-Chip.," in the Design, Automation and

Test in Europe Conference (DATE), Munich, 2005.

[31] S. Kumar and e. al., "Network on Chip Architecture and Design

Methodology," in the IEEE Computer Society Annual

Symposium on VLSI (ISVLSI), Pittsburgh, 2002.

[32] M. Millberg, E. Nilsson, R. Thid, S. Kumar and A. Jantsch,

"The Nostrum Backbone - a Communication Protocol Stack for

Networks on Chip.," in the 17th Int'l Conference on VLSI

Design (VLSID), 2004.

[33] X.-T. Tran, "Project report (QC.08.18) "Design and Modeling

of a Network Router for On-chip Communication"," Vietnam

National University, Hanoi, Hanoi, 2009.

[34] T. H. Pham, P. H. Pham, X.-T. Tran and C. Kim, "Analysis and

Evaluation of Traffic-Performance in a Backtracked Routing

Network-on-Chip.," in The 2nd International Conference on

Communications and Electronics (ICCE), Hoi An, 2008.

[35] B. Attia, W. Chouchene, A. Zitouni and R. Tourki, "Network

Interface Sharing for SoCs based NoC," in 2011 International

Conference on Communications, Computing and Control

Applications, 2011.

[36] B. Attia, A. Zitouni, N. Abid and R. Tourki, "A Modular Network

Interface Adapter Design for OCP Compatibles NoCs,"

International Journal of Computer and Network Security, 2009.

TĖi liệu tham khĘo 219

[37] S. Stergiou, F. Angiolini, S. Carta, L. Raffo, D. Bertozzi and G.

De Micheli, "Xpipes Lite: a Synthesis Oriented Design Library

for Networks on Chips," in 2005 Design, Automation Test in

Europe Conference Exhibition (DATE), 2005.

[38] A. Radulescu, J. Dielissen, K. Goossens, E. Rijpkema and P.

Wielage, "An Efficient On-Chip Network Interface Offering

Guaranteed Services, Shared-Memory Abstraction, and Flexible

Network Configuration," in 2004 Design, Automation Test in

Europe Conference Exhibition (DATE), 2004.

[39] J.-J. Lecler and G. Baillieu, "Application driven network-on-

chip architecture exploration & refinement for a complex SoC,"

Design Automation for Embedded Systems, vol. 15, no. 2, pp.

133-158, 2011.

[40] Arteris, "ARM AMBA ACE, AXI, OCP, or Any Transaction

Protocols," Arteris, 2019. [Online]. Available:

http://www.arteris.com/axi-protocol-arm-ace-ahb-apb.

[Accessed 5 November 2019].

[41] ARM, "CoreLink Network Interconnect Family," 2019. [Online].

Available: https://www.arm.com/products/system-ip/interconnect/

corelink-nic-family.php. [Accessed 10 November 2019].

[42] A. El Mrabti, F. Rousseau, F. Petrot, J. Martin, R. Lemaire and

E. Vaumorin, "Design Environment for the Support of

Configurable Network Interfaces in NoC-based Platforms," in

2010 International Conference on Embedded Computer Systems

(SAMOS), 2010.

[43] S. Saponara, T. Bacchillone, E. Petri, L. Fanucci, R. Locatelli

and M. Coppola, "Design of a NoC Interface Macrocell with

Hardware Support of Advanced Networking Functionalities,"

IEEE Transactions on Computers, vol. 99, 2012.

[44] M. Ruaro, F. B. Lazzarotto, C. A. Marcon and F. G. Moraes,

"DMNI: A specialized network interface for NoC-based

220 Mạng trên chip

MPSoCs," in 2016 IEEE International Symposium on Circuits

and Systems (ISCAS), 2016.

[45] X.-T. Tran, T. Nguyen, H.-P. Phan and D.-H. Bui, "AXI-NoC:

High-Performance Adaptation Unit for ARM Processors in

Network-on-Chip Architectures," IEICE Transactions on

Fundamentals of Electronics, Communications and Computer

Sciences, Vols. E100-A, no. 8, pp. 1650-1660, 2017.

[46] E. Beigné, F. Clemidy, P. Vivet, A. Clouard and M. Renaudin,

"An Asynchronous NoC Architecture Providing Low Latency

Service and its Multi-level Design Framework," in The 11th

IEEE Int. Symposium on Asynchronous Circuits and Systems

(ASYNC), 2005.

[47] N.-K. Dang, T.-V. Le-Van and X.-T. Tran, "FPGA

Implementation of a Low Latency and High Throughput

Network-on-Chip Router Architecture," in 2011 International

Conference on Integrated Circuits and Devices in Vietnam

(ICDV), 2011.

[48] T. Bjerregaard, S. Mahadevan, R. Olsen and J. Sparsoe, "An

{OCP} Compliant Network Adapter for GALS-based SoC," in

2005 International Symposium on System-on-Chip, 2005.

[49] D. Matos, M. Costa, L. Carro and A. Susin, "Network interface

to synchronize multiple packets on NoC-based Systems-on-

Chip," in 18th IEEE/IFIP VLSI System on Chip Conference

(VLSI-SoC), 2010.

[50] J. Sparso, E. Kasapaki and M. Schoeberl, "An Area-Efficient

Network Interface for a TDM-based Network-on-Chip," in 2012

Design, Automation Test in Europe Conference Exhibition

(DATE), 2013.

[51] R. Aitken, A. Gibbons, K. Shi, M. Keating and D. Flynn, Low

Power Methodology Manual for System-on-Chip Design,

Springer, 2008.

TĖi liệu tham khĘo 221

[52] C. Piguet, Low-Power Electronics Design, CRC Press, 2005.

[53] K. Pokhrel, "Physical and Silicon Measures of Low Power

Clock Gating Success: An Apple to Apple Case Study," in

Synopsys Users Group Conference, 2007.

[54] J. Rabaey, Low Power Design Essentials, Springer, 2009.

[55] Q. Wu, P. Juang, M. Martonosi, L. S. Peh and D. W. Clark,

"Formal Control Techniques for Power-Performance

Management," IEEE Micro, vol. 25, no. 5, pp. 52-62,

September 2005.

[56] S. Y. Bang, K. Bang, S. Yoon and E. Y. Chung, "Run-Time

Adaptive Workload Estimation for Dynamic Voltage Scaling,"

IEEE Transactions on Computer-Aided Design of Integrated

Circuits and Systems, vol. 28, no. 9, pp. 1334-1347, September

2009.

[57] P. Pillamari, K. J. Naidu and H. M. Kittur, "Power reduction

using DVFS with a producer-consumer FIFO," in International

Conference on Signal Processing, Communication, Computing

and Networking Technologies (ICSCCN), 2011.

[58] F. Yao, A. Demers and S. Shenker, "A scheduling model for

reduced CPU energy," 1995.

[59] C. Im, H. Kim and S. Ha, "Dynamic Voltage Scheduling

Technique for Low-Power Multimedia Applications Using

Buffers," in International Symposium on Low Power

Electronics and Design (ISLPED), 2001.

[60] R. Jejurikar and R. Gupta, "Energy-aware Task Scheduling with

Task Synchronization for Embedded Real-time Systems," IEEE

Transactions on Computer-Aided Design of Integrated Circuits

and Systems, vol. 25, no. 6, pp. 1024-1037, June 2006.

[61] A. Azevedo, I. Issenin, R. Cornea, R. Gupta, N. Dutt, A.

Veidenbaum and A. Nicolau, "Profile-based Dynamic Voltage

222 Mạng trên chip

Scheduling using Program Checkpoints," in 2002 Design,

Automation and Test in Europe Conference and Exhibition,

2002, 2002.

[62] E.-Y. Chung, L. Benini and G. De Micheli, "Contents Provider-

assisted Dynamic Voltage Scaling for Low Energy Multimedia

Applications," in International Symposium on Low Power

Electronics and Design, 2002.

[63] P. Yang, C. Wong, P. Marchal, F. Catthoor, D. Desmet, D.

Verkest and R. Lauwereins, "Energy-aware runtime scheduling

for embedded-multiprocessor SOCs," IEEE Design Test of

Computers, vol. 18, no. 5, pp. 46-58, September 2001.

[64] V. Gutnik and A. P. Chandrakasan, "Embedded power supply

for low-power DSP," IEEE Transactions on Very Large Scale

Integration (VLSI) Systems, vol. 5, no. 4, pp. 425-435,

December 1997.

[65] L. S. Nielsen, C. Niessen, J. Sparso and K. van Berkel, "Low-

Power Operation Using Self-timed Circuits and Adaptive

Scaling of the Supply Voltage," IEEE Transactions on Very

Large Scale Integration (VLSI) Systems, vol. 2, no. 4, pp. 391-

397, December 1994.

[66] G.-Y. Wei and M. Horowitz, "A Fully Digital, Energy-efficient,

Adaptive Power-supply Regulator," IEEE Journal of Solid-State

Circuits, vol. 34, no. 4, pp. 520-580, April 1999.

[67] C. J. Hughes and S. V. Adve, "A Formal Approach to Frequent

Energy Adaptations for Multimedia Applications," in 31st Annual

International Symposium on Computer Architecture, 2004.

[68] Z. Lu, J. Lach, M. Stan and K. Skadron, "Reducing multimedia

decode power using feedback control," in 21st International

Conference on Computer Design, 2003.

[69] A. Sinha and A. P. Chandrakasan, "Dynamic Voltage

Scheduling using Adaptive Filtering of Workload Traces," in

14th International Conference on VLSI Design, 2001.

TĖi liệu tham khĘo 223

[70] N.-M. Nguyen, W. Lombardi, E. Beigné, S. Lesecq and X.-T.

Tran, "FIFO-level-based Power Management and its Application

to a H.264 encoder," in the 40th Annual Conference of IEEE

Industrial Electronics Society (IECON), Dallas, TX, USA, 2014.

[71] H. Pourshaghaghi, J. Escobar and J. Gyvez, Synthesis and

VHDL Implementation of Fuzzy Logic Controller for Dynamic

Voltage and Frequency Scaling (DVFS) Goals in Digital

Processors, E. Dadios, Ed., InTech, 2012.

[72] F. Brunno, R. Caponetto, L. Fortuna and D. Porto, "Parameter

Tuning and Hardware Implementation of a Non Integer Order

PID Controller," in 14th Mediterranean Conference on Control

and Automation, 2006.

[73] F. Zhang and Z. Li, "Design of fractional PID control system for

BLDC motor based on FPGA," in The Chinese Control And

Decision Conference (CCDC), 2018.

[74] P. Das, P. J. Edavoor, S. Raveendran and A. D. Rahulkar,

"Design and implementation of computationally efficient

architecture of PID based motion controller for robotic land

navigation system in FPGA," in Conference on Information and

Communication Technology (CICT), 2017.

[75] J.-S. Kim, H.-W. Jeon and S. Jung, "Hardware implementation of

nonlinear PID controller with FPGA based on floating point

operation for 6-DOF manipulator robot arm," in the Inernational

Conference on Control, Automation and Systems, 2007.

[76] I. Masngut, G. N. P. Pratama, A. I. Cahyadi, S. Herdjunanto and

J. F. J. Pakpahan, "Design of fractional-order proportional-

integral-derivative controller: Hardware realization," in the

International Conference on Information and Communications

Technology (ICOIACT), 2018.

[77] B. Xue, W. De-ming, T. Jun-jun and Z. Bu-hui, "The Hardware

Design and Simulation of Kalman Filter Based on IP Core and

224 Mạng trên chip

Time-sharing Multiplex," in 2011 Fourth International Conference

on Intelligent Computation Technology and Automation, 2011.

[78] I. Zbierska, T. Talapmka and R. Dlugosz, "Parallel matrix

multiplication in 2-gain Kalman filter realized in hardware," in

2017 IEEE 30th International Conference on Microelectronics

(MIEL), 2017.

[79] C. R. Lee and Z. Salcic, "A fully-hardware-type maximum-

parallel architecture for Kalman tracking filter in FPGAs," in

International Conference on Information, Communications and

Signal Processing, 1997.

[80] K. M. Deliparaschos, F. I. Nenedakis and S. G. Tzafestas,

"Design and Implementation of a Fast Digital Fuzzy Logic

Controller Using FPGA Technology," Journal of Intelligent and

Robotic Systems, vol. 45, no. 1, pp. 77-96, 2006.

[81] D. N. Oliveira, A. P. de Souza Braga and O. da Mota Almeida,

"Fuzzy Logic Controller Implementation on a FPGA Using

VHDL," in the Annual Meeting of the North American on Fuzzy

Information Processing Society (NAFIPS), 2010.

[82] Y.-H. Liu, Z.-Z. Yang, S.-Q. Huang and J.-F. Wei, "Design and

Implementation of an FPGA-based Fuzzy Controller for

Switched-Mode Power Supplies," in the World Congress on

Intelligent Control and Automation (WCICA), 2011.

[83] M. Sharma and M. Ayoub Khan, "Investigation of Low-Power

Techniques in Network-on-Chip," in World Applied Sciences

Journal 16 (Special Issue on Recent Trends in VLSI Design), 2012.

[84] W. Zong and Q. Xu, "DOART: A Low-Power and Low-Latency

Network-on-Chip," in 34th IEEE International Conference on

Computer Design (ICCD), 2016.

[85] A. Psarras, J. Lee, P. Mattheakis, C. Nicopoulos and G.

Dimitrakopoulos, "A Low-Power Network-on-Chip Architecture

for Tile-Based Chip Multi-Processors," in the International Great

Lakes Symposium on VLSI (GLSVLSI), 2016.

TĖi liệu tham khĘo 225

[86] M. Yadav, M. Casu and M. Zamboni, "LAURA-NoC: Local

Automatic Rate Adjustment in Network-on-Chips With a

Simple DVFS," IEEE Transactions on Circuits and Systems II,

no. 60, pp. 647-651, 2013.

[87] I. Vaisband and E. G. Friedman, "Dynamic Power Management

with Power Network-on-Chip," in the 12th International New

Circuits and Systems Conference (NEWCAS), 2014.

[88] A. Bhanwala, M. Kumar and Y. Kumar, "FPGA Based Design

of Low Power Reconfigurable Router for Network on Chip

(NoC)," in International Conference on Computing,

Communication Automation, 2015.

[89] F. Mohammadian, "FALP: A Fault Adaptive and Low Power

Method for Network on Chip Router," in Wokshop Proceedings

on Architecture of Computing Systems(ARCS), 2014, 2014.

[90] K. Swaminathan, G. Lakshminarayanan, F. Lang, M. Fahmi and

S. B. Ko, "Design of A Low Power Network Interface for

Network on chip," in 26th IEEE Canadian Conference on

Electrical and Computer Engineering (CCECE), 2013.

[91] W. Chouchene, B. Attia, A. Zitouni, N. Abid and R. Tourki, "A

Low Power Network Interface For Network on Chip," in 8th

International Multi-Conference on Systems, Signals & Devices,

2011.

[92] G. Sravya and M. Sailaja, "VLSI Design of Low Power Data

Encoding Techniques for Network-on-Chip," in the International

Conference on Signal Processing, Communication, Power and

Embedded System (SCOPES), 2016.

[93] D. Sarma, G. Lakshminarayanan and K. Chavali, "A Novel

Encoding Scheme for Low Power in Network on Chip Links," in

25th International Conference on VLSI Design (VLSID), 2012.

[94] E. Beigne, F. Clermidy, H. Lhermet, S. Miermont, Y. Thonnart,

X.-T. Tran, A. Valentian, D. Varreau, P. Vivet, X. Popon and H.

226 Mạng trên chip

Lebreton, "An Asynchronous Power Aware and Adaptive NoC

Based Circuit," IEEE Journal of Solid-State Circuits, vol. 44,

no. 4, pp. 1167-1177, 2009.

[95] E. Beigne, F. Clermidy, S. Miermont, Y. Thonnart, A. Valentian

and P. Vivet, "A Localized Power Control mixing hopping and

Super Cut-Off techniques within a GALS NoC," in IEEE

International Conference on Integrated Circuit Design and

Technology and Tutorial (ICICDT), 2008.

[96] X.-T. Tran, Méthode de Test et Conception en Vue du Test pour

les Réseaux sur Puce Asynchrones: Application au Réseau

ANOC, Grenoble, France: Grenoble INP, 2008.

[97] E. Beigne, F. Clermidy, S. Miermont and P. Vivet, "Dynamic

Voltage and Frequency Scaling Architecture for Units

Integration within a GALS NoC," in 2nd ACM/IEEE

International Symposium on Networks-on-Chip (NoCS), 2008.

[98] Y. Thonnart, E. Beigne, A. Valentian and P. Vivet, "Power

Reduction of Asynchronous Logic Circuits Using Activity

Detection," IEEE Transactions on Very Large Scale Integration

(VLSI) Systems, vol. 17, no. 7, pp. 893-906, 2009.

[99] H. Zakaria and L. Fesquet, "Process Variability Robust Energy-

Efficient Control for Nano-scaled Complex SoCs," in Faible

Tension Faible Consommation (FTFC), 2011.

[100] E. Yahya, O. Elissati, H. Zakaria, L. Fesquet and M. Renaudin,

"Programmable/Stoppable Oscillator Based on Self-Timed

Rings," in 15th IEEE Symposium on Asynchronous Circuits and

Systems (ASYNC), 2009.

[101] H. P. Phan, Power consumption optimization for network-on-

chip architectures, Vietnam National University, Hanoi, 2019.

[102] L. A. Zadeh, "Fuzzy Sets," Information and Control, vol. 8, no.

3, pp. 338-353, 1965.

TĖi liệu tham khĘo 227

[103] D. Song and S. Jung, "Neural Compensation Technique for

Fuzzy Controlled Humanoid Robot Arms : Experimental

Studies," in IEEE 22nd International Symposium on Intelligent

Control (ISIC), 2007.

[104] D. H. Song and S. Jung, "Geometrical Analysis of Inverse

Kinematics Solutions and Fuzzy Control of Humanoid Robot

Arm under Kinematics Constraints," in International

Conference on Mechatronics and Automation, 2007.

[105] K. Deliparaschos, F. Nenedakis and S. Tzafestas, "A fast digital

fuzzy logic controller: FPGA design and implementation," in

10th IEEE Conference onEmerging Technologies and Factory

Automation (ETFA), 2005.

[106] S. Uppalapati and D. Kaur, "Design and Implementation of a

Mamdani Fuzzy Inference System on an FPGA," in Annual

Meeting of the North American on Fuzzy Information

Processing Society (NAFIPS), 2009.

[107] P. Vuong, A. Madni and J. Vuong, "VHDL Implementation For

a Fuzzy Logic Controller," in World Automation Congress

(WAC), 2006.

[108] S. Guo, L. Peters and H. Surmann, "Design and Application of

an Analog Fuzzy Logic Controller," vol. 4, no. 4, 1996.

[109] K. Nakamura, N. Sakashita, Y. Nitta, K. Shimomura and T.

Tokuda, "Fuzzy Inference and Fuzzy Inference Processor,"

IEEE Micro, vol. 13, no. 5, pp. 37-48, 1993.

[110] M. Sugeno, "An Introductory Survey of Fuzzy Control,"

Information Sciences, vol. 36, no. 1, pp. 59-83, 1985.

[111] H. P. Phan and X.-T. Tran, "Design and Modeling of a Voltage-

Frequency Controller for Network-on-Chip Routers based on Fuzzy-

Logic," VNU Journal of Computer Science and Communication

Engineering (JCSCE), vol. 31, no. 2, pp. 56-65, 2015.

228 Mạng trên chip

[112] C. Ababei and N. Mastronarde, "Benefits and Costs of

Prediction Based DVFS for NoCs at Router Level," in 27th

IEEE International System-on-Chip Conference (SOCC), 2014.

[113] L. Shang, L.-S. Peh and N. K. Jha, "Dynamic Voltage Scaling

with Links for Power Optimization of Interconnection

Networks," in Ninth International Symposium on High-

Performance Computer Architecture (HPCA-9), 2003.

[114] A. B. Kahng, B. Lin and S. Nath, "Explicit Modeling of Control

and Data for Improved NoC Router Estimation," in Design

Automation Conference (DAC), 2012, 2012.

[115] A. B. Kahng, B. Li, L.-S. Peh and K. Samadi, "ORION 2.0: A

Fast and Accurate NoC Power and Area Model for Early-stage

Design Space Exploration," in Design, Automation and Test in

Europe (DATE), Nice, France, 2009.

[116] A. B. Kahng, B. Li, L. S. Peh and K. Samadi, "ORION 2.0: A

Power-Area Simulator for Interconnection Networks," IEEE

Transactions on Very Large Scale Integration (VLSI) Systems,

vol. 20, no. 1, pp. 191-196, 2012.

[117] A. B. Kahng, B. Lin and K. Samadi, "Improved On-chip Router

Analytical Power and Area Modeling," in 15th Asia and South

Pacific Design Automation Conference (ASP-DAC), 2010.

[118] K. Jeong, A. B. Kahng, B. Lin and K. Samadi, "Accurate

Machine-Learning-Based On-Chip Router Modeling," IEEE

Embedded Systems Letters, vol. 2, no. 3, Septembers 2010.

[119] J. Chan and S. Parameswaran, "NoCEE: Energy Macro-model

Extraction Methodology for Network on Chip Routers," in

IEEE/ACM International Conference on Computer-Aided

Design (ICCAD), 2005.

[120] G. Guindani, C. Reinbrecht, T. Raupp, N. Calazans and F. G.

Moraes, "NoC Power Estimation at the RTL Abstraction Level," in

IEEE Computer Society Annual Symposium on VLSI, 2008.

TĖi liệu tham khĘo 229

[121] S. E. Lee and N. Bagherzadeh, "A High Level Power Model for

Network-on-Chip (NoC) Router," Journal Computers and

Electrical Engineering, vol. 35, no. 6, pp. 837-845, 2009.

[122] G. Palermo and C. Silvano, "PIRATE: A Framework for

Power/Performance Exploration of Network-on-Chip

Architectures," in Integrated Circuit and System Design. Power

and Timing Modeling, Optimization and Simulation: 14th

International Workshop, PATMOS 2004, Santorini, Greece,

September 15-17, 2004. Proceedings, Springer Berlin Heidelberg.

[123] C. S. Patel, S. M. Chai, S. Yalamanchili and D. E. Schimmel,

"Power Constrained Design of Multiprocessor Interconnection

Networks," in International Conference on Computer Design

VLSI in Computers and Processors, 1997.

[124] N. Banerjee, P. Vellanki and K. S. Chatha, "A Power and

Performance Model for Network-on-Chip Architectures," in

Design, Automation and Test in Europe Conference and

Exhibition (DATE), 2004.

[125] A. Banerjee, R. Mullins and S. Moore, "A Power and Energy

Exploration of Network-on-Chip Architectures," in First

International Symposium on Networks-on-Chip (NoCS), 2007.

[126] P. Meloni, I. Loi, F. Angiolini, S. Carta, M. Barbaro, L. Raffo

and L. Benini, "Area and Power Modeling for Networks-on-

Chip with Layout Awareness," in IEEE VLSI Design, 2007.

[127] S. Penolazzi and A. Jantsch, "A High Level Power Model for

the Nostrum NoC," in 9th EUROMICRO Conference on Digital

System Design (DSD), 2006.

[128] D. A. K. Mishra, A. Yanamandra, R. Das, S. Eachempati, R.

Iyer, N. Vijaykrishnan and R. Chita, "RAFT: A router

architecture with frequency tuning for on-chip networks,"

Journal of Parallel and Distributed Computing, vol. 71, no. 5,

pp. 625 - 640, 2011.

230 Mạng trên chip

[129] A. K. Coskun, T. S. Rosing and K. C. Gross, "Utilizing

Predictors for Efficient Thermal Management in Multiprocessor

SoCs," IEEE Transactions on Computer-Aided Design of

Integrated Circuits and Systems, vol. 10, pp. 1503-1516,

October 2009.

[130] K. Park and W. Willinger, Self-Similar Network Traffic and

Performance Evaluation, John Wiley & Sons, Inc., 2000.

[131] H. P. Phan, X. T. Tran and T. Yoneda, "Power Consumption

Estimation using VNOC2.0 Simulator for a Fuzzy-Logic based

Low Power Network-on-Chip," in 2017 IEEE International

Conference on Integrated Circuit Design and Technology (IEEE

ICICDT), 2017, 2017.

[132] IEEE 1500, "IEEE 1500 Standard for Embedded Core Test,"

[Online].

[133] D. Chapiro, Globally Asynchronous Locally Synchronous

Systems, Standford University, 1984.

[134] A. Jantsch and H. Tenhunen, Networks on Chip, (Kluwer

Academic Publisher, 2003.

[135] A. Lines, "Asynchronous Interconnect for Synchronous SoC

Design," IEEE Micro, vol. 24, no. 1, pp. 32-41, 2004.

[136] R. Dobkin, V. Vishnyakov, E. Friedman and R. Ginosar, "An

Asynchronous Router for Multiple Service Levels Networks on

Chip," in The 11th IEEE Int. Symposium on Asynchronous

Circuits and Systems (ASYNC), New York, 2005.

[137] B. Vermeulent, J. Dielissen, K. Goossens and C. Ciordas,

"Bringing Communication Networks on a Chip: Test and

Verification Implications," IEEE Communication Magazine, pp.

74-86, September 2003.

[138] A. Amory, E. Briao, E. Cota, M. Lubaszewski and F. and Moraes,

"A Scalable Test Strategy for Network-on-Chip Routers," in

International Test Conference (ITC), Texas, USA, 2005.

TĖi liệu tham khĘo 231

[139] M. Hosseinabady, A. Banaiyan, M. Nazm and Z. Navabi, "A

Concurrent Testing Method for NoC Switches," in Design

Automation and Test in Europe (DATE), Munich, Germany, 2006.

[140] A. Efthymiou, J. Bainbridge and D. Edwards, "Test Pattern

Generation and Partial-Scan Methodology for an Asynchronous

SoC Interconnect," IEEE Transactions on VLSI Systems, p.

1384–1392, December 2005.

[141] X.-T. Tran, Y. Thonnart, J. Durupt, V. Beroulle and C. Robach,

"Design-for-Test Approach of an Asynchronous Network-on-

Chip Architecture and its Associated Test Pattern Generation

and Application," IET Computers & Digital Techniques, vol. 3,

no. 5, pp. 487-500, 2009.

[142] M. Nahvi and A. Ivanov, "Indirect Test Architecture for SoC

Testing," IEEE Transactions on CAD of Integrated Circuits and

Systems, vol. 23, no. 7, pp. 1128-1142, July 2004.

[143] E. Cota, L. Carro and M. Lubaszewski, "Reusing an On-Chip

Network for the Test of Core-Based Systems," vol. 9, no. 4, pp.

471-499, October 2004.

[144] A. Amory, K. Goossens, E. Marinissen, M. Lubaszewski and F.

Moraes, "Wrapper Design for the Reuse of Networks-on-Chip

as Test Access Mechanism," in The IEEE European Test

Symposium (ETS), Southampton, UK, 2006.

[145] F. Gürkaynak, T. Villiger, S. Oetiker, N. Felber, H. Kaeslin and

W. Fichtner, "A Functional Test Methodology for Globally

Asynchronous Locally Synchronous Systems," in The

International Symposium on Advanced Research in

Asynchronous Circuits and Systems (ASYNC), 2002.

[146] A. Martin, "Programming in VLSI: From Communicating

Processes to Delay-Insensitive Circuits," in Developments in

Concurrency and Communication, Addison-Wesley, 1990.

232 Mạng trên chip

[147] P. Hazewindus, Testing Delay-Insensitive Circuits, PhD thesis,

California Institute of Technology, 1992.

[148] J. Bainbridge, W. Toms, D. Edwards and S. Furber, "Delay-

Insensitive, Point-to-Point Interconnect using m-of-n Codes," in

The 9th IEEE International Symposium on Asynchronous

Circuits and Systems (ASYNC), Canada, 2003.

[149] P. Maurine, J. Rigaud, F. Bouesse, G. Sicard and M. Renaudin,

"Static Implementation of QDI Asynchronous Primitives," in

The 13th Int. Workshop on Power and Timing Modeling,

Optimization and Simulation (PATMOS), 2003.

Index 233

INDEX

A

ad-hoc, 24, 25

B

Best-Effort, 46

biến ngôn ngữ, 134, 135

bộ điều khiển tần số - điện áp, 139

bộ định tuyến, 30, 33, 42, 43, 51, 52, 55,

68, 74, 113, 138, 180, 185

bộ định tuyến cần kiểm tra, 183, 188,

189, 191, 198, 202, 203, 205, 211

bộ phối ghép mạng, 68

bus phân tầng, 26

C

cấp bậc của bộ định tuyến, 33

cấp độ liên thuộc, 142

cầu nối bus, 22, 26

chặn cấp nguồn, 104

chất lượng dịch vụ, 45

cơ chế truy cập kiểm tra, 181, 186, 187,

188, 197, 198, 208, 209, 210

cơ chế truyền thông, 37

công suất chuyển mạch, 95

công suất ngắn mạch, 96

công suất tiêu thụ động, 94, 95, 96, 97,

98, 99, 101, 102, 104, 121, 127, 174,

177

công suất tiêu thụ tĩnh, 94, 98, 99, 100,

101, 104, 174

D

deadlock, 42

deep submicron, 23

dị bộ toàn cầu - đồng bộ cục bộ, 14, 23,

114, 180

dịch vụ được đảm bảo (GS), 46

điểm-tới-điểm, 21, 25, 26

điều khiển luồng đầu-cuối, 44

độ bao phủ lỗi, 211, 212

độ rộng điểm chia đôi mạng, 33

độ trễ đáp ứng, 23, 34, 36, 38, 40, 45, 46

đổi điện áp thích nghi, 104

dòng điện rò, 95

dòng rò cổng, 98

dòng rò dưới ngưỡng, 98, 99

dòng rò máng gây ra bởi cực cổng, 98

dòng rò tiếp giáp, 99

dữ liệu kiểm tra, 181, 188

đường kính mạng, 33

F

flit, 37, 68

flit dữ liệu, 38

flit đuôi, 73

flit thân, 73

flit tiêu đề, 14, 38, 42, 43, 51, 52, 56, 57,

62, 68, 73, 74, 77, 78, 79, 81, 83,

161, 162, 185, 202

G

GALS, 14, 23, 114, 119, 121, 180, 182,

184, 214

giao thức bắt tay “send-accept”, 52, 53,

55

giao thức lõi mở (OCP: Open Core

Protocol), 69

giao thức truyền thông, 47

giao tiếp mạng, 68

gói tin (packet), 51

gói tin phản hồi, 76

gói tin phản hồi đọc, 83

gói tin phản hồi ghi, 83

234 Mạng trên chip

gói tin yêu cầu, 76

gói tin yêu cầu đọc, 76

gói tin yêu cầu ghi, 76

Guaranteed Service, 46

H

hàm liên thuộc, 130, 131, 132, 133, 135,

136, 137, 142, 143, 147, 148, 149,

150, 151, 152, 153, 156

hàng đợi lối ra, 39, 40

hàng đợi lối ra ảo, 39, 40

hàng đợi lối vào, 39

hàng đợi lối vào ưu tiên kênh ảo, 39, 40

hệ thống lô-gic mờ, 129, 134, 135, 136

hệ thống mờ, 136

hệ thống trên chip, 17, 21, 22, 29, 67,

94, 104, 128, 179

head-of-line blocking, 39

I

IP reuse, 29

K

kênh vật lý, 52

kết nối điểm-điểm, 22

khả năng điều khiển, 186

khả năng hỗ trợ tốt nhất (BE), 46

khả năng kiểm tra, 67, 183, 209, 214

khả năng quan sát, 186

khái niệm tập hợp, 130

khóa chết, 42, 43, 44, 52, 72, 112

khóa động, 42, 44, 52

khung cấu hình kiểm tra, 194, 195, 196,

198, 205, 206, 210

kỹ thuật chuyển mạch gói, 35, 36, 37,

39, 51

kỹ thuật chuyển mạch kênh, 35, 36, 54

kỹ thuật credit, 45, 55

kỹ thuật cửa sổ, 45

kỹ thuật điều khiển luồng dữ liệu, 45

kỹ thuật điều khiển thông lượng, 45

Kỹ thuật truyền thông, 35

L

liên kết mạng, 33

livelock, 42, 44

lô-gic mờ, 133

lõi IP, 17, 19, 21, 22, 23, 24, 25, 26, 29,

30, 51, 53, 60, 62, 67, 68, 72, 75, 76,

77, 78, 83, 85, 89, 112, 114, 115,

116, 117, 118, 121, 124, 125, 126,

127, 139, 159, 174, 176, 177, 180,

181, 182, 208, 209

lỗi stuck-at đơn, 199, 210, 212, 213, 214

luồng kiểm tra, 187, 206, 207

lưu trữ và chuyển tiếp, 37

lý thuyết tập mờ, 128, 131, 133

M

mạng trên chip, 17, 18, 19, 27, 30, 31,

32, 33, 34, 35, 38, 39, 41, 42, 45, 46,

47, 48, 49, 50, 52, 54, 66, 67, 68, 70,

71, 72, 73, 74, 93, 94, 112, 113, 114,

117, 119, 121, 126, 127, 128, 138,

139, 140, 141, 158, 159, 160, 163,

166, 167, 172, 176, 178, 179, 180,

182, 184, 185, 187, 188, 189, 201,

203, 206, 208, 213, 214

mẩu cấu hình, 194, 196, 210

máy trạng thái hữu hạn, 71, 81, 82, 83,

85, 86, 93, 144

mô hình Sugeno, 137

mô-đun điều khiển wrapper, 187, 194

mức chuyển giao thanh ghi, 24

P

phương pháp chặn cấp nguồn, 100

phương pháp chặn cấp xung nhịp, 98,

101, 124

phương pháp đa điện áp ngưỡng, 100

phương pháp điều khiển tỷ lệ điện áp

thích nghi, 105

phương pháp điều khiển tỷ lệ điện áp và

tần số động, 105, 106, 107, 108, 109,

110, 111

phương pháp mux-selection, 71, 80, 87

Index 235

phương pháp thiết kế đa điện áp nguồn,

102

phương pháp thiết kế đa điện áp

ngưỡng, 103

Q

quá trình giải mờ, 136, 153

quá trình hợp thành, 136

quá trình mờ hóa, 136, 148, 149

R

RTL, 24

S

sự biến thiên (variation), 67

T

tắc nghẽn động, 42

tắc nghẽn tĩnh, 42

tầng giao vận, 48

tầng liên kết dữ liệu, 48

tầng mạng, 48

tầng vật lý, 48

tập kinh điển, 130

tập mờ, 130

thiết kế kiểm tra, 19, 116, 179, 180, 181,

183, 184, 186, 192, 213, 214

thiết kế tái sử dụng các lõi IP, 29

thời gian đưa sản phẩm ra thị trường, 67

thời gian đưa sản phẩm ra thị trường

(time-to-market), 29

thời gian xử lý trung bình, 107

thông lượng, 24, 45, 46, 71, 80, 88, 91,

93, 117, 208, 210

thứ tự dữ liệu, 46

thuật toán định tuyến, 40

thuật toán định tuyến động, 41

thuật toán định tuyến phân tán, 42

thuật toán định tuyến tại nguồn, 42

thuật toán định tuyến thích ứng, 41

thuật toán định tuyến tĩnh, 41

thuật toán định tuyến xác định, 41, 50,

72

thuật toán Sugeno, 137

tính đa dạng của các đường định tuyến,

33

tính đối xứng, 33

tính quy tắc, 33

tính toàn vẹn dữ liệu, 45

tô-pô, 33, 34, 35, 71

tỷ lệ điện áp cố định, 105

tỷ lệ điện áp đa mức, 105

V

véc-tơ kiểm tra, 186, 201, 202, 204, 205,

206, 207, 210, 211, 212

Virtual-Cut-Through, 37, 38

W

Wormhole, 37, 38