1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Hiện thực một NOC (network on chip) sử dụng lõi vi xử lý RISC-V RV32IMF thông qua giao thức TileLink trên FPGA

98 1 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hiện thực một NOC (network on chip) sử dụng lõi vi xử lý RISC-V RV32IMF thông qua giao thức TileLink trên FPGA
Tác giả Trương Trần Hoài Nam, Nguyễn Đức Duy Khang
Người hướng dẫn ThS. Phạm Thanh Hùng, TS. Trần Phước Xuân
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 98
Dung lượng 90,55 MB

Nội dung

Thay vì truy xuất dữ liệu trực tiếp từ bộ nhớchính, CPU sẽ yêu cầu sử dung dữ liệu được lưu trữ tạm thời giúp cải thiện tốc độ xử lý của vi xử lý.. Cấp độ cao nhất TL-C bổ sung ba kênh c

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUAT MAY TÍNH

TRUONG TRAN HOÀI NAM - 20521638

NGUYEN ĐỨC DUY KHANG - 20521435

KHÓA LUẬN TÓT NGHIỆP

HIỆN THỰC MỘT NOC (NETWORK ON CHIP) SỬ

DUNG LOI VI XỬ LÝ RISC-V RV32IMF THONG

QUA GIAO THỨC TILELINK TRÊN FPGA

IMPLEMENTING A NOC (NETWORK ON CHIP) USING RISC-V

RV32IMF PROCESSOR CORE WITH TILELINK PROTOCOL

ON FPGA

CU NHÂN NGÀNH KĨ THUAT MAY TÍNH

GIẢNG VIÊN HƯỚNG DAN

ThS PHẠM THANH HÙNG

TS TRÀN PHƯỚC XUÂN

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Trong khoảng thời gian bốn tháng vừa qua cùng nhau học tập và hoàn thiệnkhóa luận dé tong két lai con duong bốn năm đại học mang lại cho chúng emnhiều cung bậc cảm xúc Khóa luận tốt nghiệp này không chỉ là hồi chuông kết

thúc của một chặng đường dài mà còn mở ra con đường mới đang mong chờ tụi

em tiếp bước

Bằng tắt cả tắm lòng và chân thành, chúng em xin gửi lời cảm ơn trân trọngđến toàn thể quý thầy cô Trường Đại học Công nghệ Thông Tin — Dai học Quốcgia Thành phố Hồ Chí Minh nói chung và các thầy cô trong Khoa Kỹ thuật máy

tính nói riêng Quý thầy cô đã không chỉ cung cấp cho chúng em những kiến thức

quý báu mà còn luôn tận tâm, nhiệt huyết trong việc hướng dẫn và hỗ trợ sinhviên Những bài giảng, những buỗi thảo luận và những lời khuyên quý báu từ quýthầy cô là nền tảng vững chắc giúp chúng em đủ bản lĩnh, vừng bước trên conđường sắp tới của mình

Chúng em xin bày tỏ lòng biết ơn sâu sắc tới giảng viên, Thạc sĩ Phạm Thanh

Hùng đã dành rat nhiều thời gian, công sức dé hướng dẫn, chỉnh sửa và đóng gop

ý kiến cho khóa luận của chúng em Những kiến thức chuyên môn sâu rộng, nhữngkinh nghiệm quý báu và sự tận tình của thầy đã giúp chúng em vượt qua nhữngkhó khăn va thử thách trong suốt quá trình nghiên cứu đề có thé đạt được kết qua

đường đại học.

Trang 3

Bên cạnh những yếu tố khách quan về việc giới hạn kiến thức, khó khăn về thời gian hoàn thành khoá luận, nhóm vẫn còn nhiều mặt bị hạn chế và thiếu sót Vượt lên

trên những khó khăn đó, chúng em vẫn hết sức cố gắng và nỗ lực hoàn thành khoá

luận trong khả năng Chúng em kính mong hội đồng có thể cảm thông và đưa ra chỉ

dẫn góp ý để khoá luận của chúng em có thê tốt hơn

Chúng em xin trân trọng cảm ơn !

TP Hồ Chí Minh, năm 2024

Sinh viên thực hiện

Trương Trần Hoài Nam Nguyễn Đức Duy Khang

Trang 4

Chương 2 CO SỞ LÝ THUYÊTT - e2 s£©ss©s£essessesseessessessesse 3

2.1 Kiến trúc tập lệnh RISC-V ccss+ccestreeetrrrvrtrrvrrrrrrrrrrrrrrrrrrree 3

2.1.1 Tổng quát RISC-V cceseeecerrreererrrrrrrrrirrrrrrrreerre 3

2.1.2 Tổng quát lõi RISC-V RV32IME -sseceesreeerreeere 4

AVANCE Ôn -eeere 4

2.1.2.2 Mo rong chuẩn M (RV32M) wecssssssssssssssscssesssssssssssssssesssseeeeeesesssssssasessssee 52.1.2.3 Mở rộng chuẩn F (RV32F) scssssssssssssessassnsssssssessssssessssesessnsseesnssneeseeseees 72.2 Sơ lược về bộ nhớ đệm -22+++ccettrrevEttrrevrtrrerrtrrrrrrrtrrrrrrrrree 142.3 Sơ lược về giao thức TileLink -s-eceeseeeeereeeereeeerreerrrreerre 15

2.3.1 Tổng quát -eeecreeeeerreeceerieeeerrrrerrrrrrree 15

2.3.2 Hoạt động cơ bản csccscx+cctsckttkktEkktEkrtkirkrirriirrirrrrreree 15

2.3.3 Các kênh của TileLink s .eecesrreccerrrecerrrrererrree 16

2.3.4 Các cấp độ của TileLink -+ceccceerrreecevrrrrreererrrrrrreerr 17

2.3.4.1 Tilelink Uncached Lightweight (TL-UL) -: 18 2.3.4.2 TileLink Uncached Heavyweight (TL-UH) - - 19 2.3.4.3 TileLink Cached (TL-C)etsesssssssssssusssesssnsessssssessssnsesssnsssssssesssnsesssen 20

2.4 So luge ve Crossbar seccsssessssssssssssssusssssssssssssssssssssssssssssussssseessssssssssssssseeseessessssseeeeeeee 222.5 Sơ lược về Network on Chipeesssssssssssssussssssussesssussssssasesesissssssssssssssssessssseese 22Chương 3 HIỆN THỰC THIET KKẾ -s-s<ssssseseseesssesee 24

Trang 5

3.1 Thiết kế lõi vi xử lý RISC-V RV32IME c255-icccccerrrrreererrrrree 24

3.1.1 _ Tổng quan thiết kế 2-ccssreecerrererrererrrrerrrrrrrre 24

3.1.2 Dafapath ccccHhHHHHìH Hà nhe ưkt 24

B.L.2.1 Tamg Fetch nh 283.1.2.2 Tầng Decode eecereecerirrerrirerrirrtrirrrrrrrerrreerrre 283.1.2.3 Tang Execute an ẽ 28

3.4 Hiện thực crossbar 4X4 c-cc-cccccceretsrtertrrrrttsrttrtrrrrrrrrrkrrsrrrrrrrsrkee 46

3.5 Hiện thực Network on Chip với lối RV32IME -s c«<ccxxeereeee 53

3.5.1 Hién thực kết nối giữa RV32IME với Agent -.c-cee 533.5.2 _ Hiện thực kết nối các lõi với Crossbar 4x4 - -cce-ee 543.6 Hiện thực SoC dé nạp xuống kit VirteX 7 -cceeeceereeeerreeerre 55Chương 4 KET QUÁ VÀ ĐÁNH GIA -2- 5-5 scs=sessessessessesses 57

4.1 Kết quả mô phỏng trên VivadO sssxcceereeeerrererrrrvrrrrrrrrrerrrree 57

4.1.1 Kết quả mô phỏng crossbar 4X4 .ecceiceeceverrrrceevrrrrrree 574.1.2 Kết quả mô phỏng giao thức TileLink - -ccese-ee 584.1.3 Kết quả mô phỏng từng lõi vi xử lý «cc-e ccceerree 624.2 acc cố 72

Trang 6

4.2.1 Đánh giá thiết kết Crossbar 4x4 -.cceccerrrreceerrrrrreeee 724.2.2 Đánh giá thiết kế của lõi RV32IME -.eeccerreccerrree 734.2.3 Đánh giá thiết kế hệ thống NoC c-s ccecerrreceerrrcee 74

