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: Thiết kế và hiện thực bộ vi xử lý Risc-V 32 bit sử dụng kiến trúc Superscalar hỗ trợ bộ điều khiển Cache Associative 4-Way và đơn vị quản lý bộ nhớ 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 đề Thiết kế và hiện thực bộ vi xử lý Risc-V 32 bit sử dụng kiến trúc Superscalar hỗ trợ bộ điều khiển Cache Associative 4-Way và đơn vị quản lý bộ nhớ trên FPGA
Tác giả Trần Quốc Trưởng, Lê Phước Nhật Nam
Người hướng dẫn Th.S Phạm Thanh Hựng
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố Hồ Chí Minh
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 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 98
Dung lượng 44,08 MB

Nội dung

TOM TAT KHÓA LUẬNNội dung chính của khóa luận xoay quanh công việc nghiên cứu và thiết kế bộ vi xử lý RISC-V theo kiến trúc superscalar song luông, sau đó là tích hợp bộ nhớ đệm Cache As

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN QUOC TRUONG

LE PHUOC NHAT NAM

KHOA LUAN TOT NGHIEP

THIET KE VA HIEN THUC BO VI XU LY RISC-V 32

BIT SỬ DUNG KIEN TRÚC SUPERSCALAR HO TRỢ

BO DIEU KHIEN CACHE ASSOCIATIVE 4-WAY VA

DON VI QUAN LY BO NHO TREN FPGA.

DESIGN AND IMPLEMENT A 32 BIT, SUPERSCALAR RISC-V

PROCESSOR WITH THE 4-WAY ASSOCIATIVE CACHE

CONTROLLER AND MEMORY MANAGEMENT UNIT ON

FPGA

KỸ SU NGÀNH KY THUAT MAY TÍNH

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

TRAN QUOC TRUONG - 18521574

LE PHUOC NHAT NAM -18521122

KHOA LUAN TOT NGHIEP

THIET KE VA HIEN THUC BO VI XU LY RISC-V 32 BIT SU DUNG KIEN TRUC SUPERSCALAR HO TRO

BO DIEU KHIEN CACHE ASSOCIATIVE 4-WAY VA

DON VI QUAN LY BO NHO TREN FPGA.

DESIGN AND IMPLEMENT A 32 BIT, SUPERSCALAR RISC-V

PROCESSOR WITH THE 4-WAY ASSOCIATIVE CACHE

CONTROLLER AND MEMORY MANAGEMENT UNIT ON

FPGA

GIANG VIEN HUONG DAN

Th.S Pham Thanh Hùng

TP HO CHÍ MINH, 2022

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 526/QD-DHCNTT

ngày 19 tháng Ø7 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LOI CAM ON

Lời đầu tiên, nhóm xin gửi lời cảm ơn chân thành đến thầy hướng dan - Thạc si Phạm Thanh Hùng, thầy đã tận tình trong quá trình làm khóa luận, cung cấp các trang thiết bị, cũng như dành nhiều thời gian chỉnh sửa, góp ý giúp nhóm có thể hoàn thành

khóa luận một cách tốt đẹp.

Bên cạnh đó, nhóm cũng xin gửi lời cảm ơn đến Thay/Cé và bạn bè khoa Kỹ thuật

máy tính nói riêng và trường Dai học Công nghệ Thông tin — Đại học quốc gia Thành

phố Hồ Chí Minh nói chung đã tận tình giảng dạy, truyền đạt các kiến thức vô cùng bổ ích, cùng đồng hành và hỗ trợ trong suốt quá trình học tập tại trường Đại học Công nghệ

Thông tin Những kiến thức và kinh nghiệm quý báu đó là tài sản vô giá đối với quãng

đường tương lai của nhóm.

Cuối cùng, xin dành lời cảm ơn sâu sắc đến ba mẹ và gia đình vì đã luôn sát cánh,

động viên, tạo điều kiện và là chỗ dựa tinh thần vững chắc trên con đường học tập của

Một lần nữa nhóm xin chân thành cảm ơn.

TP Hồ Chí Minh, ngày 25 tháng 07 năm 2022

Sinh viên thực hiện

Trần Quốc Trưởng

Lê Phước Nhật Nam

ii

Trang 5

2.1.3 Các tập lệnh và tập thanh ghi được sử dụng trong hệ thống 4 8

2.2 Bộ nhớ đệm - Cache -:- 2c tt 12t 98213511 1 11351151111 1511 51511111 rkre 11

2.2.1 Giải thuật FIFO để cấp phát bộ nhớ ¿¿©c++225s+czczsscez 12

2.2.2 Phương pháp cập nhật lại bộ nhớ chính -. - + +5 5++s<>+<+ 12

2.2.3 Ưu điểm và lý do chọn Cache associative 4 - way ccccccec 13

2.3 Đơn vị quản lý bộ nhớ - MM - 6c S3 key 16

2.3.1 Cách thức hoạt động ¿- 5 5252222 2E2kkrrrrrrerrrrrree 16

2.3.2 Chức năng -.Lc nh 0.1 rệt 18

Chương 3 — Thiết kế vi xử lý RISC-V 22¿¿22222++t2EESErrrtEEkvrrrrrrrrrrrrrrrvee 20 3.1 Mô tả tổng quan hệ thống -2¿-©2++¿+22E+++t2EEEEE+ttEEEEvrttrrkrrrerrkrrrrrr 20 3.2 Thiết kế vi xử lý RISC-V -2-:¿-22222 222 22222111112 0 1 22

3.2.1 Khối CPU_MeM_SCal aL 11t EEk kg 22

3.2.2 Khốipc_scalar 52 +cc2EEEErEEEEEECEEEErrrrrrrrrrvee 23 3.2.3 Khối issuing ccc2 22v 2E 2E cv 25 3.2.4 Khối fowarding logic -22cccccccrrrrrrrrrerrrrecrrrrrrvee 26

3.2.5 Khối ALU ccerrrihtrrrririrrrrrrririrrrrrree 28

Trang 6

3.2.6 Khốils logic

3.2.7 Khối branch :2222++222EEEEEEEEEEtEEEEErrrrtrkrkrrrrrrvee 3 3.3 Thiết kế MMU

3.3.1 _ Tổng quan MMU -2¿-2222++ttEEEEketrtrrrtrerrrkrrrerrrrecrrrrve 3.3.2 Khoi MMU

3.4 Thiết kế Cache -22++2222v2222221121222111222211112.221111 212111 34 3.4.1 _ Tổng quan Cache cc:5ccccceccvsereerrteerrrrrrrecsrrrecre.r 24 3.4.2 Khối Cache cccc2 2222222221 2222111221111 crrve 36 Chương 4 Mô phỏng và đánh giá thiết kế -2¿¿©2222++222Evvrtecvvvrrrrrrrrvee 38 4.1 Thiết kế mô hình kiỂm thử -¿¿ 222+++222E2VV222++++t2EEEEEEErrrtrrrrrrrrrrrrrrrrrr 38 4.1.1 Khốiriscv ìà 2222 39

4.12 Khốiimem ccccccc2ECCCEEverrrrtrrrkrtrrrrrrrrrrrrrrerrree 40 4.13 Khối dmem cccccccccCcEErreerrrrrrrrrrreerree 41

4.2 Mô phỏng tập lệnh - - ¿5+ 6 St kề HH 121200 001g 42

4.2.1 Thiết kế mô hình kịch bản kiểm thit ccccccsccccssssseessssssecessssecessseeseessneee 42 4.22 Nạp tập lệnh vào 3100810 01177 44 4.2.3 Kết quả mô phỏng -2222222++222EEEEEEEittEEEEEkrrrrrrrrrrrrrrrree 44

4.3 Kết quả tổng hợp, thực thi và đánh giá thiết kế -c+ccvcccceccrrrree 70 4.3.1 _ Kết quả tổng hợp, thực thi của khối riscV ¿-52+cc+ccvsecesrz 70 4.3.2 Đánh giá thiết kế ccccc222C2EEErrrirtEEEEEkrrrrrrrrrrrrrrrrree 72