4.3 Bảng SO sánh «ch th HH HH H111 11111 11krrkrrre 77

4.3.1 So sánh độ chuẩn xác của các thuật toán số thực -: 77

4.3.2 So sánh thiết kế của Crossbar 4x4 -ccecrreccrrrrecerrree 804.3.3 So sánh giao thức TileLink với các chuẩn giao thức khác 814.3.4 So sánh lõi RV32IMF với các thiết kế khác - 81

Chương 5 KET LUẬN VÀ HƯỚNG PHAT TRIỂN -s- 82

5.1 Kếtluận Z2 wxnớ 825.2 Hướng phát triễn -:eccccerrrreeeveertirrrerrtrririrrertrririrrrrrrrrrrrrrerrrre 82

TÀI LIEU THAM KHẢO 2< s2£©ss£€2ssESse©vssevseersservsserssee 84

Trang 7

DANH MỤC HÌNH

Hình 2.1 Sơ đồ giải thuật chia Non-Restoring -s -csseeeerreeerrererrree 6 Hình 2.2 Biểu diễn lệnh Load-word và Store-word số thực - -.cee 7 Hình 2.3 Sơ đồ giải thuật cộng và trừ 2 số thực 32 bit -ccccecrreecccrrree 8 Hình 2.4 Sơ đồ giải thuật nhân 2 số thực 32 bit : ecccerrreeeceerrrreceerr 10 Hình 2.5 Sơ đồ giải thuật chia 2 số thực 32 bit esereriererrrree 11

Hình 2.6 Sơ đồ giải thuật căn bậc 2 số thực -. -ss++ccstreeerrreerrrrerre 13 Hình 2.7 Mô tả hoạt động cơ bản của TilelLLInK ‹ ss-5s<5cssresreexeeereeereeee 16 Hình 2.8 Mô tả đường di các kênh của 'T1leLLInk e sc5cse5cevcceexeeerveervexx 17

Hình 3.1 Kiến trúc tổng quát lõi vi xử lý RISC-V RV32IME 24

Hình 3.2 Sơ đồ kiến trúc tổng quan của BTB -++ccsstrcccerrrreeerre 26 Hình 3.3 Sơ đồ kiến trúc tổng quan của PHTT -e:+eecevtttieeevvtrrrrreevre 27 Hình 3.4 Kiến trúc tông quan của bộ nhớ đệm 4-way set associative 36

Hình 3.5 Sơ đồ giải thuật điều khién bộ nhớ đệm lưu trữ lệnh - 37

Hình 3.6 Sơ đồ giải thuật điều khién bộ nhớ đệm lưu trữ dữ liệu 39

Hình 3.7 Kiến trúc tong quan giao tiếp giữa 2 lõi bằng TileLink 40

Hình 3.8 Sơ đồ máy trang thái ưu tiên theo kênh của Master - 44

Hình 3.9 Sơ đồ máy trang thái ưu tiên theo kênh của Slave - - 46

Hình 3.10 Kiến trúc tổng quan khối Crossbar 4x4 -+-essecesrecesre 47 Hình 3.11 Tông quan về giải thuật DPA trong Crossbar 4x4 - 47

Hình 3.12 Kiến trúc của một 6 trong giải thuật DPA . cc-e+rcccccv+ 49 Hình 3.13 Kiến trúc của công đầu ra dữ liệu thứ nhất -ccs+ 50 Hình 3.14 Kiến trúc của công đầu ra dit liệu thứ hai - -2 icccssrrcecerre 51 Hình 3.15 Kiến trúc của công đầu ra dữ liệu thứ ba -cc-errcccccee 51 Hình 3.16 Kiến trúc đầu ra của công dit liệu thứ tư . -ceerrcccerre 52 Hình 3.17 Thành phan cụ thể của một gói tin dữ liệu -s - 53 Hình 3.18 Mô hình giao tiếp lõi RV32IMF với Agent -ccssiireccccct 54 Hình 3.19 Kiến trúc tổng quan của NoC .-.c-:+icececerrrreeeevrrrrirrererrrrrrreerr 55

Trang 8

Hình 3.20 Block design trên Vivado c s«cssckeskkEEkkekkrtkrrkirrrirrriirrrrrrreree 55

Hình 3.21 Sơ dé thiết kế SoC và kiến trúc bộ nhớ của lõi RV32IME 56Hình 4.1 Kết quả mô phỏng Crossbar 4x4 -+-ccss+eecetrrereerrrrererrrerre 57

Hình 4.2 Kết quả mô phỏng Crossbar 4x4 khi xảy ra tranh chấp 58

Hình 4.3 Kết quả mô phỏng TL-UL cho PUT và GET ss.+-csss+e 58Hình 4.4 Kết quả mô phỏng TL-UH cho nhóm lệnh toán học 59Hình 4.5 Kết quả mô phỏng TL-UH cho lệnh logical -ss-.+-csssse 60Hình 4.6 Kết quả mô phỏng TL-C cho các lệnh Probe -ccseirreccccv+ 60Hình 4.7 Kết quả mô phỏng TL-C cho các nhóm lệnh Release 61

Hình 4.8 Kết quả mô phỏng TL-C cho các nhóm lệnh Acquire 62

Hình 4.9 Chương trình kiểm tra gốc và chương trình được tạo ra cho NoC 63Hình 4.10 Kết quả mô phỏng lõi master l -ceoeiiceecceerrreeeeverrrrceeert 63Hình 4.11 Kết quả mô phỏng lõi master 2 -. -ecccerrrreecevtrrrecseerrrrrreecrt 64Hình 4.12 Kết quả mô phỏng lõi master 2 sau khi nhận được dit liệu 64Hình 4.13 Kết quả mô phỏng lõi master 3 :-ccecetireecevtttreeevverrrrreevre 65Hình 4.14 Kết qua mô phỏng lõi master 3 sau khi nhận được dữ liệu 65

Hình 4.15 Kết quả mô phỏng lõi master 4 -e-2++ccssireeceetreceerrrrererrte 66

Hình 4.16 Kết qua mô phỏng lõi master 4 sau khi nhận được dữ liệu 66

Hình 4.17 Chương trình tính toán của 101 Slave Š -c-eeccrxesrerkerrerrrrrreee 67

Hình 4.18 Đợi các cờ và dữ liệu để thực thi s-eccsereeeerreeerrreere 68Hình 4.19 Kết quả mô phỏng lõi slave 5 +-e22+cecesirreceerrrceerrrrerrrre 68Hình 4.20 Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ nhất 69Hình 4.21 Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ hai 69

Hình 4.22 Kết quả mô phỏng lõi slave 5 sau khi nhận được dữ liệu lần thứ ba 69

Hình 4.23 Kết qua mô phỏng lõi slave 5 sau khi nhận được dtr liệu lần cuối 70Hình 4.24 Kết quả mô phỏng lõi slave 6 -22-+cecesrreecetrreceerrrreerrrrecre 70Hình 4.25 Kết quả mô phỏng lõi slave 7 - iicececetrrreeeeverrreeeevrrrrreeeerr 71Hình 4.26 Kết quả mô phỏng lõi slave e22+cecesirreceerrereerrrrererre 71

Hình 4.27 Power on Chip của Crossbar 4X4 -cceeskirkkiiriiiiiikee 72

Trang 9

Hình 4.28 Design Timming Summary của Crossbar 4X4 -« c«e-cecc«ee 72 Hình 4.29 Power on Chip của lõi RV322IME seccsrkirrirrrriirriirrrire 73

Hình 4.30 Design Timming Summary của lõi RV32IME -ceccceeee 74

Hình 4.31 Thời gian bắt đầu thực thi + s2++ce+trecztrererrrrrrrrrrrrrrrrrre 74Hình 4.32 Kết quả mô phỏng thời gian thực thi của lõi RV32IME 74Hình 4.33 Kết quả mô phỏng thời gian thực thi của NoC - 75

Hình 4.34 Power on chip của ÌNOC c«-csstHHHHHHHHHàư HHehiưêt 76

Hình 4.35 Design Timming Summary của ÌNOC -.e 55c5c+ssceerxeereservsrreeee 77

Trang 10

DANH MỤC BANG

Bảng 2.1 Mô tả chức năng thanh ghi cơ bản RV32ÌL -cc-cccsscreerereerrreerree 4

Bảng 2.2 Bảng mã hóa Booth của giải thuật Radix-4 booth multipiler 5

Bang 2.3 Mô tả chức năng thanh ghi RV32E -ccescccsvscsrxerrrrsrrrrtsrrrrrrrrrrrrie 7 Bang 2.4 Mô tả số bit trừ và thương số được tính trong mỗi tang Pipeline 12

Bảng 2.5 Phân loại các thao tác theo cấp độ TileLink hỗ trợ - 18

Bảng 2.6 Mô tả chỉ tiết thông điệp trong giao thức TL-UL - 18

Bang 2.7 Mô ta chỉ tiết các thông điệp được bé sung trong giao thức TL-UH 19

Bang 2.8 Mô tả chỉ tiết các thông điệp trong giao thức TL-C - - 20

Bảng 3.1 Mô tả chỉ tiết các tín hiệu điều khiến -2 +-eceerrcccerrrrecerre 29 Bang 3.2 Chi tiết tín hiệu điều khiển nhóm lệnh load -: cccc+ 30 Bảng 3.3 Chỉ tiết tín hiệu điều khiển ứng với từng lệnh <ss - 31

Bảng 3.4 Chỉ tiết tín hiệu điều khiển ứng với từng lệnh (t.1) - 31

Bảng 3.5 Chỉ tiết tín hiệu điều khiển ứng với từng lệnh (t.t) - 32

Bảng 3.6 Chi tiết tín hiệu điều khién ứng với từng lệnh (t.t) - - 32

Bảng 3.7 Chỉ tiết tín hiệu điều khién ứng với từng lệnh (t.t) 33

Bang 3.8 Chi tiết tín hiệu điều khiển bộ Mul_Div -ixeccccerrreccccrr 33 Bảng 3.9 Chỉ tiết tín hiệu điều khiển Branch -cs2i+eeceetrcccerrrreeerrre 34 Bảng 3.10 Chi tiết tín hiệu điều khiển bộ AL/U -esseeesreceerre 34 Bảng 3.11 Chi tiết tín hiệu điều khiển bộ FPU c22++rrccctrrrcccz+ 35 Bang 3.12 Mô tả chỉ tiết tín hiệu của các kênh ở Master Interface - 40

Bang 3.13 Mô tả chỉ tiết tín hiệu của các kênh ở Slave Interface - 42

Bảng 3.14 Mô tả chỉ tiết các trạng thái của Master - -+-essecesrrceerre 45 Bang 3.15 Mô tả chỉ tiết các trạng thái của Slave ccccecrrcccccerrrreccerr 45 Bang 3.16 Bảng sự thật của một ô trong giải thuật DPA -<<cc«+ 48 Bảng 3.17 Cách dữ liệu được phân xử khi 2 cổng truy xuất 1 công 52

Bảng 4.1 Tài nguyên tiêu thụ của Crossbar 4{x4 c-cccsrserseerretrserrereee 72 Bảng 4.2 Tài nguyên tiêu thụ của lõi RV32IME -cccStieeriierreirerireriee 73

Trang 11

Bảng 4.3 Tài nguyên tiêu thụ của ]NOC 5ccsxkekteekirrkirrrirrrrrrrrrrrreree 76

Bảng 4.4 Kết quả so sánh thực toán cộng số thực giữa máy tính và vi xử lý 77

Bang 4.5 Kết quả so sánh thực toán trừ số thực giữa máy tình và xi xử lý 77

Bảng 4.6 Kết quả so sánh giữa nhân số thực giữ máy tính và vi xử lý 78

Bảng 4.7 Kết quả so sánh chia số thực giữa máy tính và vi xử lý 78

Bảng 4.8 Kết quả so sánh căn bậc 2 số thực giữa máy tính và vi xử lý 79

Bảng 4.9 Bảng so sánh giữa DPA với các giải thuật khác -‹ 80

Bang 4.10 Bảng so sánh giữa Crossbar với đề tài liên quan - 80

Bang 4.11 So sánh giao thức TileLink với các giao thức khác - 81

Bảng 4.12 Bang so sánh lõi RV32IME với đề tài liên quan -. - 81

Trang 12

DANH MỤC TU VIET TAT

Viết tắt Viết đầy đủ

AI Artificial Intelligence

ALU Arithmetic Logic Unit

BTB Branch Target Buffer

CPU Central Processing Unit

CSR Control and Status Register

DPA Diagonal Propagation arbiter

FPGA Field-Programmable Gate Array FPU Floating Point Unit

ID Identity

ISA Instruction Set Architecture

IP CORE Intellectual Property Core

LSB Least Significant Bit

MSB Most Significant Bit

NoC Network on Chip

PHT Pattern History Table

RISC Reduce Instruction Set Computer SoC System on Chip

TL-C TileLink-Cached

TL-UH TileLink-Uncached Heavyweight

TL-UL TileLink-Uncached Lightweight

Trang 13