Trang 7

5.4 Các IP của Xilinx dùng trong thiết kế Block Design

5.4.1 IPMicrobalze giao tiếp với local memory -ccc:+2cccveez 78

5.4.2 IP AXI Uart Lite.

5.5 Kết quả tổng hợp thực thi của Block Design sssscsssssssesssssseeesssseesssssseesesssseeeee 79 Chương 6 Kết luận và hướng phát triển

GL, KGt Wan nh 82 6.2 Ưu điểm và hạn chế của thiết K6 ccccccssssscssssssescsssseescsssssecssssusessssuseeesssieecessseseee 82 6.3 Hướng phat triỀn -22++2222+2+t2222112222211122221111221211 22111 tk ri 83

IV )00i0697),804./ 0 .Ắ ốẮ 84

Trang 8

DANH MỤC BẢNG

Bảng 2.1: Bang các tập lệnh cơ sở và mở rộng của RISC-V ¿5cccccsrvrvexee 5

Bảng 2.2: Tập lệnh của vi xử lý RISC-V -cSn thu § Bảng 2.3: Tập thanh ghi của vi xử lý RISC-V 6 Set tren 10 Bang 2.4: Mô tả các thành phần một khối của Cache - - ¿z2 11

Bang 2.5: Kết qua năng lượng tiêu thụ trung bình và thời gian tiêu thụ trung bình”? 15

Bảng 2.6: Tập thanh ghi đặc biệt của vi xử lý RISC-V - 5c ccccststsrerrrree 16 Bảng 2.7: Tập lệnh đặc biệt của vi xử lý RISC-V - cà Street 16

Bảng 3.1: Tín hiệu của khối CPU_MeM_SCal aL 5-5 SE *‡Ekveekeekrrrrerrre 22

Bảng 3.2: Tín hiệu của khối pc_scalar 2¿©222+++22222++tSEEEEE2SEEEErrrtrrkrrrrrrkrvee 24 Bảng 3.3: Tín hiệu của khối issuing -.-¿ 2222222222 22222322233 teEEEEvrrrrrrrrrrrrrrrvee 26 Bang 3.4: Mô tả tín hiệu khối forwarding logic -.- :: 22cvccccescccvvvvvccrerrrrrr 27 Bang 3.5: Tín hiệu của khối aÌu -:¿¿-522222222++z222EEEEEYvrttEEEEkkrrrirtrrrtrrkrrrrrerrri 29 Bảng 3.6: Các phép tính của khối alu 29

Bang 3.7 Mô tả tín hiệu khối Is_logic

Bảng 3.8: Mô tả tín hiệu của khối Branch

Bang 3.9: Tín hiệu của khối MMU 33 Bang 3.10: Tín hiệu của khối cache _2port sscccscsssessssssssesscssssecsessseesssssuseesssssecesssueseessseeees 36

8 N0 0.0 an ẽ.ẽ.ẽ (-gÄậäẴHẬH)H, 39 Bang 4.2: Tín hiệu khối imem 22:+£©2V©VVv2+++2222EEEEY22222221111121.212111112 ecrrrrg 40 Bảng 4.3: Tín hiệu khối dmem 22: 2+©EE+++2EEE+++tEEEEEvttEEEEEvetrrkrrrrrrrrrrrrrg 41

Bang 4.4: So sánh kết qua đạt được với hai công trình khóa luận trước đây 72

vi

Trang 9

DANH MỤC HÌNH

Hình 2.1: Định dạng lệnh của RISC-VIÍ, - ¿-5++2x+Ex2Y23122157121211211211211 212121 re 7

Hình 2.2: Các thành phan trong một khối của Cache -c++222vvvveccczrrrr 11

Hình 2.3: Tim 6 nhớ của các phương pháp: Trực tiếp, Tồn phan, Kết hop 14

Hình 3.1: Các giai đoạn thực thi của vi xử lý sau khi tích hợp Cache và MMU 20 Hình 3.2: Khối CpU_ H€T_SCãÏäT 5525 S252 SE S£E#ESEEEEEEEEEEEEEErkEErrerrkrkrkrrrrre 22

Hình 3.3: Khối pc salar -22-©22222922E2++92E2211122221112221111222211112221112221111 2221 xe 23 Hình 3.4: Khối issuing -2+-22222222222++t2E22111222211122711111721111227111222111 1 xe 25

Hình 3.5: Khối forwarding logic csccccsssssesssssssesssssssessssssecsessseesessssscsesssiseesssseeessssseseeessees 26 Hình 3.6: Khối aÏu -22222222vvEvvrvvvtrrrrrrrrrrt 11 T re 28

Hình 3.7: Khối Is_logic -222222222+22222EEE 2222111 rrrrrii 30 Hình 3.8: Khối branch ¿522222++22ES+++2EEEE++22221111222331122211112212112222112 22 ve 31

Hình 3.9: Sơ đồ khối đơn vi quản lý bộ nhớ -222222vvvvvvvvvvvrrerrerrrrrrrrrrrree 32

Hình 3.10: Khối MMU -.¿2:¿¿2222222222222222111 2222221111112 reo 33 Hình 3.11: Sơ đồ khối bộ nhớ đệm

Hình 4.5: Mơ hình các kịch bản kiêm thử - - + 5+ **k‡*‡E‡EkEkEkekekrrrkrkerrrrrkrkrke 42

Hình 4.6: Quá trình nạp tập lệnh vào khối imem -2- 2s +‡EEtEEEEEEEEEEEEEkkerkrerkree 44

Hình 4.7: Đoạn câu lệnh trong “Test 1”

Hình 4.8: Chương trình “Start” và xử lý ngoại lệ lỗi trang của “Test 1” - 46

Hình 4.9: MMU khi xảy ra ngoại lệ lỗi trang -::-©+:c222vvvttvEtxvrrrrrrtrrrrrrrree 47

Hình 4.10: MMU Page Table sau khi thực hiện chương trình “Exc_ tesf” - 48 Hình 4.11: Chương trình “Main” và xử lý ngoại lệ Syscall của “Test l” - 49 Hình 4.12: Chương trình “Main” của “Test Ï”” - ¿65c 5xcc+tertetererrrterrrrrerrree 50

Hình 4.13: Register File của “Test 1” từ phần cứng và cơng cụ kiểm thử 51

Hình 4.14: Đoạn câu lệnh trong “Test 2”” -¿-¿- - St S+S+ k2 221211211111 re 52

vii

Trang 10

Hình 4.15: Chương trình “Start” trong “Test 2”

Hình 4.16: Chương trình “Main” trong “Test 2”

Hình 4.17: Register File của “Test 2” từ phần cứng và công cụ kiểm thử 55

Hình 4.18: Doan câu lệnh trong “Test 3” cccccsceeseeseseseseeesseseecseseseseseseesesessseseeeaeen 56 Hinh 4.19: Chuong trinh “Start” trong “Test 3” Hinh 4.20: Chuong trinh “Main” trong “Test 3” Hình 4.21: Hoạt động của Cache khi hệ thống yêu cầu dữ liệu có sẵn trong Cache 59

Hình 4.22: Register File của “Test 3” từ phan cứng và công cụ kiểm thử - 60

Hình 4.23: Doan câu lệnh trong “Test 4”” ¿- - + S211 2111111111711 tri 61 Hình 4.24: Chương trình “Start” trong “Test 4” -¿cccs+cekskserrrrersrerrerkrerrril 62 Hình 4.25: Cache và MMU khi thực hiện chương trình ““Starf” - - «+ << 63 Hình 4.26: MMU Page Table sau khi thực hiện chương trình “Start” trong “Test 4” 64

Hình 4.27: Chương trình “Main” trong “Test 4” + s+s+sscexsesereererersrrevrerererril 65 Hình 4.28: ICache và DCache khi thực thi chương trình “Main” trong “Test 4” 66