(4-Đầu tiên nhóm sẽ nghiên cứu và thực hiện một bộ nhớ đệm theo kiểu 4-way setassociative, giải thuật Branch Prediction dé tích hợp vào vi xử lý RISC-V RV32IMF

tăng cao tốc độ xử lý và truy cập vùng nhớ

Tiếp theo thiết kế vi xử lý RISC-V RV32IMF, chúng em sẽ nghiên cứu và hiệnthực kiến trúc RISC-V RV32I Pipeline 5 tang, sau đó thiết kế một bộ nhân chia sốnguyên và một bộ FPU cho xử lý số thực, tích hợp vào vi xử lý RV32I tạo thành vi

xử lý RV32IMF.

Hiện thực giao thức TileLink và kiến trúc Crossbar 4x4 dé xây dựng lên một NoC

4x4 sử dụng lõi vi xử lý RISC-V RV32IMF.

Cuối cùng là kiểm tra các lệnh được hỗ trợ trong lõi vi xử lý RISC-V RV32IME,

khả năng giao tiếp của NoC 4x4 thông qua mô phỏng trên phan mềm Vivado và Kit

VC707 FPGA.

Trang 14

Chương 1 GIỚI THIỆU DE TÀI

1.1 Tông quan đề tài

Trong thời điểm hiện tại, vi xử lý mã nguồn mở RISC-V [1] đang thu hút sự quantâm và tạo ra triển vọng cho một cuộc cách mạng toàn diện trong ngành công nghệthông tin trên toàn thế giới Mang đến một sự hứa hen mới trong thay đổi bối cảnh

của ngành điện toán và vi mạch Hiện nay có rất nhiều đồ án, nghiên cứu khoa học

về đề tài RISC-V, trong đó hướng thiết kế kiến trúc RISC-V là cơ bản và dễ tiếp cậnnhất với sinh viên Qua đó mà sinh viên có thể làm quen với một ISA mới, cách thiết

kế một vi xử lý dựa trên kiến trúc đã tìm hiểu Do đó việc chọn kiến trúc của

RISC-V làm hướng nghiên cứu và phát triển những ứng dụng dựa trên nó rất đa dạng cả về

lĩnh vực công nghiệp và học thuật.

Trong các hệ thống tích hợp hiện nay, sự tăng cường của kích thước và tính phứctạp của các thành phần đã tạo ra những thách thức trong việc quản lý và truyền dữliệu giữa chúng như đa lõi, đa luồng, hay phần cứng cho các ứng dụng máy học, xử

lý tín hiệu số thì việc sử dụng bus truyền thống gây ra độ trễ lớn, khó quản lý và tiêutốn năng lượng Vì vậy việc nghiên cứu và phát trién những giải thuật và giao thức

để hỗ trợ giao tiếp các thành phần trong chip rất quan trọng NoC (Network on Chip)được xem là 1 giải pháp giúp quản lý việc truyền dữ liệu và giảm sự xung đột trongquá trình yêu cầu tài nguyên trong chip

Việc kết nối và truyền tải dữ liệu giữa các thành phần trong NoC cần có các giaothức kết nối phù hợp dé tối ưu hóa Giao thức TileLink là một trong những giao thứctiên tiến, được phát triển bởi SiFive và cộng đồng RISC-V để hỗ trợ khả năng tươngthích, khả năng mở rộng, cung cấp băng thông cao và đỗ trễ thấp giúp tối ưu hóa hiệusuất của toàn hệ thống Vì vậy đối với một NoC sử dụng vi xử lý RISC-V làm lõi thì

độ tương thích của giao thức TileLink càng cao và mang tới hiệu suất lớn

Tổng hợp các điều trên, nhóm đã quyết định xây dựng một NoC sử dụng lõi vi

xử lý RISC-V RV32IMF thông qua giao thức TileLink mang tới nhiều ưu điểm đáng

kể cho sự phát triển của hệ thống mạch tích hợp

Trang 15

Ưu điểm mang lại:

- Cung cấp băng thông cao và độ trễ thấp giúp tăng cường hiệu suất

- Khả năng mở rộng linh hoạt va hỗ trợ nhiều hệ thống lớn

- _ Tiết kiệm năng lượng và quan lý tài nguyên hiệu quả

- Có thể tùy chỉnh theo yêu cầu và hỗ trợ nhiều loại giao tiếp

- Chuẩn mở và khả năng tương thích cao

1.2 Mục tiêu đề tài

Mục tiêu đề tài cụ thể như sau:

- Nghiên cứu tập lệnh RISC-V RV32IMF và phương pháp Pipeline 5 tầng

- Nghiên cứu và hiện thực bộ nhớ đệm kiểu 4-way set associative

- Nghiên cứu và hiện thực giải thuật Branch Prediction.

- Nghiên cứu và hiện thực bộ nhân chia sé nguyên, bộ tính toán số thực

- Nghiên cứu và hiện thực giao thức TileLink.

- Nghiên cứu và hiện thực kiến trúc Crossbar 4x4

- Hiện thực bang Verilog HDL vi xử lý RISC-V RV32IMF Pipeline 5 tang với

bộ nhớ đệm 4-way set associative và giải thuật Branch Prediction.

- Hiện thực một NoC 4x4 sử dung lõi vi xử lý RISC-V RV32IMF thông qua giao thức TileLink.

- Hệ thống có tan số hoạt động là 100Mhz

- Kết quả mô phỏng và kết quả nap kit Xilinx VC707 đúng với các lệnh được

hỗ trợ, thực hiện được khả năng giao tiếp của một NoC như mong muốn

1.3 Giới hạn đề tài

- Đối với RV32IME, vi xử lý không hỗ trợ các lệnh liên quan đến Environment

Call và Breakpoints Không hỗ trợ CSR cho mở rộng F.

- Giao thức Tilelink chưa hỗ trợ đầy đủ chức năng Cache Coherence, cũng như

các thông điệp liên quan tới Atomic.

- Bộ nhớ đệm kiểu 4-way set associative dung lượng có giới hạn khoảng 512

Byte.

- Chỉ hiện thực lõi Master có quyền truy cập vào lõi Slave

Trang 16

Chương2 CƠ SỞ LÝ THUYET

2.1 Kiến trúc tập lệnh RISC-V

2.1.1 Tổng quát RISC-V

RISC-V [1] là một kiến trúc lệnh (ISA - Instruction Set Architecture) dựa trên

RISC (Reduced Instruction Set Computer) "RISC" dé cap dén việc su dụng một tậplệnh nhỏ và cố định dé thực hiện các tác vụ máy tính, nhằm tối ưu hóa hiệu suất và

sự đơn giản của bộ xử lý.

Một số đặc điểm đáng chú ý của RISC-V:

- Kiến trúc và mã nguồn mở: RISC-V là một kiến trúc mở, cho phép mọi người

sử dụng, phát triển và đóng góp vào nó mà không gặp hạn chế bản quyên Điều này

tạo điều kiện thuận lợi cho sự đa dạng và sự phát triển trong cộng đồng.

- Hỗ trợ đa cấp độ quyền: RISC-V cung cấp các chế độ quyền khác nhau nhưUser Mode, Supervisor Mode và Machine Mode, giúp hỗ trợ bảo mật hệ thống

- Số lượng thanh ghi nhiều: RISC-V thường cung cấp một số lượng lớn thanhghi, giúp tối ưu hóa hiệu suất và giảm sự phụ thuộc vào bộ nhớ

- Ứng dụng rộng rãi: RISC-V có thé được triển khai trong nhiều ứng dụng, baogồm thiết bị nhúng, máy tính cỡ lớn, trí tuệ nhân tạo (AI), và các lĩnh vực khác

- Khả năng mở rộng: Kiến trúc RISC-V có kha năng mở rộng với các tập lệnh

và thanh ghi mới, giúp nó linh hoạt và có thê thích ứng với các ứng dụng mới và tiến

triển công nghệ Một số phần mở rộng tiêu chuẩn của RISC-V:

+ M (Nhân, chia số nguyên)

+ A (Các lệnh liên quan tới Atomic)

+ _F(Các phép toán số thực 32 bit)+ D (Các phép toán số thực 64 bit)+ Q (Các phép toán số thực 128 bit)Những đặc điểm trên giúp RISC-V trở thành một lựa chọn hấp dẫn cho nhiều ứngdụng khác nhau, từ thiết bị nhúng đến máy tính cỡ lớn, và cung cấp một cơ sở cho sự

đa dạng và sáng tạo trong ngành công nghiệp và nghiên cứu.

Trang 17

2.1.2 Tổng quát lõi RISC-V RV32IMF

2.1.2.1 RISC-V RV32I

R V321 là phiên ban cơ bản nhất của tập lệnh RISC-V, hỗ tro tập lệnh cơ bản gồmcác lệnh tính toán, logic số nguyên đơn giản và các lệnh Load, Store truy cập bộ nhớ

Với 32 thanh ghi cơ bản (x0 - x31) giữ các giá trị nguyên với độ rộng 32 bit và

1 thanh ghi PC giữ địa chỉ lệnh Các thanh ghi được sử dụng cho nhiều mục đích khác

nhau như lưu trữ giá trị tạm thời, con trỏ ngăn xếp, và giá trị trả về từ các hàm

Bảng 2.1 Mô ta chức năng thanh ghi cơ bản RV321

Tên thanh ghi Chỉ số thanh ghi Chức năng thanh ghi

$x0 x0 Chứa hăng số giá trị 0

$ra xl Dia chi tra vé

$sp x2 Con trỏ ngăn xếp

$gp 2 Con trỏ dữ liệu toàn cục

$tp x4 Con trỏ dữ liệu cục bộ luồng

$tO - $t6 x5 - x7, x28 - x31 | Thanh ghi lưu trữ tạm thời

$fp x8 Con trỏ khung

Các thanh ghi đã lưu (nêu con trỏ khung

$s0 - $s11 x8 - x6, x18 - x27

không được sử dung, x8 sẽ thành $s0)

$a0 - $a7 x10 - x17 Các đôi số được truyền cho các hàm

Câu trúc tập lệnh của RV32I bao gồm:

- Lệnh số học và logic: Bao gồm các phép toán như cộng, trừ, and, or, xor vàdịch chuyển bit

- Lénh ré nhánh: Bao gồm các lệnh nhảy và gọi hàm, như JAL (Jump and Link),JALR (Jump and Link Register), và các lệnh so sánh có điều kiện như BEQ (Branch

1f Equal), BNE (Branch 1f Not Equal),

- Lệnh truy cập bộ nhớ: Bao gồm các lệnh tải (load) và lưu (store) dit liệu đến

bộ nhớ, như LW (Load Word), SW (Store Word).

Trang 18

- Lệnh hệ thống: Bao gồm các lệnh dùng dé quan lý hệ thống như ECALL

(Environment Call) và EBREAK (Environment Break).

Dinh dang của lệnh của RV32I được chia thành 6 nhóm: R-type, I-type, S-type,B-type, U-type và J-type, trong khóa luận này lõi RV32I được xây dựng dé hỗ trợ các

lệnh logic, sỐ học, lệnh truy cập bộ nhớ và lệnh rẽ nhánh

2.1.2.2 Mở rộng chuẩnM (RV32M)

RV32M là phần mở rộng của tập lệnh cơ sở RV32I, cung cấp các lệnh đề thựchiện các phép toán số học phức tạp hơn như nhân, chia và số dư

e Thuật toán nhân số nguyên

Radix-4 booth multiplier [2] là giải thuật cải tiễn của radix-2 booth với ý tưởng

thêm 1 bit Lostbit bằng 0 vào sau LSB của số nhân Sau đó sẽ lựa chọn 3 bit (2 bit

LSB, Lostbit), theo bộ mã hóa của giải thuật sẽ chọn cach tính toán +0, +1A, 1A,

-2A hay + -2A Bộ nhân sẽ được dịch phải 2 bit và Lostbit bằng Multiplier[1] trongmỗi chu kỳ Dé giảm thanh ghi tích ta sẽ dùng 1 thanh ghi tích 64 bit dé nạp số nhân

vào 32 bit LSB và 32 bit MSB sẽ được dùng như giá trị nhân tạm thời Với 32 bịt sẽ

mat 17 chu kỳ cho có dau và 18 chu kỳ cho không dấu

Bảng 2.2 Bảng mã hóa Booth của giải thuật Radix-4 booth multipiler

X2X1X0 Hoat dong Miéu ta

Trang 19

e Thuật toán chia số nguyênGiải thuật chia Non-Restoring [3]: Là giải thuật chia 2 số nhị phân bằng cách sửdung bit dấu của thanh ghi được khởi tạo, dựa vào bit dấu thanh ghi được lựa chọndịch trái, cộng hoặc trừ cho số chia và kết quả sau của Q[0] sẽ là 1 hay 0 Bộ chia 32bit cần 33 tới 34 chu kỳ dé hoàn thành tùy vào có dấu hoặc không dau.

Hình 2.1 Sơ đồ giải thuật chia Non-Restoring

Trang 20

2.1.2.3 Mở rộng chuẩn F (RV32F)RV32F là một phần mở rộng của tập lệnh cơ bản R V321 trong kiến trúc RISC-V,b6 sung các lệnh đề thực hiện các phép toán số thực (floating point) RV32F hỗ trợcác phép toán trên số thực chính xác (single precision floating point) theo chuẩn IEEE

754 [4] Bao gồm các lệnh cộng, trù, nhân, chia, căn bậc hai, các lệnh dé chuyén đổigiữa số nguyên tới số thực và các lệnh so sánh

Số thực được biểu diễn dưới 32 bit bao gồm 1 bit dấu , 8 bit số mũ và 23 bit phần

thập phân.

RV32F sử dụng một tập hợp các thanh ghi số thực riêng biệt, ký hiệu từ f0 đến

f31, mỗi thanh ghi rộng 32-bit Được mô tả dưới Bảng 2.3.

Bảng 2.3 Mô tả chức năng thanh ghi RV32F

Tên thanh ghi Chỉ số thanh ghi Chức năng thanh ghi

$ftO - $ft11 f0 - £7, £28 - f31 Thanh phi lưu trữ tạm thời

$fs0 - $fs11 f8 - £9, £18 - £27 Thanh phi đã lưu

$fa0 - $fa7 f10 - f17 Các đối số truyền vào ham

e Load-word và Store-word số thực

Các lệnh load và store số thực dùng base + offset addressing mode như bên số

nguyên, FLW sẽ đọc giá trị từ bộ nhớ đệm tới thanh ghi số thực frd FSW sẽ lưu giátrị số thực từ thanh ghi frs2 tới bộ nhớ đệm

offset[11:5] sre base W offset [4:0] STORE-FP

Hình 2.2 Biéu diễn lệnh Load-word và Store-word số thực

Trang 21

- Điều chỉnh: Dé cộng hoặc trừ được 2 số thực cần phải điều chỉnh số mũ của

cả 2 sô vê băng nhau băng cách so sánh, sô mũ nào nhỏ hơn sẽ được điêu chỉnh vê

Trang 22

bằng với số mũ kia ( số mũ nhỏ hơn sẽ được tăng thêm và dịch phải tới khi bằng số

mũ lớn hơn).

- Logic dấu: Quyết định bit dấu của kết quả

- _ Đối chỗ, dịch va cộng hoặc trừ phần thập phân: Dựa trên kết quả điều chỉnh

và bit dấu của 2 số mà mô đun này sẽ thực hiện đổi chỗ, dịch và cộng/trừ phần thập

phân.

- Cộng chuẩn hóa: Sau khi có được kết quả cộng/trừ phần thập phân, sẽ phảichuẩn hóa lại kết quả này nếu cần thiết

- Chuẩn hóa: Chuan hóa lại phần thập phân và số mũ nếu cần thiết

- Bộ làm tròn động: Sử dụng guard bit, stick bit và round bit để làm tròn kết

quả tự động.

- Tổng hợp: Tổng hợp bit dấu, số mũ và phần thập phân cuối cùng lại thành 1

số thực 32 bit va cho done bang 1

e Nhân 2 số thực 32 bitTheo Hình 2.4 giải thuật nhân [5] cũng tương tự như giải thuật cộng, cần thêmtín hiệu dé đồng bộ với RISC-V và chia giải thuật ra từng giai đoạn, một số giai đoạn

khác so với thuật toán cộng:

- Kiểm tra trường hợp đặc biệt: Kiểm tra trường hợp đặc biệt và kiểm tra Xhoặc Y bằng 0 Nếu đúng trả về kết quả và done bằng 1, ngược lại đi đến giai đoạn

- Chuẩn hóa: Chuẩn hóa phan thập phân và số mũ nếu cần thiết (tăng và dịch

phải hoặc giảm và dịch trái).

Trang 23

e Chia 2 số thực 32 bit

Theo Hình 2.5 giải thuật chia cũng tương tự giải thuật nhân [5], một sỐ trạng thái

khác thuật toán nhân:

- Trừ số mũ: số mũ sẽ được trừ với nhau và cộng cho 127 (bias)

- Chia phần thập phân: phan thập phân sẽ được chia và kết quả sẽ gồm phan

dư và thương số

- Chia chuẩn hóa: phan dư và thương số sẽ được chuẩn hóa 1 lần nữa nếu cần

thiệt trước khi qua chuân hóa cuôi cùng.

10

Trang 24

- Bộ làm tròn động: Guard, stick and round bit phục vụ cho làm tròn sẽ được

quyết định dựa trên phần dư và thương số sau khi được chuẩn hóa

Kết quả phần thập phân cuối cùng sẽ là thương số được chuẩn hóa và làm tròn

Hình 2.5 Sơ đồ giải thuật chia 2 số thực 32 bit

e Căn bậc 2 cho 1 số thực 32 bit

- Với giải thuật chia Non-Restoring, ta sẽ tinh được thương số và phan dư cần

tim bằng cách trừ giữa phan dư (kết hợp với 1 đầu vào D (phan thập phân) và thương

số cũ Theo cách như vậy, sẽ tính được 1 bits thương số qua mỗi clock Chính sự tối

ưu về phần cứng cũng như sự đơn giản mà nó được ứng dụng vào tính căn bậc 2 của

1 số thực 32 bit

11

Trang 25

- Tuy nhiên dé tính được căn bậc 2 của 1 số thực 32 bit [5] theo format IEEE

754 thì Non-Restoring cần được thay đổi lại như sau:

- Tính bit dấu: bit dau của kết quả sẽ là bit dau của số đầu vào

- Tinh số mũ:

(e— 127) /2 + 127=e/2+63+e%2

- Để tính được số mũ, ta có thé chỉ cần 1 bộ cộng vì e%2 là bit LSB của e

- Tinh phan thập phân : Phần thập phân cuối cùng sẽ bằng thương số cuối cùng

với định dạng là 1.xxx x 24 bit.

- Để phần thập phân sốc có thé áp dụng cho Non-Restoring cần dịch 0 hoặc 1bit phần thập phân dựa vào LSB của số mũ Phần thập phân sẽ bằng 01.xx x hoặc

lx.XX X.

- Bộ trừ trong Non-Restoring sẽ ding bit thương số cũ dé điều khiển Đầu vào

A sẽ là phần dư với D, đầu vào B sẽ là {0, Q, !Qcũ, 1} mỗi giá trị trong này sẽ được

XOR với thương số cũ dé giảm độ sai số

- Kết quả sẽ là phan dư va MSB sau khi NOT sé là bit thương số

- Toàn bộ giải thuật này sẽ tiêu tốn 24 tới 25 chu kì Nhưng thay vì bộ trừ 24 bit

trong 24 chu ki ta có dựa trên đặc tính của Non-Restoring là mỗi clock tính ra 1 bit

thương số, mà có thê pipeline nó với 24 hoặc 25 tầng Mỗi tầng số bit bộ trừ sẽ tănglên 1 nên sẽ làm tối wu critical path và tan số nhất có thê

- Để tối wu latency, số tang pipeline sẽ được rút lại con 14 — 15 tang Vì trong 6tang đầu số bit của bộ trừ không ảnh hưởng đáng kê đến tan số nên hay vì tốn 6 chu

kỳ để tính 6 bit Q thì gộp lại thành 1 tầng tính 6 bit Q, tiếp đó tang 2 sẽ là 3 bit Q,

tầng 3 và 4 là 2 bit, và các tầng còn lại là 1 bit Q

Bảng 2.4 Mô tả số bit trừ và thương số được tính trong mỗi tầng PipelineBits kết quả | Q23-18 | QI7-15 | Q14-Q13] QI2-11 | QI0-0

Bit trừ 1 6 7 0 10 11 12 13 14 24

Chu kì 1 1 1 1 II

12

Trang 26

pee | Sait” J2ág3) [ora] #+-ipn-o

ao

22 - 1

¥

phan thap phan Result

Hình 2.6 Sơ đồ giải thuật căn bậc 2 số thực

13

Trang 27

2.2 So lược về bộ nhớ đệm

Bộ nhớ đệm (Cache) [6] là một bộ nhớ tạm thời sử dụng dé lưu trữ dữ liệu và tậplệnh mà một lõi thường xuyên sử dụng Thay vì truy xuất dữ liệu trực tiếp từ bộ nhớchính, CPU sẽ yêu cầu sử dung dữ liệu được lưu trữ tạm thời giúp cải thiện tốc độ xử

lý của vi xử lý.

Có 2 loại bộ nhớ đệm chính:

- Bộ nhớ đệm dữ liệu (Data Cache): Lưu trữ các dữ liệu được sử dụng thường

xuyên bởi CPU Khi CPU cần truy xuất dữ liệu, nó sẽ gửi yêu cầu đến bộ controller

của bộ nhớ đệm, bộ nhớ đệm kiểm tra dữ liệu đó trong cache là có sẵn hay không.Nếu có, CPU có thé lay dữ liệu từ cache mà không cần truy xuất bộ nhớ chính

- Bộ nhớ đệm lệnh (Instruction Cache): Lưu trữ các mã lệnh mà CPU thực