Hình 4.29: MMU khi thực thi chương trình “Main” trong “Test 4” -. - 67

Hình 4.30: Các giai đoạn của CPU khi thực thi chương trình “Main” trong “Test 4” 68

Hình 4.31: Register File của “Test 4” từ phần cứng và công cụ kiểm thử 69 Hình 4.32: Tài nguyên sử dụng của khối ris€V -2¿+++z+222E++ztttvzxzerrrrrscee 70

Hình 4.33: Xung clock chính trong khối risev - ¿z2z++22v+z222v+vee+tzsscee 70

Hình 4.34: Phân tích Timing cho khối riscv

Hình 4.35: Báo cáo năng lượng tiêu thụ của khối risev - -¿++22sccz+ccsscee 71

Hình 5.1: Kiến trúc chung của giao thức AXI4 -ccc-¿¿2222©vvveceetrrrrrkrreerrrrrrer 74

Hình 5.2: Một transaction đọc của giao thức AXI44 «5: S+ttttteghướn 75 Hình 5.3: Một transaction ghi của giao thức AXI4 ¿+55 c+cscstzesrerereree 76

Hình 5.4: Thiết kế tổng quan của Block Design -2 222+2222+2zttvvzveerrrrrscee T7 Hình 5.5: Block Design trên phần mềm Vivado -:-¿2v+zz222vs+ze+zvvscee 78 Hình 5.6 IP Microblaze giao tiếp với IP Local memOry - -: :©cs+cz+2cssc+z 78

Hình 5.7: Khối IP Uart Lite -52c2cvv2vvcvccttc22222222222E21 1E tre 79

Hình 5.8: Phân tích Timing cho Block Design 5252555525 S+S+2++x+xexsxerscxe 80 Hình 5.9: Tài nguyên sử dụng trong Block Design - ¿+55 csc+c+veceesreeeee 80

Trang 11

Hình 5.10: Báo cáo năng lượng tiêu thụ của Block Design

ix

Trang 12

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

ALU Arithmetic Logic Unit Khối số học logic

Cache Cache Bộ nhớ đệm

CPU Central Processing Unit Bộ xử lý trung tâm

DCache Data Cache Bộ nhớ đệm dữ liệu

Vi mạch tích hợp cỡ lớn dùng cầu

FPGA Field Programmable Gate Array trúc mảng phần tử logic mà người

dùng có thé lập trình

MMU Memory management unit Don vi quan lý bộ nhớ

loT Internet of Things Internet vạn vật

ICache Instruction Cache Bộ nhớ đệm lệnh

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

RISC | Reduced Instruction Set Computer | May tính với tập lệnh đơn giản hóa

Trang 13

TOM TAT KHÓA LUẬN

Nội dung chính của khóa luận xoay quanh công việc nghiên cứu và thiết kế bộ vi xử

lý RISC-V theo kiến trúc superscalar song luông, sau đó là tích hợp bộ nhớ đệm (Cache Associative 4-way) hỗ trợ cải thiện tốc độ truy xuất dữ liệu và đơn vị quản lý bộ nhớ

(MMU) hỗ trợ việc truy xuất bộ nhớ chính.

Bộ nhớ đóng vai trò cung cấp các lệnh và dữ liệu cho các chương trình đang thực

thi trong Bộ xử lý (Central Processing Unit - CPU) Do đó, tốc độ truy xuất bộ nhớ có

ảnh hưởng quan trọng đến hiệu suất của hệ thống máy tính Tuy nhiên, các bộ nhớ có tốc

độ truy xuất càng nhanh thì giá thành càng cao Vì vậy, tổ chức một hệ thống bộ nhớ hợp

lý sao cho có thể truy xuất các thành phần cần cho các chương trình một cách nhanh

chóng nhất là một yêu cầu cấp thiết.

Các máy tính ngày nay sử dụng kiến trúc bộ nhớ phân cấp — một kiến trúc bộ nhớ

nhiều lớp bộ nhớ khác nhau các về mặt dung lượng và tốc độ truy xuất dữ liệu Bộ nhớ

có tốc độ truy xuất nhanh hơn sẽ có giá thành trên một đơn vị bộ nhớ cao hơn, do đó các

lớp bộ nhớ có tốc độ truy xuất nhanh sẽ có dung lượng nhỏ trong hệ thống bộ nhớ phân cấp Các hệ thống máy tính ngày nay thường có nhiều lớp bộ nhớ khác nhau nhưng

chúng có thể được chia thành hai lớp chính là bộ nhớ đệm (Cache), Bộ nhớ chính (Main

Memory).

Cache đóng vai trò rất quan trọng trong việc nâng cao hiệu suất của Bộ xử lý bởi vì

tốc độ của các Vi xử lý ngày nay nhanh hơn Bộ nhớ chính rất nhiều tạo nên nhu cầu có

một lớp bộ nhớ trung gian có tốc độ truy xuất dữ liệu cao nhằm giảm thời gian truy xuất

dữ liệu giữa Vi xử lý và Bộ nhớ chính.

Bộ nhớ chính trong các kiến trúc máy tính ngày nay thường được phân vùng để lưu trữ và bảo vệ dữ liệu, nhiệm vụ này được hệ điều hành đảm nhiệm Từ đấy sinh ra nhu cầu về việc hiện thực một đơn vị quan lý bộ nhớ (MMU) nhằm hỗ trợ vi xử lý truy xuất

đữ liệu và bảo vệ Bộ nhớ chính.

xi

Trang 14

Việc tích hợp bộ nhớ đệm (Cache) và đơn vị quản lý bộ nhớ (MMU) vào vi xử lý

RISC-V và vai trò của chúng trong hệ thống là hướng nghiên cứu chính trong khóa luận

này.

xi

Trang 15

Chương 1 Giới thiệu đề tài

1.1 Tổng quan đề tài

Ngày nay, thuật ngữ Internet of Things (IoT) không còn xa lạ mà đã trở thành

xu hướng phát triển nóng ở quy mô công nghiệp Xu hướng này sẽ ảnh hưởng đến

mọi mặt của đời sống con người, từ các vấn đề cá nhân (thông qua Smart các thiết bị thông minh cá nhân, Smart Home - ngôi nhà thông minh, eHealth-các

Wearable-thiết bị chăm sóc sức khỏe ) cho đến các vấn đề xã hội và doanh nghiệp (thông qua

Smart City: thành phố thông minh, Smart environment - môi trường thông minh,Smart Enterprise- doanh nghiệp thông minh, Industrial control — điều khiển côngnghiệp ) Đề phục vụ cho sự phát triển của IoT, một số lượng lớn các thiết bị đang

và sẽ được tạo ra, kết nối với nhau Theo những nghiên cứu mới nhất, số lượng thiết

bị IoT toàn cầu đã lên tới hơn 7 ty thiết bị, con số này đã vượt qua số thiết bị diđộng sử dụng trên toàn cau Cụ thê, theo IoT Analytics, số lượng thiết bị IoT trên

toàn cầu là hơn 7 tỷ thiết bị vào năm 2018 và ước tính sẽ có 22 tỷ thiết bị vào năm

2025 Trong khi đó, theo Gartner, số lượng thiết bị IoT trên toàn cầu là 14.2 tỷ thiết

bị vào năm 2019 và ước tính sẽ có 25 tỷ thiết bị vào năm 2021

Các thiết bi dùng trong mạng IoT hầu hết đều tích hợp ít nhất một bộ vi xử lý

dé phuc vu cho viéc kết nối, thu thập, xử lý, điều khiến, lưu trữ va truyền tải dữ liệu,

cũng như đưa các quyết định tương tác ngược lại với bên ngoài Do đó nhu cầu sốlượng vi xử ly còn cao hon sé luong thiét bi IoT Cộng thêm là các thiết bị dùngtrong mạng IoT yêu cầu vi xử lý cần có hiệu năng đa dạng từ thấp đến cao nhưngvới chi phí thấp và đặc biệt là phải tiết kiệm năng lượng Điều đó đặt ra những thách

thức mới cho các nhà sản xuất thiết bị khi lựa chọn các bộ vi xử lý cho thiết kế của

mình.

Thứ nhất, hiện tại những công ty thành công với kiến trúc tập lệnh của mìnhđang thống trị thị trường vi xử lý như Intel, ARM, IBM, đều có những bằng sángchế trên kiến trúc tập lệnh mà họ đang sở hữu, do đó các công ty này đều tính phíbản quyền đối với việc sử dụng kiến trúc tập lệnh của các công ty này đồng thời

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 1

Trang 16

ngăn cam việc thiết kế các bộ vi xử lý sử dụng kiến trúc tập lệnh của họ nếu không

được họ cấp phép Bất kì một thỏa thuận nào liên quan đến bản quyền sử dụng kiến

trúc tập lệnh đều phải tốn từ 6-24 tháng trao đổi và chi phí phải tốn khoảng từ một

đến mười triệu đô la Mỹ, và tất nhiên thỏa thuận với trường đại học hay những công

ty có quy mô nhỏ lẻ thường bị loại trừ Việc độc quyền đã cản trở sự cạnh tranh vàđổi mới bằng việc ngăn không cho nhiều người thiết kế và chia sẻ những vi xử lý cónhững kiến trúc tập lệnh tương thích với nhau

Thứ hai, các sản phẩm vi xử lý được thiết kế mang tính chất tổng quát cho mỗi

phân khúc sản phẩm nhất định, không tùy chỉnh được thiết kế dé tối ưu về hiệu

năng xử lý, mức tiêu thụ năng lượng và giá cả cho từng dòng sản phẩm IoT

Thứ ba, mỗi kiến trúc tập lệnh của mỗi hàng sử dụng một hệ sinh thái phần

mềm riêng, làm tăng chi phi phat triển Thậm chí trên cùng một thiết bị lại sử dụngnhiều phần mềm khác nhau của những kiến trúc tập lệnh khác nhau

Những thách thức đó là tiền dé, là động lực dé cho ra đời những vi xử lý mã

nguồn mở đi cùng là những kiến trúc tập lệnh miễn phí nhưng thống nhất Mộttrong số đó là RISC-V (phát âm là "risk-five", RISC viết tắt từ Reduced InstructionSet Computer), là một kiến trúc tập lệnh mở, được xây dựng dựa trên những nguyêntắc của kiến trúc tập lệnh RISC, đã và đang thu hút được sự phát triển và ứng dụng

từ các nhà khoa học cũng như các công ty sử dụng vi xử lý trên thế giới Trái ngược

với hầu hết các kiến trúc tập lệnh khác, RISC-V hoàn toàn miễn phí cho bất kỳ mục

đích sử dụng nào Nó cho phép bat kỳ ai có thé thiết kế, sản xuất và bán các sảnphẩm phần cứng và phần mềm sử dụng RISC-V, Điều đó sẽ đem đến rất nhiều lợiich quan trọng cho nền công nghiệp máy tính nói chung và sự phát triển của IoT nóiriêng, như lôi kéo được nhiều ý tưởng sáng tạo thiết kế hơn, các thiết kế bộ vi xử lý

có thé được trao đôi, tái sử dụng, dễ tối ưu hơn làm cho chỉ phi của bộ vi xử lý trởnên rẻ và phù hợp với các ứng dụng kiểu như IoT

Ngoài ra RISC-V còn có những mong muốn khác là tạo ra một kiến trúc tậplệnh tiêu chuẩn chung dé có thé thống nhất và tái sử dụng phần mềm trên nhiều hệ

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 2

Trang 17

thống khác nhau và ồn định trong vài chục năm thay vì sử dụng nhiều kiến trúc tập

lệnh khác nhau trên cùng một hệ thống System on Chip (SOC) như trước đây Dé

hiện thực điều đó, RISC-V cho phép mở rộng tập lệnh theo hướng phù hợp cho từng

ứng dụng cụ thé, thông qua phan tập lệnh mở rộng (tiêu chuẩn hoặc do người thiết

kế CPU tự định nghĩa)

RISC-V được phát triển lần đầu tiên bởi Đại học California, Berkeley vào năm

2010 Cho đến nay đã có hàng chục bộ vi xử lý được phát triển dựa trên kiến trúctập lệnh này nhằm vào nhiều mục đích ứng dụng và phân khúc khác nhau

Tại Việt Nam, vào ngày 15/1/2022, Viện Công nghệ thông tin, Đại học Quốcgia Hà Nội đóng góp hai bài trình bày về nền tảng hệ thống trên chip sử dụng viđiều khiến RISC-V công suất thấp cho các ứng dụng Internet vạn vật và thiết kế các

hệ thống trí tuệ nhân tạo nhỏ gọn cho các thiết bị nhúng trên nền tảng RISC-V Ứngdụng các vi xử lý dùng kiến trúc tập lệnh mở RISC-V cho các ứng dụng an toànthông tin, bao mật phần cứng va phát triển các ứng dụng thông minh đang là hướng

nghiên cứu được quan tâm tại Viện Công nghệ Thông tin.

Bên cạnh đó, tốc độ truy xuất bộ nhớ có ảnh hưởng quan trọng đến hiệu suấtcủa hệ thống Các bộ nhớ có tốc độ truy xuất càng nhanh thì giá thành càng cao Vìvậy, tổ chức một hệ thống bộ nhớ hợp lý sao cho có thé truy xuất các thành phancần cho các chương trình một cách nhanh chóng nhất là một yêu cầu cấp thiết

Cache là bộ nhớ đệm được tích hợp vào bộ xử lý trung tâm của máy tính nhằm giảm

thời gian truy cập dữ liệu từ bộ nhớ chính vì tốc độ của các Vi xử lý ngày nay nhanhhơn Bộ nhớ chính rất nhiều

Quản lý bộ nhớ là việc điều hành bộ nhớ máy tính ở cấp độ hệ thống Mụcđích quan trọng của việc quản lý bộ nhớ chính là cung cấp những cách thức dé cấpphát các vùng nhớ cho chương trình khi được yêu cầu và giải phóng các nó khi

không sử dụng Ngoài hỗ trợ quản lý bộ nhớ, đơn vị quản lý bộ nhớ (MMU) còn

cung cấp khả năng bảo vệ bộ nhớ chính bằng các tín hiệu ngoại lệ lỗi trang

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 3

Trang 18

Nhận thấy được sự cần thiết và tiềm năng của hệ thống nhóm đã lựa chọn thiết

kế vi xử lý RISC-V sử dụng kiến trúc superscalar hỗ trợ associative Cache 4-way vàđơn vị quản lý bộ nhớ trên FPGA làm khóa luận tốt nghiệp

Ngoài ra, như đề cập ở phía trên, nhu cầu của các sản phẩm IoT rat đa dạng về

hiệu năng xử lý cũng như hiệu quả trong sử dụng năng lượng, và giá cả phải rẻ, cho

nên cần có nhiều giải pháp thiết kế linh hoạt đáp ứng từng dòng sản phẩm IoT cuthé Do đó, luận văn này cũng hướng đến việc đề xuất một thay đổi thiết kế đóng

gop thêm giải pháp cho các sản pham IoT

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

e = Nghiên cứu kiến trúc tập lệnh RV32I cho lõi vi xử lý RISC-V 32 bit

e _ Thiết kế phan cứng cho bộ vi xử lý RISC-V 32 bit theo kiến trúc superscalar

băng ngôn ngữ thiết kế phần cứng Verilog

e _ Thiết kế bộ điều khiến Cache va đơn vị quản lý bộ nhớ (MMU) bằng ngôn ngữ

thiết kế phần cứng Verilog

e Tích hợp bộ điều khiến Cache và MMU vào lõi vi xử lý RISC-V 32 bit