hiện Giống như bộ nhớ đệm dữ liệu, bộ nhớ đệm lệnh cũng giảm thời gian truy cậpbằng cách cung cấp nhanh chóng các mã lệnh cho CPU khi đã có sẵn trong bộ nhớ

đệm.

Các phương pháp tô chức đữ liệu của bộ nhớ đệm:

- Anh xạ trực tiếp (Direct-Mapped Cache): truy cập dữ liệu nhanh, ít tốn tài

nguyên.

- Anh xạ liên kết toàn phan (Fully associative): việc truy cập sẽ diễn ra một

lúc toàn bộ các Block nên sẽ tốn tài nguyên, thời gian truy cập lâu

- Anh xạ kết hợp (Set associative): là sự kết hợp của hai cách tổ chức trên, cóthời gian truy cập tương đối tốt và có thé quan lý tốt được dit liệu khi bộ nhớ đệmđầy Nên đây là phương pháp phù hợp được lựa chọn cho đồ án này

Các giải thuật thay thế khi bộ nhớ đệm day:

- Random replacement: Thay thé ngẫu nhiên bat kỳ dữ liệu nào khi day cache,không dựa vào lịch sử truy cập nên không yêu cầu lưu trữ lại lịch sử trước đó

- FIFO (First In First Out): Những dữ liệu nào được đưa vào trước thì khi đầycache sẽ được thay thế trước

- LIFO (Last In First Out): Những dữ liệu được đưa vào trước tiên thì khi daycache sẽ được thay thế sau cùng

14

Trang 28

- LRU (Least Recently Used): Thuật toán sé thay thé những dữ liệu ít được sudụng nhất khi xuất hiện đầy cache dé thay thế bằng dữ liệu mới Mỗi lần một dữ liệuđược sử dụng, thuật toán sẽ ghi lại thời gian sử dụng cho đến khi cache day dé tiếnhành so sánh thời gian sử dụng cuối cùng của các đữ liệu.

- MRU (Most Recently Used): Thuật toán sẽ thay thé những dữ liệu được sửdụng nhiều nhất khi xuất hiện đầy cache đề thay thé bằng dữ liệu cache mới Mỗi lầnmột dữ liệu được sử dụng, thuật toán sẽ ghi lại thời gian sử dụng cho đến khi cache

đầy đề tiến hành so sánh thời gian được sử dụng cuối cùng của các dữ liệu

- LFU (Least-Frequently Used): Tương tự như LRU, thay vi tính thời gian sử

dụng cuối cùng thì thuật toán này sẽ đếm số lần sử dụng của dữ liệu dé đưa ra quyếtđịnh thay thế dữ liệu nào ít được sử dụng nhất

2.3 So lược về giao thức TileLink

2.3.1 Tổng quát

TileLink [7] là một giao thức liên kết (interconnect protocol) được thiết kế dé kếtnối các thành phần trong hệ thống tích hợp (SoC - System-on-Chip) và các hệ thốngtích hợp nhiều lõi (Many-Core Systems) Giao thức này được phát triển bởi tổ chứcRISC-V International, là một phần của dự án RISC-V, một kiến trúc lõi máy tính mởđược phát triển dựa trên các lệnh mở

2.3.2 Hoạt động cơ bản

Theo Hình 2.7, hai mô đun được kết nói bang liên kết, với một mô đun chứa một

Agent với Master interface và mô đun khác chứa một Agent với Slave interface.

Agent có Master interface gửi một yêu cầu đến Agent có Slave interface Agent cóSlave interface giao tiếp với backing memory nếu cần thiết Sau khi đã nhận được dit

liệu hoặc quyên được yêu câu, Slave phản hôi lại đôi tượng yêu câu ban đâu.

15

Trang 29

Request message

Hình 2.7 Mô tả hoạt động cơ ban cua TileLink

Hoạt động của TileLink có thê được phân loại thành ba nhóm:

- Accesses (A) đọc hoặc ghi dữ liệu tại một địa chỉ xác định.

- Hints (H) chỉ mang tính chất cung cấp thông tin và không có tác dụng trực

tiếp

- Transfers (T) di chuyển quyền hoặc bản sao dữ liệu được lưu trong cache

2.3.3 Các kênh của TileLink

Trong mỗi liên kết, giao thức TileLink xác định 5 kênh độc lập nhằm gửi thôngđiệp bởi các A gent Đề tránh tắc nghẽn, TileLink chỉ định mức ưu tiên trong các thông

điệp của các kênh phải được thực hiện nghiêm ngặt.

Hai kênh cơ bản cần thiết để thực hiện các hoạt động truy cập bộ nhớ là:

- Kênh A: Truyền một yêu cầu thực hiện một hoạt động trên một dải địa chỉ cụ

thể, truy cập hoặc lưu trữ bản sao dữ liệu

- Kênh D: Truyền một phản hồi hoặc tin nhắn xác nhận đữ liệu đến Agent yêu

câu ban đâu.

16

Trang 30

Cấp độ cao nhất (TL-C) bổ sung ba kênh cung cấp kha năng quản lý quyền truycập vào các khối dữ liệu được lưu trữ tạm thời:

- Kênh B: Truyền một yêu cầu thực hiện hoạt động tại một địa chỉ được lưu trữ

bộ nhớ tạm thời bởi một Master Agent, truy cập hoặc ghi lại dữ liệu được lưu trữ tam

thời đó.

- Kênh C: Truyền thông điệp dữ liệu hoặc xác nhận phản hồi cho một yêu cầu

kênh B.

- Kênh E: Truyền một phản hồi cuối cùng của một khối bộ nhớ tạm thời được

chuyền từ đối tượng yêu cầu ban đầu, được sử dụng cho quá trình tuần tự hóa

Mạng TileLink có thé hỗ trợ kết hợp các Agent giao tiếp, mỗi Agent hỗ trợ các

tập hợp con khác nhau của giao thức.

TileLink bao gồm ba cấp độ:

- TileLink Uncached Lightweight (TL-UL), chỉ hỗ trợ các thao tác đơn giản

cho việc đọc và ghi bộ nhớ (Get/Put) đơn giản.

17

Trang 31

- TileLink Uncached Heavyweight (TL-UH), bố sung các Hint khác nhau, các

hoạt động atomic và truy cập burst không hỗ trợ bộ nhớ đệm.

- TileLink Cached (TL-C) là giao thức day đủ, hỗ trợ việc sử dụng bộ nhớ đệm

Bảng 2.5 Phân loại các thao tác theo cấp độ TileLink hỗ trợ

2.3.4.1 Tilelink Uncached Lightweight (TL-UL)

TileLink Uncached Lightweight (TL-UL) là mức tiêu chuẩn TileLink tối thiêu

Nó nhằm mục đích được sử dụng dé tiết kiệm diện tích trong các thiết bị ngoại VIhiệu suất thấp Có hai loại hoạt động có sẵn tới các Agent trong TL-UL Cả hai đều

là hoạt động truy cập bộ nhớ:

- Get: đọc dữ liệu từ backing memory.

- Put: phi dữ liệu vào backing memory.

Trong TL-UL, mọi thông điệp đều nằm trong một beat, không có burst

Bảng 2.6 Mô tả chỉ tiết thông điệp trong giao thức TL-ULThông điệp | Opcode Hoạt động A | D Phản hồi

Get 4 Get X AccessAckData

AccessAckData 1 Get hoặc Atomic x

PutFullData 0 Put X AccessAck

PutPartialData 1 Put X AccessAck

AccessAck 0 Put X

Theo Bảng 2.6, có ba loại thông điệp yêu cầu và hai loại thông điệp phản hồi

liên quan đến hoạt động truy cập bộ nhớ trong TL-UL:

18

Trang 32

- Get : là một yêu cầu được thực hiện bởi một Agent muốn truy cập vao mộtkhối dữ liệu cu thé dé thực hiện đọc dữ liệu.

- PutFullData: là một yêu cầu được thực hiện bởi một Agent muốn truy cập

vào một khối dit liệu cụ thé dé thực hiện ghi

- PutPartialData: là một yêu cầu được thực hiện bởi một Agent muốn truy cập

vào một khối dữ liệu cụ thể dé thực hiện đọc dữ liệu PutPartialData có thể được sửdụng để ghi đữ liệu có kích thước bắt kỳ với độ chính xác từng byte

- AccessAckData: đóng vai trò là một thông báo xác nhận và có bao gồm dit

liệu cho yêu cầu ban đầu của Agent

- AccessAck: đóng vai trò là một thông báo xác nhận và không có dữ liệu di

kèm tới yêu cầu ban đầu của Agent

2.3.4.2 TileLink Uncached Heavyweight (TL-UH)

TileLink Uncached Heavyweight (TL-UH) được thiết kế dé sử dung bên ngoài

bộ nhớ đệm, nơi không yêu cầu thao tác chuyền quyền Nó được xây dựng trên

TL-UL băng cách cung cấp các hoạt động bồ sung:

- Atomic: đọc và trả về giá trị dữ liệu hiện có đồng thời ghi một giá trị mới làkết quả của một số phép toán logic hoặc số học

- Hint: cung cấp một gợi ý tùy chọn liên quan đến tối ưu hóa hiệu suất

- Burst: Cho phép các thông điệp có dit liệu lớn hơn chiều rộng của dây bus

truyền dữ liệu nên được truyền dưới dạng các chuỗi xuất hiện trong nhiều chu kỳ Áp

dụng cho các thông điệp chứa dữ liệu khác nhau trong các hoạt động Get, Put va

Atomic.

Bang 2.7 Mô ta chi tiết các thông điệp được bồ sung trong giao thức TL-UHThông điệp Opcode Hoạt động A D Phan hồi

ArithmeticData 2 Atomic x AccessAckData

LogicalData 3 Atomic X AccessAckData

Intent 5 Intent x HintAck

HintAck 2 Intent x

19

Trang 33

Theo Bảng 2.7 thì có thêm ba thông điệp yêu cầu và một thông điệp phản hồiđược bồ sung vào TL-UH so với TL-UL:

- ArithmeticData: là một yêu cầu được thực hiện bởi một Agent muốn truy cập

vào một khối dữ liệu cụ thé dé đọc - sửa - ghi thông qua việc áp dụng một hoạt động

số học (MIN, MAX, MINU, MAXU, ADD)

- LogicalData: là một yêu cầu được thực hiện bởi một Agent muốn truy cậpvào một khối dữ liệu cu thé dé đọc - sửa - ghi thông qua việc áp dụng hoạt động logic

theo bit XOR, OR, AND, SWAP).

- Intent: là một yêu cầu được thực hiện bởi một Agent muốn báo hiệu ý địnhtruy cập vào một khối dit liệu cụ thé trong tương lai (PrefetchRead, PrefetchWrite)

2.3.4.3 TileLink Cached (TL-C)

TL-C cung cấp cho các Master Agent khả năng lưu trữ bộ nhớ đệm của các khối

dtr liệu được chia sẻ.

TL-C bồ sung thêm ba hoạt động mới được gọi là transfer vì chúng chuyên một

bản sao của khối dữ liệu đến một vị trí mới trong hệ thống phân cấp bộ nhớ:

- Acquire: Tạo một ban sao mới của một khối (hoặc các quyền cụ thê đối với

khối đó) theo yêu cầu của Master

- Release: Từ bỏ một ban sao của khối (hoặc các quyền cụ thể trên đó) trở lạiSlave theo yêu cầu của Master

- Probe: Buộc loại bỏ một bản sao của khối (hoặc các quyền cụ thê trên khốiđó) từ Master theo yêu cầu của Slave

Bảng 2.8 Mô tả chỉ tiết các thông điệp trong giao thức TL-C

Thông điệp | Opcode | Hoạt động |A|BIC|DIE Phản hồi

Acquire 6 Acquire X Grant, GrantData

Grant 4 Acquire X GrantAck

GrantData 5 Acquire X GrantAck

GrantAck Acquire x

20

Trang 34

Probe Probe ProbeAck,

: * ProbeAckData

ProbeAck 4 Probe x

ProAckData 5 Probe X

Release 6 Release X ReleaseAck

ReleaseData 7 Release X ReleaseAck

ReleaseAck 6 Release X

- Acquire: là loại thông điệp yêu cầu được sử dung bởi Master Agent có cache

để lấy bản sao của khối dữ liệu mà nó dự định lưu vào cache riêng Master Agentcũng có thé sử dụng loại thông điệp này dé nâng cấp các quyền mà nó có trên một

khối đã thuộc quyền sở hữu của nó (như có được quyền ghi trên một bản sao chỉ cóquyền đọc) Giống như thông điệp Get, bản thân thông điệp Acquire không chứa dữ

liệu.

- Grant: vừa là thông điệp phản hồi vừa là thông điệp yêu cầu được sử dụngbởi Slave Agent dé xác nhận việc nhận được yêu cầu và cung cấp quyền truy cập vàokhối cache cho Master Agent theo yêu cầu ban dau

- GrantData: vừa là thông điệp phản hồi vừa là thông điệp yêu cầu được sửdụng bởi Slave Agent dé cung cấp xác nhận cùng với bản sao của khối dữ liệu choMaster Agent theo yêu cầu ban đầu

- GrantAck: là thông điệp phản hồi được Master Agent sử dụng dé cung cấpxác nhận cuối cùng về việc hoàn thành giao tiếp và đến lượt nó được sử dụng đề đảm

bảo tuần tự hóa toàn cục các hoạt động của Slave Agent

- Probe: là thông điệp yêu cầu được sử dụng bởi Slave Agent dé truy van hoặcsửa đôi các quyền của bản sao được lưu trong cache của khối dữ liệu được lưu trữ bởi

Master Agent cụ thé Slave Agent có thé thu hồi quyền của Master Agent trên cache

dé đáp ứng các yêu cau từ Master khác hoặc theo ý muốn của chính nó

- ProbeAck: là thông điệp phan hồi được Master Agent sử dụng dé xác nhận

việc nhận Probe.

21

Trang 35

- ProbeAckData: là thông điệp phản hồi được Master Agent sử dụng dé xácnhận việc nhận Probe và ghi lại dữ liệu mà Slave Agent yêu cầu.

- Release: là thông điệp yêu cầu được sử dụng bởi Master Agent dé tự giảm

quyền của nó trên khối dit liệu được lưu trong cache

- ReleaseData: là thông điệp yêu cầu được sử dụng bởi Master Agent dé tự

giảm quyền của nó trên khối đữ liệu được lưu trong cache và ghi lại đữ liệu mà Slave