e Tích hợp bus AXI 4 dé giao tiếp với các module liên quan

e Kiểm tra các lệnh của vi xử ly và các địa chỉ được chuyển đối bên trong MMU

thông qua mô phỏng trên phần mềm Vivado

e Hiện thực thiết kế lên kit FPGA

Trang 19

Chương 2 Cơ sở lý thuyết

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

2.1.1 Tổng quát

Kiến trúc tập lệnh RISC-V được thiết kế theo kiểu module nhằm cho phép cácnhà phát triển vi xử lý RISC-V có thé linh hoạt lựa chọn được kiến trúc phù hợp

nhất cho ứng dụng của họ RISC-V định nghĩa kiến trúc tập lệnh số nguyên 32-bit

RV32I là kiến trúc tập lệnh cơ sở Với kiến trúc tập lệnh cơ sở này, vi xử lý RISC-V

đã có tất cả những lệnh cơ bản như những lệnh điều khiến luồng, bộ thanh ghi, bộnhớ, cách đánh địa chỉ bộ nhớ vv đủ để hiện thực một vi xử lý dạng tổng quát hỗtrợ đầy đủ cho phần mềm và trình biên dịch

Từ kiến trúc tập lệnh cơ sở này, nhà phát triển vi xử lý RISC-V có thể linhhoạt chọn kết hợp với một hay nhiều tập lệnh mở rộng tùy chọn khác cho các ứngdụng mục tiêu Tập lệnh mở rộng có thể là tập lệnh mở rộng chuẩn của nhà sáng lậpRISC-V hoặc tập lệnh mở rộng phi tiêu chuẩn của nhà phát triển vi xử lý RISC-V

cho một sản phẩm mục tiêu nhất định Các tập lệnh được mô tả chi tiết trong Bảng

2.1.

Bảng 2.1: Bảng các tập lệnh cơ sở và mở rộng của RISC-V

Tên viết tắt Tên day đủ Chú thích

của tập lệnh

RV32I Base Integer Instruction Set, 32-bit 4 tap lệnh cơ sở

RV32E Base Integer Instruction, (embedded)

RV64I Base Integer Instruction Set, 64-bit

RV128I Base Integer Instruction Set, 128-bit

M Integer Multiplication and Division Những tap lệnh mở rộng

A Atomatic Instructions tiêu chuẩn

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 5

Trang 20

m Single - Precision Floating Point

Double - Precision Floating Point

Quad - Precision Floating Point

QO} A}; Oo Decimal Floating Point

RISC (Reduced Instructions Set Computer) là một phương pháp thiết kế các

bộ vi xử lý theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi tất cả cáclệnh đều như nhau Hiện nay các bộ vi xử lý RISC phổ biến là ARM, SuperH,

MIPS, SPARC, DEC Alpha, PA-RISC, PIC, và PowerPC.

Vi xử lý RISC được thiết kế với kiến trúc tập lệnh, tài nguyên tiêu tốn sẽ nhỏnhằm đáp ứng hoạt động của các loại máy tính có kích thước giới hạn Do đó, vi xử

lý sẽ có tân sô va toc độ xử lý sẽ cao hơn so với vi xử lý CISC — được thiệt kê với

kiến trúc tập lệnh dày đặc Tập lệnh RISC chứa ít hơn 100 lệnh và sử dụng địnhdạng lệnh cố định Phương pháp này sử dụng một số chế độ địa chỉ đơn giản sửdụng lệnh dựa trên thanh ghi Trong cơ chế phát trién trình biên dịch này, LOAD /STORE là các lệnh riêng lẻ duy nhất dé truy cập bộ nhớ

Vi xử ly RISC được thiết kế thường có các đặc điểm chính sau:

Mỗi lệnh được thực hiện trong một chu kỳ (one cycle execution time): Các vi

xử lý RISC thường có một CPI (clock per instruction) trong một chu kỳ Day

là sự thừa hưởng từ việc tối ưu mỗi lệnh trên CPU và một kỹ thuật gọi là ốngdẫn.

Kỹ thuật ống dẫn (pipeline): Là kỹ thuật cho phép thực thi đồng thời từngphan, từng trạng thái nhằm tăng thêm hiệu quả của quá trình thực thi lệnh

Có số lượng thanh ghi lớn (large number of registers): Trong thiết kế RISC

thường kết hợp số lượng lớn thanh ghi nhằm giảm thiểu sự tương tác với bộ

nhớ.

Các vi xử lý RISC mang những ưu điểm sau:

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 6

Trang 21

e _ Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản.

e RISC có nhiều thanh ghi tong quan giúp giảm số lần truy cập vào bộ nhớ

chính.

e Thời gian thực thi các giai đoạn của lệnh giống nhau, giúp vi xử lý tăng tốc

nhờ vào kỹ thuật ống dẫn

e _ Cung cấp kha năng định dạng địa chỉ rộng rãi dé quản lý bộ nhớ

Tuy nhiên, RISC cũng có những nhược điểm sau:

e _ Cấm thâm nhập bộ nhớ đối với tat cả các lệnh ngoại trừ lệnh đọc và ghi vào bộ

Nếu xét về định dạng của lệnh thì RV32I được chia thành 6 nhóm: R — type, I

— type, § — type, B — type, U — type, J — type Trong đó R, I, S, U là bốn nhómchính, hai nhóm B và J giống hoàn toàn nhóm S và U ngoại trừ khác nhau về phan

toán tử “immediate” như Hình 2.1 minh họa dưới đây.

31 30 25 24 21 20 19 15 14 12 II 8 716 0

funct7 rs2 | rsl funct3 rd opcode | R-type

imm[11:0] rsl funct3 rd opcode I-type

imm[11:5] rs2 | rsl funct3 imm[4:0] opcode S-type

imm[12] imm[10:5] rs2 | rsl | func3 imm[4:1] imm[11] | opcode B-type

imm[31:12] rd opcode | U-type

imm[20], imm[10:1] imm[Il] | imm[19:12] rd opcode J-type

Hình 2.1: Dinh dang lệnh của RISC-V!!!

BAO CAO KHOA LUAN TOT NGHIEP Trang 7

Trang 22

Về thanh ghi, RV32I có một thanh ghi PC và 32 thanh ghi Register File gồm

một thanh ghi x0 luôn mang giá trị 0 và 31 thanh ghi đa mục đích xI- x31 Tat cả

đều có độ rộng 32-bit (với RV64I độ rộng của các thanh ghi này trở thành 64-bit)

Tương tự như kiến trúc tập lệnh RISC, RV32I cũng có kiến trúc LOAD-STORE.Điều đó có nghĩa là chỉ có các lệnh Load và Store được cấp quyền truy cập vào bộnhớ, còn lại các phép toán số học vv đều chỉ sử dụng các thanh ghi Register

File Ngoài ra RV32I có nghĩa là không gian địa chỉ là 32-bit và sử dung little

endian Tương ứng, RV64I có nghĩa là không gian địa chỉ là 64-bit và RV128I có

không gian địa chỉ là 128-bit RV64I và RV128I cũng được xem là những kiến trúctập lệnh cơ sở Bên cạnh đó, còn một kiến trúc tập lệnh cơ sở nữa là RV32E địnhnghĩa cho những hệ thống nhúng RV32E chỉ có 16 thanh ghi 32-bit registers vànhững bộ đếm của RV32I được tùy chọn có hay không

2.1.3 Các tập lệnh và tập thanh ghi được sử dung trong hệ thống

Sau đây là tập lệnh được sử dung dé nghiên cứu và thiết kế vi xử lý RISC-V

như Bảng 2.2 trong khóa luận này.

Bảng 2.2: Tập lệnh của vi xử lý RISC-V

STT | Lệnh Tên đầy đú Hành động xử lý Kiểu lệnh

1 ADD Add | Rd =rsl +rs2 R-type

2 AND And Rd =rsl & rs2 R-type

3 OR Or Rd =rsl | rs2 R-type