Agent yêu cầu.

- ReleaseAck : là thông điệp phản hồi được sử dụng bởi Slave Agent dé xácnhận việc nhận một Release[Data] và đến lượt nó được sử dụng dé đảm bảo tuần tự

hóa toàn cục các hoạt động của Slave Agent.

2.4 Sơ lược về Crossbar

Crossbar là một cau trúc phan cứng được sử dụng rộng rãi trong các hệ thốngmạch tích hợp (SoC) dé cung cấp khả năng kết nói linh hoạt và hiệu quả giữa cácthành phần khác nhau như bộ xử lý, bộ nhớ và các thiết bị ngoại vi Crossbar switch

có thé thiết lập nhiều kết nối đồng thời giữa các đầu vào va đầu ra, cho phép truyềntai dir liệu nhanh chóng và giảm thiéu độ trễ

Trong thiết kế crossbar, sự thách thức về tài nguyên, tốc độ và băng thông lànhững thứ quan trọng nhất cần phải được tối ưu Vì vậy việc lựa chọn giải thuật phân

xử và định thời cho tùy loại hệ thống là cần thiết

Dé giải quyết các van đề về deadlock, phân xử độ ưu tiên và phù hợp với hệ thống

NoC thì giải thuật định thời Round - Robin và giải thuật phân xử độ ưu tiên sẽ đáp

ứng được những yêu cầu đã đặt ra

Hiện nay, các giải thuật phân xử độ ưu tiên có 1 số giải thuật nổi bật như Ripple

carry arbiter (RCA), Rectilinear Propagation arbiter (RPA), Diagonal Propagation

arbiter (DPA) Trong đó giải thuật DPA là giải thuật tối ưu nhất cả về hiệu năng

và khả năng phân xử.

2.5 So lược về Network on Chip

Network-on-Chip (NoC) là một kiến trúc mang được sử dung dé cung cấp kết nốigiữa các thành phần khác nhau trong một mạch tích hợp NoC giống như một mạng

22

Trang 36

máy tính nhỏ trong chip, với các nút được kết nối để truyền tải dữ liệu và tín hiệuđiều khiển giữa các lõi xử lý, bộ nhớ, các IP core và các thiết bị ngoại vi khác.

Đặc điểm chính của NoC:

- Cấu trúc mạng: NoC thường có cau trúc mạng lưới hoặc hình sao, trong đó

các nút (node) được kết nối với nhau qua các kênh liên kết (link)

- Định tuyến (Routing): NoC sử dụng các thuật toán định tuyến dé xác địnhđường đi tối ưu cho dé liệu từ nút nguồn đến nút đích thông qua mang lưới

- Giao thức truyền thông: Các giao thức truyền thông trong NoC như TileLink,AXI, AMBA, được sử dụng dé quan lý truyền thông giữa các nút, đảm bảo độ tincậy và hiệu suất cao

- Băng thông và hiệu suất: NoC cung cấp băng thông lớn và giảm độ trễ so vớicác phương pháp kết nối truyền thống như bus hoặc point-to-point connections

- Khả năng mở rộng: Thiết kế linh hoạt của NoC cho phép dé dang mở rộngbang cách thêm nút mới mà không ảnh hưởng đến hiệu suất tông thé của hệ thống

Ứng dụng của NoC:

- - Hệ thống nhúng (Embedded systems): Được sử dụng rộng rãi trong các thiết

bị nhúng nơi cần kết nối giữa các thành phan xử lý, bộ nhớ và các giao diện ngoại vi

- Hé thống da lõi (Multi-core systems): NoC hỗ trợ việc kết nối các hệ thống

đa lõi và quản lý truyền thông giữa chúng, cải thiện hiệu suất và tính mở rộng của hệthống

- Hệ thống trên chip (System-on-Chip - SoC): Tạo ra sự tích hợp cao độ cácthành phần khác nhau trên cùng một vi mạch, bao gồm CPU, GPU, DSP và các thành

phần vi xử lý khác.

23

Trang 37

Chương 3 HIEN THỰC THIẾT KE

3.1 Thiết kế lõi vi xử lý RISC-V RV32IMF

Trang 38

- Tầng Execute: thực thi tính toán các phép toán logic, số học và địa chỉ lệnh

rẽ nhánh theo đúng lệnh được nạp.

- Tầng Memory: Yêu cầu ghi hoặc đọc dữ liệu từ bộ nhớ dữ liệu

- Tầng WriteBack: ghi lại dữ liệu vào thanh ghi đích (rd) khi cần thiết

Việc xây dựng theo kiến trúc pipeline 5 tầng mang lại ưu điểm và khuyết điểm

như sau:

- - Ưu điểm: Sử dụng kĩ thuật pipeline sẽ làm giảm tổng thời gian thực thi của cả

chương trình hay tập hợp các lệnh.

- Nhược điểm: Kĩ thuật pIpeline có thể tạo ra các xung đột (trạng thái mà lệnh

kế tiếp không thể thực thi liên tục trong chu kỳ pipeline) Có 2 loại xung đột thường

gap:

+ Xung đột dữ liệu (Data hazard): xảy ra khi dữ liệu cho lệnh hiện tai chưa

có do chưa tính toán xong hoặc đã tính toán xong nhưng chưa được nạp vào thanh ghi đích.

+ Xung đột điều khiến (Control/Branch hazard): xảy ra khi một lệnh dựkiến không thể thực thi trong đúng chu kỳ pipeline của nó do lệnh nạp vào khôngphải là lệnh cần Trường hợp này xảy ra khi luồng thực thi chứa các lệnh nhảy và rẽ

nhánh.

Dé có thể xây dựng kiến trúc pipeline 5 tang cần có 4 thanh ghi Pipeline Register

Các thanh ghi này hoạt động như một bộ nhớ đệm có chức năng giữ dữ liệu hoặc xóa

dữ liệu và xử lý xung đột các mã lệnh trong các giai đoạn khác nhau của pipeline.

Xây dựng thêm các khối chức năng dé giải quyết các xung đột khi pipeline baogồm:

- Khối BRU [9]: giải quyết xung đột về mặt điều khiến sử dụng giải thuậtBranch Prediction để dự đoán điều kiện rẽ nhanh Nếu dự đoán đúng các lệnh sẽ thực

thi bình thường mà không tốn chu kì nào, ngược lại nếu sai sẽ tốn 2 chu kì và yêu cầu

về phan cứng sẽ phức tạp hơn Dé có độ chính xác cao đồ án này sử dụng DynamicBranch Prediction dé có thể linh hoạt trong việc dự đoán kết quả Kết hop BranchTarget Buffer (BTB) với Pattern History Table (PHT) và thanh ghi Gshare để lưu trữ

25

Trang 39

địa chỉ rẽ nhánh cùng với lịch sử quyết định rẽ nhánh và có thé truy cập nó bằng PCcho lần tiếp theo dé dựa vào đó có thé dự đoán được PC kế tiếp là rẽ nhánh hay PC +

4 Tại giai đoạn Excute nếu 1 lệnh branch xảy ra thì BTB, PHT và Gshare sẽ đượcupdate Nếu dự đoán sai xảy ra sẽ phải xóa lệnh đã được nạp ở giai đoạn IF, ID đểnạp lại đúng lệnh cần thiết

+ BTB [9]: Lưu trữ địa chỉ rẽ nhánh theo từng chỉ mục (tag) của PC Dựatrên số bit của PC tùy người sử dụng quyết định mà BTB sẽ có số bit, số dòng và chỉ

mục khác nhau.

26

Trang 40

Taken

Í Strongly

mm Not Taken aken

| Weakly Not Strongly Not

Hình 3.3 Sơ đồ kiến trúc tổng quan của PHT

+ PHT [9]: Lưu quyết định rẽ nhánh theo từng địa chỉ của PC Các quyếtđịnh rẽ nhánh sẽ được cập nhập theo một bộ đếm trạng thái gồm 2 bit Ý tưởng của 2bit dự đoán này là khi dự đoán sai 2 lần sẽ cập nhập lại quyết định rẽ nhánh Taken

hay Not Taken Việc này sẽ tăng độ chính xác hơn là dự đoán 1 bit cho always Taken, always_not_taken hoặc Taken_NotTaken

27

Ngày đăng: 24/12/2024, 00:00

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

TÀI LIỆU LIÊN QUAN