4 SLT Set On Less Than Rd =rsl <rs2 R-type

Set On Less Than Rd =rs1 <rs2 (không

5 SLTU , R-type

Unsigned dau)

6 SUB Subtract Rd =rsl —rs2 R-type

7 XOR Exclusive Or Rd =rsl ^rs2 R-type

8 SLL Shift Left Logical Rd=rsl << rs2 R-type

Shift Right Rd = rsl >> rs2 (giữ bit

9 SRA , R-type

Arithmetic dau)

BAO CAO KHOA LUAN TOT NGHIEP Trang 8

Trang 23

10 SRL | Shift Right Logical Rd =rsl >> rs2 R-type

Set On Less Than

11 SLTI Rd =rsl <imm I-type

Immediate

12 ORI Or Immediate Rd =rsl limm I-type

13 ADDI Add Immediate Rd =rsl +imm I-type

14 ANDI And Immediate Rd= rs1 and imm I-type

Set On Less Than Rd =rs1 << shamt

Shift Left Logical

17 SLLI Rd = rsl << shamt I-type

Immediate

Shift Right Logical

18 SRLI Rd =rsl >> shamt I-type

21 LW Load Word rd = mem[rs! + imm] I-type

Load Byte rd = mem[rs1 + imm](gitt

Trang 24

Branch less than

32 BLTU 1f(rsl<rs2) pe= pe + B-tvpe

usigned imm(khéng dau) 3P

Branch great than P

33 BGEU g if(rs1>=rs2) ; B-type

usigned pc=pc+imm(không dâu)

34 JAL Jump And Link | +d = pc+4, pe = pc + imm J-type

35 SB Store Byte mem[imm + rs1] = rs2 S-type

36 SH Store Halfword mem[imm + rs1] = rs2 S-type

37 SW Store Word mem[imm + rs1] = rs2 S-type

Các vi xử lý RISC-V gồm có 32 thanh ghi Register File, mỗi thanh ghi có kíchthước 32 bit được mô tả chỉ tiết trong Bảng 2.3

Bang 2.3: Tập thanh ghi của vi xử lý RISC-V

Chỉ số thanh ghi

Tên thanh ghi Chức năng của thanh ghi

(Hệ Decimal)

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

$ra 1 Địa chỉ trả về của hàm

Trang 25

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

$s0 - $s11 8 — 6, 18 — 27 khung không được sử dung, x8 sé

Cache là thuật ngữ tong quát dùng dé miêu tả một nơi lưu trữ tạm thời các dữ

liệu đã được sử dụng tích hợp trong các vi xử lý.

Đề phân biệt được một khối đang chứa dữ liệu có phải là bản sao với một khốinào đó trong Bộ nhớ chính ta cần thêm một bit cho mỗi khối trong Cache , được gọi

là valid (V) như Hình 2.2 Ta sẽ xét bit V đó theo hai trường hợp, với trường hợp

thứ nhất là tại địa chi cần xét dit liệu của cache dang rỗng không thé so sánh, thi ta

sẽ cho cache miss trực tiếp, trường hợp thứ hai V có giá trị ta sẽ xét xem giá trịtrong dữ liệu có bằng giá trị chúng ta nạp vào hay không Nếu V là 1 thì khối tươngứng đang chứa dữ liệu của một khối nào đó trong Bộ nhớ chính, ngược lại (V là 0)thì khối này không chứa dữ liệu của bat kì khối nào trong Bộ nhớ chính Tổng số bit

cho từng khối trong Cache được thể hiện trong công thức (1)

Trang 26

Tên tín hiệu Độ rộng Mô tả

Vv 1 Cho biết khối có phải ban sao của lớp

bộ nhớ thấp hơn hay không

Tag t Cho biết Tag của mỗi khối tương ứng

Data d Dữ liệu chứa trong khôi đó

Số Bit của một khối =l+t+d_ (1)2.2.1 Giải thuật FIFO dé cấp phát bộ nhớ

Thay thế khối là việc chọn một khối trong các khối tiềm năng (candidates)trong Cache có thé dùng chứa khối đang được đọc lên từ bộ nhớ chính trong trườnghợp tat cả các khối tiềm năng đều đang chứa dit liệu (Bit hợp lệ của các khối này là

1).

Phương pháp FIFO (First in, first out) sẽ tìm kiếm trong số các khối tiềm năng

và thay thé khối đầu tiên trong Cache Phương pháp FIFO là phương pháp hiện thực

đơn giản tiết kiệm phần cứng nhưng vẫn đảm bảo tốc độ cho hệ thống

2.2.2 Phương pháp cập nhật lại bộ nhớ chính

Mô hình Ghi dữ liệu Write-throuph:

Mô hình Write-through là mô hình ghi dữ liệu đơn giản nhất CPU sẽ tiến

hành ghi dữ liệu ở cả hai mức là Cache và Bộ nhớ chính mỗi khi thực hiện lệnh Ghi

dt liệu Do đó, sự đồng nhất dữ liệu giữa hai mức Cache và Bộ nhớ chính là luôn

được đảm bảo.

Trong trường hợp Word cần ghi đang được chứa trong Cache ( một lần Hit)

thì việc ghi theo chiến lược Write-through là đơn giản Ngược lại, khi Word cần ghi

không nằm trong Cache (một lần Miss) thì cần chép khối Word cần khi từ Bộ nhớ

chính lên Cache và sau đó thực hiện thao tác ghi như trường hợp Hit Tức là cập

nhật Word cần ghi trong Cache và ngay sau đó cập nhật giá trị của Word này trong

Bộ nhớ chính.

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 12

Trang 27

Mô hình là lựa chọn cho hệ thống trong khóa luận này bởi sự đơn giản về phầncứng của nó đồng thời vẫn đáp ứng về mặt thời gian.

Mô hình Ghi dữ liệu Write-back:

Đối với chiến lược ghi dữ liệu Write-back, khi thực hiện ghi dữ liệu, CPU chỉ

cập nhật giá trị của Word trong Cache mà không cập nhật giá trị của nó trong Bộ nhớ chính như trong phương pháp Write-through Giá trị này chỉ được cập nhật vào

Bộ nhớ chính khi khối chứa Word này trong Cache bị thay thế

Việc không thực hiện Ghi giá trị vào Bộ nhớ chính ở mỗi lệnh ghi dữ liệu như

phương pháp Write-through sẽ cải thiện hiệu suất đáng kể Tuy nhiên, việc hiện

thực phương pháp Write-back sẽ phức tạp hơn phương pháp Write-through, phương

pháp này sẽ cần dùng thêm các Bit nhớ ở mỗi khối trong Cache để ghi nhận lại

trạng thái của khối đó đã cập nhật giá trị hay chưa Khi một khối trong Cache bị

thay thế, dựa vào Bit trạng thái này mà CPU sẽ tiến hành cập nhật giá trị của khối

trong Bộ nhớ chính hay không.

2.2.3 Ưu điểm và lý do chon Cache associative 4 - way

So với hai phương pháp còn lại, phương pháp Kết hợp cho thấy sự cân bằnggiữa việc tìm kiếm khối và cách t6 chức khối trong Cache nên mang lại hiệu quả

cao hơn cho hệ thông máy tính như Hình 2.3

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 13

Trang 28

Direct mapped Set associative Fully associative

Search Search [ ] Seren TTT TTT TT

Hình 2.3: Tim 6 nhớ của các phương pháp: Trực tiếp, Toàn phan, Kết hopTrong cả ba phương pháp tô chức Cache trên, đối với phương pháp ánh xạtrực tiếp thì việc tìm kiếm dữ liệu sẽ nhanh nhất nhưng tỉ lệ cạnh tranh cao, phươngpháp ánh xạ toàn phần phải tìm khối dữ liệu cùng lúc toàn bộ Cache nên việc tìmkiếm sẽ làm giảm hiệu suất hệ thống, trong khi đó phương pháp ánh xạ kết hợp giớihạn việc tìm kiếm bằng cách chia Cache thành các Set nhỏ từ đó giúp cải thiện đáng

kể thời gian trung bình truy xuất hệ thông bộ nhớ

So sánh Cache 2-way với Cache 4-way

Mặc dù Cache 2-way có độ trễ khi truy xuất dữ liệu thấp hơn so với Cache

4-way, nhưng lại có tỉ lệ Miss cao hơn Do đó, ta cần cân nhắc lựa chọn Cache dựa

vào nhu câu đê cho ra hiệu năng tôt nhât.

Dưới đây là đề tài nghiên cứu liên quan và kết quả như Bảng 2.5 về hai yếu tốđược sử dụng dé đánh giá hiệu suất của bộ đệm Cache được đề xuất: mức tiêu thụnăng lượng trung bình (Ec) và thời gian truy cập trung bình (Tas) Nếu xem xét lỗi

bộ nhớ cache, và tính toán được hai phương trình công thức theo đề tài nghiên cứu

Trang 29

Với m là số lượng associative được điều chỉnh (1,2,4, n).

H là tốc độ truy cập của bộ nhớ cache

P là chu kỳ lỗi miss bị bỏ lỡ.

Erag và Eaaa biểu thị năng lượng được truyền trong bộ nhớ tag và bộ nhớ data tương

Tas 1.278 1.2667 1.2351

Ec 1.156 2.2748 4.5155 FSXZZ

Tas 1.3582 1.3214 1.3128

Ec 1.156 2.2567 4.4638 IVEX

TAs 1.2776 1.2508 1.2457

Ec 1.156 2.2978 4.584 SPIC

Tas 1.1392 1.1227 1.1152

BAO CAO KHOA LUAN TOT NGHIEP Trang 15

Trang 30

2.3 Đơn vị quản lý bộ nhớ - MMU

$cause 15 Loại ngoại lệ

$epc 16 Địa chỉ trả về của ngoại lệ

$index 17 Dia chỉ của mục trong MMU

Sentry 18 Giá trị dé lưu vào mục trong MMU

$context 19 Dia chỉ cua thư mục trang

Tập lệnh cơ sở của vi xử lý được thiết kế không có khả năng giao tiếp với cácthanh ghi đặc biệt, do đó thiết kế đề xuất một tập các lệnh đặc biệt được sử dụng dégiao tiép với các thanh ghi đặc biệt Tập lệnh đặc biệt có vai trò hỗ trợ hoạt độngcủa CPU trong van dé xử lý ngắt và giao tiếp với MMU

Dựa vào bảng các giá trị thanh ghi đặc biệt ở trên dé giao tiếp dé giữa CPU và

MMU, ta có các tập lệnh mới phục vụ cho khóa luận được trình bay trong Bang 2.7.

Bảng 2.7: Tập lệnh đặc biệt của vi xử lý RISC-V

Lệnh Cấu trúc Hành động xử lý

mfc0 mfc0 rd, rs2 rs2 (CPO) -> rd (regFile)

mtc0 mtcO rd, rs2 rs2 (regFile) -> rd (CPO)

syscall syscall Nhảy đến dia chỉ thực

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 16

Trang 31

của ngoại lệ Syscall

Nhảy về dia chỉ ảo trả về eret eret của ngoại lệ (chứa trong

thanh ghi $epc)

mtcO mic0 r20, x0 Cho phép ghi vào MMU

Các lệnh đặc biệt mfc0 và mtc0 dùng các thanh ghi từ Bảng 2.7 dé chuyên dữ

liệu từ các thanh ghi Register File đến các thanh ghi đặc biệt hoặc ngược lại, lệnh

mtc0 r20, x0 là một lệnh đặc biệt được thiết kế riêng có chức năng cho phép ghi vào

MMU.

Muốn cập nhật một mục trong MMU, chúng ta phải sử dụng các tập lệnh phầnmềm dé thực hiện Đầu tiên, ta cần cập nhật địa chỉ của một mục trong MMU tạithanh ghi $index, sau đó là thay đôi địa chỉ của thư mục trang tại thanh ghi $contextnếu can, lưu dit liệu cần ghi vào mục trang trong thanh ghi $entry và cuối cùng là sửdụng lệnh mtc0 r20, x0 dé cho phép ghi vào mục trong MMU

Khi CPU muốn truy cập vào bộ nhớ chính, nó sẽ gửi một địa chỉ ảo cho MMU,dựa vào địa chỉ ảo, MMU sẽ tra cứu các mục trong bảng trang, sau đó xuất địa chỉthực chứa trong mục nhập ay xuống bộ nhớ chính nếu mục đã được cấp quyền (bít

valid của mục bằng 1) Nếu CPU truy cập vào một mục không được cấp quyền truy

cập bộ nhớ, MMU sẽ báo về một ngoại lệ lỗi trang, CPU sau đó sẽ nhảy đến địa chỉ

thực chứa các câu lệnh xử lý ngoại lệ lỗi trang và thực hiện chúng Việc xử lý ngoại

lệ lỗi trang được kết thúc bởi câu lệnh eret, thanh ghi PC sẽ nhảy về địa chỉ trongthanh ghi $epc và CPU sẽ tiếp tục chương trình chính

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 17

Trang 32

2.3.2 Chức năng

Các chương trình chạy trên vi xử lý sử dụng các địa chỉ hiện tại của nó để truycập không gian địa chỉ trống Bộ xử lý có thể diễn giải vùng địa chỉ này theo một

trong hai cách, tùy thuộc vào địa chỉ cung cấp:

e Ở chế độ thực, các địa chỉ hiện tại được sử dụng dé truy cap truc tiép vao vung

dia chỉ thực trong bộ nhớ vat lý Ở chế độ này, MMU sẽ chuyên tiếp địa chỉnhận được từ CPU xuống bộ nhớ chính

se Oché độ ảo, các địa chỉ hiện tại được phần cứng quản lý bộ nhớ ảo trong bộ

xử lý chuyên thành địa chỉ vật lý theo cơ chế tra cứu mục nhập bảng trang và

đưa xuống bộ nhớ chính

e Bộ nhớ ảo chia bộ nhớ chính thành các bảng trang và ánh xa chúng thông qua

các mục nhập bảng trang trong MMU.

e Chế độ ảo cung cấp cho phần mềm hệ thống khả năng định vi lại các chương

trình và đữ liệu ở bất kỳ đâu trong không gian địa chỉ vật lý Phần mềm hệthống có thé di chuyên các chương trình và dit liệu không hoạt động ra khỏi bộnhớ vật lý khi các chương trình và dữ liệu đang hoạt động yêu cầu không gian

e Chế độ ảo cung cấp khả năng kiểm soát tốt hơn đối với việc bảo vệ bộ nhớ

Các khối nhỏ đến 2 Kb có thé được bảo vệ riêng khỏi truy cập trái phép Bao

vệ và tái định vị cho phép phần mềm hệ thống hỗ trợ đa nhiệm Khả năng nàycho phép thực hiện đồng thời hoặc gần đồng thời nhiều chương trình

Các tính năng của MMU vào bộ vi xử lý được bao gồm:

° Chuyển các địa chỉ hiện tại thành địa chỉ thực

e Kiểm soát quyền truy cập trang trong khi dich địa chỉ

e_ Cung cấp khả năng kiểm soát bảo vệ bộ nhớ thông qua việc sử dụng các khu

vực khác nhau.

e©_ Cung cấp khả năng kiểm soát độc lập đối với việc dịch và bảo vệ địa chỉ lệnh

và địa chỉ dữ liệu.

Van dé gặp phải với hệ thống sử dụng bộ nhớ chung:

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 18

Trang 33

e _ Hệ thống có bộ nhớ vật lý ít hơn không gian địa chỉ của nó.

e Phân mảnh bộ nhớ chung.

e Vấn đề nhiều chương trình trong hệ thống sử dung chung bộ nhớ

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 19

Trang 34

Chương 3 Thiết kế vi xử lý RISC-V

3.1 Mô tả tổng quan hệ thống

Nhằm tăng tốc độ xử lý cho CPU, khóa luận này đề xuất việc tích hợp ICache

- chứa tập lệnh, DCache - chứa dir liệu từ data memory đã được sử dung và một

MMU hé trợ cho việc truy xuất bộ nhớ chính vào hệ thống.

Trong hệ thống, ICache và DCache được cập nhập tự động bằng thuật toán ởphần cứng, còn đơn vị quản lý bộ nhớ MMU được cập nhập bằng phần mềm bởi

các tập lệnh.

Thiết kế vi xử lý RISC-V 5 tầng được tích hợp các Cache và MMU, các câu

lệnh được xử lý qua các giai đoạn như Hình 3.1.

Trang 35

e Giai đoạn IF: PC cung cấp địa chỉ cho ICache và giải quyết các van đề xung

đột dữ liệu, xung đột đường ống giữa 2 lệnh song song

e Giai đoạn ID: Giải mã lệnh, đọc dữ liệu thanh ghi trong Register File, xử lý

xung đột dữ liệu trong đường ống bằng phương pháp nhìn trước, xử lý rẽ

nhánh/ nhảy.

e Giai đoạn EXE: Thực thi các lệnh tính toán số học hoặc tính toán địa chỉ đọc

trong DCache cho giai đoạn MEM.

e Giai đoạn MEM: Thực thi lệnh ghi dữ liệu vào DCache, doc dữ liệu từ DCache

hoặc từ ALU dé lưu vào Register File Ở giai đoạn này hệ thống chỉ cung cấpmột đường dé giao tiếp với DCache nhưng lại có 2 lệnh chạy song song, do đó

có thể xảy ra xung đột đường ống, công việc giải quyết xung đột này được

thực hiện ở giai đoạn IF.

© Giai đoạn WB: Chọn dữ liệu để ghi vào Register File

Do việc tích hợp ICache và DCache năm ở các vị trí khác nhau trên đườngống, việc đồng bộ phải được xử lý Các tín hiệu đồng bộ được xử lý trong giai đoạn

IF và gửi đên các giai đoạn khác.

Do vi xử lý được thiết kế để xử lý song luồng, ICache giao tiếp với bộ nhớchính thông qua 2 công, còn DCache thì thông qua 1 công

Đầu ra của MMU giao tiếp với bộ nhớ chính là các địa chỉ thực được dịch Khiđịa chỉ mà CPU cấp cho MMU trỏ đến một mục không được cấp quyền trong bảngtrang (valid = 0), MMU sẽ gửi trả về giai đoạn IF một ngoại lệ lỗi trang Ngoại lệlỗi trang là một ngoại lệ mà CPU sẽ xử lý bằng cách nhảy đến vùng địa chỉ thựctrong bộ nhớ chính chứa tập lệnh dé xử lý ngoại lệ lỗi trang

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 21

Trang 36

3.2 Thiết kế vi xử lý RISC-V

3.2.1 Khối cpu mem scalar

Khối cpu_mem_scalar là một vi xử lý RISC-V sau khi tích hợp các bộ nhớ

đệm (Cache) và đơn vị quản lý bộ nhớ (MMU) Sau khi tín hiệu “reset” được tích

Hinh 3.2: Khéi cpu_mem_scalar

cực và nhận được tín hiệu “start” tích cực, vi xử lý bắt đầu hoạt động

Chức năng của khôi cpu_mem_scalar:

e Giao tiếp với bộ nhớ chính: xuất địa chỉ và nhận lại các lệnh từ bộ nhớ chính

và thực hiện chúng, đồng thời ghi và đọc các dữ liệu từ bộ nhớ chính thông

rst_n I 1 Tin hiệu reset tích cực mức thấp

Trang 37

start I 1 Tin hiéu kich hoat hé thong

A_inst I 32 Lệnh A được nạp vào B_inst I 32 Lệnh B được nạp vào

imem_ready I 1 Tín hiệu hợp lệ của lệnh được nap vào

dmem_ dout I 32 Dữ liệu từ data memory

dmem_ ready I 1 Tín hiệu hợp lệ của dữ liệu từ data memory

A_imem_addr O 32 Dia chỉ lệnh được nạp vao A_inst

B_imem_addr O 32 Dia chi lénh duoc nap vao B_inst

imem_strope O 1 Tín hiệu hợp lệ của địa chỉ lệnh

data_mem_addr | O 32 Dia chi truy xuất vào data memory

dmem_din O 32 Dữ liệu ghi vào data memory

dmem_ strope O 1 Tín hiệu hop lệ truy cập vào data memory

dmem_rw O 1 Tín hiệu doc/ghi data memory

Trang 38

Chức năng khối pc_scalar:

e Cung cấp địa chỉ lệnh: Khối pc_Scalar là một đơn vị điều khiển trong vi xử lý,

được sử dụng dé cap phát các dia chỉ lệnh cho ICache

e Khối pc_scalar cấp phát 2 địa chỉ lệnh cho ICache mỗi khi có tín hiệu hợp lệ

cho dữ liệu đầu vào

Khối pc_scalar được mô tả trong Hình 3.3 và chi tiết từng tín hiệu được mô tả

A_pc_sel I 1 Tín hiệu báo lệnh A là lệnh nhảy

A_jump_ data I 32 Dia chỉ nhảy của lệnh A

B_pc_sel I 1 Tín hiệu báo lệnh B là lệnh nhảy

B_jump_data I 32 Dia chi nhay cua lénh B

roll_back I 1 Tín hiệu báo chu kỳ trước chỉ xử lý một lệnh

intr_sel I 3 Tín hiệu xảy ra ngoại lệ

epc I 32 Dia chỉ nhảy của lệnh eret

pc_valid_1n I 1 Tín hiệu hợp lệ cho các lệnh đầu vào

dmem_valid_in I 1 Tín hiệu từ data mem dé xử ly đồng bộ CPU

mem_ wait | 1 Tín hiệu từ giai đoạn MEM dé xử ly đồng bộ

CPU

dmem_valid out| I 1 Tín hiệu từ giai đoạn MEM dé xử lý dong bộ

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 24

Trang 39

pe O 32 Dia chi lệnh tiếp theopc_add_4 O 32 Địa chỉ lệnh tiếp theo tiếp theo

pc _add_§ O 32 Địa chỉ lệnh tiếp theo tiếp theo tiếp theo

pc_valid_ out O 1 Tín hiệu hợp lệ cho các đữ liệu đầu ra

A_ uncached O 1 Tín hiệu báo địa chỉ lệnh A không sử dụng

e Khối issuing xử lý các van đề về xung đột giữa 2 lệnh được cấp phát cùng lúc

như xung đột dữ liệu, xung đột đường ống (do thiết kế chỉ có một đường ống

dé truy cập vào DCache)

e© Một số xung đột chỉ có một lệnh được di qua đường ống, tín hiệu roll_back sẽ

được bật Nếu xung đột cần đổi chỗ 2 lệnh, tín hiệu swap sẽ được bat

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 25

Trang 40

Khối issuing được mô tả trong Hình 3.4 và chi tiết từng tín hiệu được mô ta

trong Bảng 3.3.

Bảng 3.3: Tín hiệu của khối issuingTín hiệu | I/O | Số bit Mô tả

A_inst I 32 Lénh A hién tai

B_inst I 32 Lénh B hién tai

A_pipe | O 32 Lệnh A sau khi xử ly xung đột.

B_pipe | O 32 Lệnh B sau khi xử lý xung đột.

roll_back | O 1 Tín hiệu báo chi xử lý một lệnh

swap | O 1 Tín hiệu báo có lệnh bị đôi chỗ

3.2.4 Khối fowarding logic

BÁO CÁO KHÓA LUẬN TÓT NGHIỆP Trang 26

Ngày đăng: 03/11/2024, 19:11

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w