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ế bộ xử lý RISC-V hỗ trợ chế độ giám sát

137 2 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ế bộ xử lý RISC-V hỗ trợ chế độ giám sát
Tác giả Ngô Hoài Phong, Nguyễn Minh Tâm
Người hướng dẫn ThS. Hồ Ngọc Diễm
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 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 137
Dung lượng 68,09 MB

Nội dung

Tong quan dé tai 1.1 Tổng quan tình hình nghiên cứu ~ Tình hình nghiên cứu ngoài nước: > Năm 2019, Sandro Pinto va Cesare Garlati đã công bố công trình nghiên cứu về việc áp dụng quá trì

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN

KHOA KỸ THUẬT MÁY TÍNH

NGÔ HOÀI PHONG NGUYÊN MINH TÂM

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

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

NGO HOAI PHONG - 17520894 NGUYEN MINH TAM - 17521004

KHOA LUAN TOT NGHIEP

THIET KE BO XU LY RISC-V HO TRO

CHE DO GIAM SAT

DESIGN A RISC-V PROCESSOR SUPPORT

SUPERVISOR MODE

KỸ SƯ NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

ThS HO NGỌC DIEM

TP HO CHi MINH, 2021

Trang 3

THONG TIN HOI 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ố 462/QD-DHCNTT

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

1 Nguyễn Minh Sơn - Chủ tịch

2 Nguyễn Thanh Thiện - Thư ký

3 Trương Văn Cương - Ủy viên

Trang 4

LỜI CẢM ƠN

Để có thể hoàn thành tốt được khóa luận tốt nghiệp này, nhóm xin chân thành cảm ơn các thầy cô 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 và các thầy cô thuộc khoa Kỹ thuật Máy

tính nói riêng, đã truyền đạt cho chúng em những kiến thức và kinh nghiệm quý báu trong suốt 4 năm qua.

Kế đến, nhóm xin cảm ơn những người bạn đã luôn động viên cũng như

hỗ trợ em tìm kiếm những thông tin và hướng giải quyết những van đề khó khăn trong suốt thời gian làm khóa luận tốt nghiệp.

Cuối cùng, nhóm xin chân thành cảm ơn cô Hồ Ngọc Diễm và thầy Trần

Đại Dương đã dành thời gian quý báu cũng như kiến thức và kinh nghiệm của

mình đề truyền đạt, hướng dẫn và giúp đỡ chúng em rất nhiều trong suốt thời gian qua.

Lời cuối cùng, nhóm xin chúc quý thầy cô và các bạn luôn có thật nhiều

sức khỏe và thành công trong công việc.

Nhóm sinh viên

Ngô Hoài Phong

Nguyễn Minh Tâm

Trang 5

ĐÈ CƯƠNG CHI TIẾT

TEN DE TÀI TIENG VIỆT: THIẾT KE BỘ XỬ LÝ RISC-V HO TRỢ CHE ĐỘ

GIÁM SÁT

TEN DE TÀI TIENG ANH: DESIGN A RISC-V PROCESSOR SUPPORT

SUPERVISOR MODE

Cán bộ hướng dẫn: Ths Hồ Ngọc Diễm, Trường Dai học Công nghệ Thông tin

Thời gian thực hiện: Từ ngày 08/03/2021 đến ngày 25/06/2021

Sinh viên thực hiện: Nguyễn Minh Tâm - 17521004

Ngô Hoài Phong - 17520894

Nội dung đề tài

1 Tong quan dé tai

1.1 Tổng quan tình hình nghiên cứu

~ Tình hình nghiên cứu ngoài nước:

> Năm 2019, Sandro Pinto va Cesare Garlati đã công bố công trình nghiên cứu về việc áp dụng quá trình xử lý ngoại lệ ở chế độ người dùng vào hệ điều hành nhúng thời gian thực FreeRTOS cho bộ xử lý MultiZone nhằm bảo mật những thiết bị IOT sử dụng kiến trúc tập lệnh RISC-V [1].

e Kết quả nghiên cứu chỉ tập trung vào quá trình xử lý ngoại lệ ở chế độ người

dùng.

- Tình hình nghiên cứu trong nước:

> Năm 2020, sinh viên An Xuân Tuấn đã thiết kế bộ xử lý 32 bit đơn chu kỳ dựa

trên kiến trúc RISC-V hỗ trợ chế độ giám sát [2].

e Kết quả bộ xử lý thực thi đúng chức năng của 37 lệnh thuộc kiến trúc R V321,

7 lệnh hệ thống và xử lý các ngoại lệ Tuy nhiên bộ xử lý được thiết kế đơn chu kỳ nên tần số hoạt động vẫn còn rất thấp.

Tài liệu tham khảo:

[1] Pinto, Sandro & Garlati, Cesare (2019) User Mode Interrupt: A Must for

Securing Embedded Systems.

[2] An Xuân Tuần (2020) Thiết ké bộ xử lý kiến trúc RISC-V hỗ trợ chế độ giám sát.

Trang 6

1.2 Lý do thực hiện đề tài

- RISC-V là một kiến trúc tập lệnh mở (Open-sourse ISA) dựa trên các nguyên tắc

máy tính tập lệnh rút gon RISC (Reduced Instruction Set Computer) và hiện đang nhận được sự quan tâm lớn của các nhà nghiên cứu.

- RISC-V đang rất mới, ở Việt Nam hiện ghi nhận 1 vài công trình nghiên cứu liên

quan đến bộ vi xử lý dựa trên kiến trúc tập lệnh RISC-V, và chỉ mới ghi nhận 1 công trình bộ vi xử lý RISC-V kết hợp chế độ giám sát và xử lý ngoại lệ.

- Công trình nghiên cứu này góp phần giúp Việt Nam bắt kịp xu thế phát triển của thế giới trong lĩnh vực thiết kế vi mạch nói chung và thiết kế vi xử lý kiến trúc RISC-V

nói riêng.

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

- Thiết kế bộ xử lý 32 bit áp dụng kỹ thuật pipeline dựa trên kiến trúc tập lệnh RISC-V kết hợp các khối hỗ trợ ché độ giám sát và xử lý ngoại lệ từ nghiên cứu của sinh viên

An Xuân Tuan vào bộ xứ lý Bao gồm:

> Thực thi 37 lệnh cơ bản thuộc kiến trúc tập lệnh RV32I và lệnh ECALL.

> Thực thi 7 lệnh hệ thống thuộc chế độ giám sát gồm: SRET, CSRRW, CSRRS,

CSRRC, CSRRWI, CSRRSI, CSRRCI.

> Xử lý các ngoại lệ: software interrupt, timer interrupt, lệnh chuyên chế độ và các lệnh bat hợp pháp.

> Tần số hoạt động 50Mhz.

3 Phương pháp thực hiện

- Phương pháp nghiên cứu tài liệu: Tìm hiểu lý thuyết kiến trúc tập lệnh RISC-V R V321, trạng thái hoạt động của chế độ giám sát, chế độ người dùng và bộ xử lý các ngoại lệ.

- Phương pháp thiết kế: Altera FPGA Design Flow.

- Phương pháp mô phỏng: Sử dụng testbench mô phỏng trên ModelSim.

- Phương pháp thực nghiệm: Hiện thực và kiểm tra thiết kế trên FPGA (Kit DE2).

4 Các nội dung chính và giới hạn của đề tài

1 Thiết kế datapath:

- Khối PC.

- Khối Instruction Memory.

- Khối Register Eiles.

Trang 7

- Khối ALU, ALU control.

- Khối Data Memory.

- Các thanh ghi IF_ID, ID_EX, EX_MEM và MEM_WB.

- Khối Hazard Detection Unit (HDU).

-Khối Branch Forward Unit và Bypass.

2 Thiét ké control unit:

- Tín hiệu điều khiển 37 lệnh cơ bản, lệnh ECALL và các lệnh hệ thống.

- Tín hiệu xác định chế độ giám sát và chế độ người dùng tại từng chế độ hoạt

động.

- Tín hiệu xử lý ngoại lệ.

3 Thiết kế các khối xử lý ngoại lệ

- Các thanh ghi xử lý ngoại lệ.

- Khối xác định độ ưu tiên.

- Khối Stack.

- Khối xác định nguyên nhân gây ra ngoại lệ.

4 Thiết kế khối tạo Timer Interrupt.

5 Mô phỏng hệ thống trên ModelSim.

6 Hiện thực và kiểm tra bộ xử ly trên FPGA

5 Kế hoạch thực hiện:

STT Công Thời gian dự kiến Người thực

việc hiện

1 | Tìm hiểu kiến trúc tập lệnh RISC-| 08/03/2021 — 21/03/2021 | Minh Tâm +

V Tìm hiểu kỹ thuật pipeline (2 tuan) Hoài Phong

2 | Thiết kế datapath pipeline 22/03/2021 - 11/04/2021 | Hoài Phong

(3 tuan)

3 | Kết hợp các khối xử lý ngoại lệ 12/04/2021 - 25/04/2021 | Minh Tâm

vào datapath (2 tuân)

4 | Thiết kế control unit 26/04/2021 - 23/05/2021 | Minh Tâm +

(4 tuân) Hoài Phong

5 | Mô phỏng hệ thống trên Model 24/05/2021 - 06/06/2021 | Minh Tâm +

Sim (2 tuân) Hoài Phong

Trang 8

6 | Hiện thực và kiểm tra trên FPGA | 07/06/2021 — 20/06/2021 | Hoài Phong

(2 tuân)

7| Viết báo cáo 21/06/2021 - 25/06/2021 | Minh Tâm

(1 tuân)

Xác nhận của CBHD TP HCM, ngày 2 tháng 3 năm 2021

(Ký tên và ghi rõ họ tên) Sinh viên

(Ký tên và ghi rõ họ tên)

Trang 9

1.3 Phương pháp nghiên cứỨu - + ++++x+E+EvEvE+kekertrrkekrkererkrkrkerrre 4

Chương 2 CƠ SỞ LÝ THUYÉTT °-se2+secVEvveeeevvxesererreesee 5 2.1 Chế độ đặc quyên -cc:¿-222222E2+rrrrEEEEEEvrrrrrrrrrrrkrrrrrrrrrrres 5

2.2 Bộ xử lý hai chế độ -222::+2222++t2EEEEEtEEEEEvrttrkkrrrtrrkrrrrrrrvee 5 2.3 Trạng thái hoạt động của bộ xử lý hai chế độ . +22 7 2.4 Các định dạng lệnh thuộc kiến trúc RISC-V -zz2 0

2.5 _ Chức năng các lệnh RV32I và lệnh hệ thống "“ - 1

2.6 Kỹ thuật pipeline cv Hư 4

2.6.1 Tổng quan -cccc2222vcrSEEEErrrtrrttrrrrrrrrrrrrrrrve 4

2.6.2 Các vấn đề của pipeline -ccc-:+2222cvvvrvrrrrrrrrvrrrrrrrrrrr 5

2.6.2.1 Xung đột cấu trúc (Structural hazard) -s-c-cecccscxsrxeer 6

2.6.2.2 Xung đột dữ liệu (Data hazard)

2.6.2.3 Xung đột điều khiển (Control/Branch hazard) §

Chương 3 THIET KE HE THONG.

3.1 _ Thiết kế hệ thống tổng quát -2¿-+2++++22E++z+tttzxxersrrrserrrrr 9 3.2 _ Thiết kế hệ thống chỉ tiết.

Trang 10

3.2.1 Khối Timer -c:2222+ccSCCvvrrrerrkrrrrrrrtrrrrrrrrvee 21 3.2.2 Khối Datapath c2222cccSccvrrrrerrtrrrrrrrtrrrrrrrrve 22 3.2.2.1 Các khối cơ bản -222¿2222++t2222EEtEE2EEEEEEEEErrrrtrrrrrrr 24 3.2.2.1.1 Khối Program Counter

3.2.2.1.2 Khối Instruction Memory -. -eeeeeeee e 26 3.2.2.1.3 Khối Register File -ceeeeeerereereeeeseroe 27

3.2.2.1.4 Khối Sign extend usssesmennneusienanisienenutuennutenenees 2B 3.2.2.1.5 Khối ALU control -««e.eeeeeeoseeeoe 3Ô 3.2.2.1.6 Khối AL/U «caro 33 3.2.2.1.7 Khối Data Memory seceeeeeeeeeereerereeeee.x 30 3.2.2.1.8 Khối Branch _COMP eves OO 3.2.2.1.9 Khối Branch _€onITOI .‹c-sssecsevecsssexseeeessseeseeerssseeseeeee AL 3.2.2.2 Các khối xử lý dành cho pipeline -ccc: cccscccc2 42

3.2.2.2.1 Khối Hazard Detection Unit (HDU) 42 3.2.2.2.2 Khối Branch Forward Unit e-eeeeeeeee 4D 3.2.2.2.3 Khối Bypass reo, 7 3.2.2.2.4 Khối id bypass -eerrrrrrrrrrrreeeeroe 50

3.2.2.2.5 Các thanh ghi pipeline -. -ereeeeceeveeerrrrrrrreaooee DD

3.2.2.3 Các khối xử lý ngoại lệ -::+++¿+22222222222221121211222222Xe, 62

3.2.2.3.1 Khối Reason Exceptions Ô 2 3.2.2.3.2 Khối System Register Eile eeceeeee.v OF 3.2.2.3.3 Khối PC_handling_exc_ addr c‹«.eeeeeereeeeer 1A 3.2.2.3.4 Khối PC_return_addi ceeeroeeeeesereeoeoroe 7 6

3.2.3 Khối Control Unit -c-:©2222+c22E2S+tSEEEEerrrrrkerrrrrrrvee 71

Trang 11

Chương 4 MO PHONG VÀ ĐÁNH GIA KET QUA -«- 85

4.1 RISC-V-tests

4.2 Bộ chương trình kiêm tra ngoại 16 - «- - c+c‡+ccsrekeeererrrkree 89

4.3 — Giai đoạn trước tông hợp luận lý

4.4 Giai đoạn sau tổng hợp luận lý - -¿-5222+zctzczrxerrrrrreererrree 99

4.5 Giai đoạn hiện thực trên FPGA

4.5.1 Kiểm tra trên FPGA với bộ test_ - : -ccc:+ccvsccsecrveccee 05

4.5.2 Kiểm tra trên FPGA với bộ test_2

4.6 So sánh kết quả thực thi 3 giai đoạn mô phỏng -. -: 12 4.7 So sánh kết quả với các nghiên cứu đã thực hiện

Chương 5 KET LUẬN VÀ HƯỚNG PHÁT TRIÊN - 116

5.I - Kếtluận 222.c 22222222221 crrrree 16

5.2 Hướng pháttriển .-ccc+cccvrrrrrrrrrrrrrrtrrrrrrrrrrrer 16

TÀI LIEU THAM KHAO s22 +2<c22it+eeeSEttrcrzEEttrrrrvrtrrrrrrre 117

Trang 12

DANH MỤC HÌNH

Hình 2.1: Mô hình lớp của bộ xử lý kết hợp hai chế độ - : -+ 6

Hình 2.2: Trang thái hoạt động của bộ Xử lý ¿+cc+ccrsrkrkekererree 7

Hình 2.3: Các thủ tục xử lý ngoại 16 ¿-¿- ¿cty 9

Hình 2.4: Quá trình lệnh thực thi tuần tự [3] -.¿¿- c¿+52sscc+ccvsccerz 14

Hình 2.5: Quá trình lệnh thực thi theo pipeline [3] - - - - 2 555 55+<+s<++ 14

Hình 2.6: Cấu trúc tổng quát bộ xử lý sử dung kỹ thuật pipeline - l5

Hình 2.7: Xung đột dữ liệu [3] - :¿ 22222222+z+tt2EEEEEvErrrrtrtrrrrrrrrrrrrrrrrrree l6 Hình 2.8: Gửi vượt trước dữ liệu [3] ¿¿2+++222+++++22vvvrrztrrxeerrrrkscee 17 Hình 2.9: Chèn bước trì hoãn [3] „17

Hình 2.10: Xung đột điều khiển [3] „18 Hình 3.1: Cấu trúc tông quát của bộ xử lý hỗ trợ chế độ giám s 20 Hình 3.2: Cấu trúc khối Timer „21

Hình 3.3: Cấu trúc chỉ tiết khối datapath -¿ 2c+++22222vvvrrrrrrrrrrrsee 23

Hình 3.4: Cấu trúc khối Program COunIer -¿¿++z++222++z++22+zz++zzxseez 24 Hình 3.5: Cấu trúc khối Instruction MemOrry -¿¿+22+++++22++z+zvsscez 26 Hình 3.6: Cấu trúc khối Register File .-: ¿++©2++222v+++etvvvvresrrvsrrerrr 27

Hình 3.7: Cấu trúc khối Sign extend -¿¿+2++++22EE+++222E++etrtrrxerrrrrkscee 29

Hình 3.8: Cầu trúc khối ALU control -¿-+z+2++z+22++z+t2zv+z+zvvszrzsrr 30 Hình 3.9: Cấu trúc khối AILU ¿+2++++22V++++EEE+++ttEEEE+vetEEEvrrerrrrrrrrrr 33

Hình 3.10: Cấu trúc khối Data Memory -c2¿+2cccvccvscrrcrsscecrcsec r 3Õ

Hình 3.11: Cấu trúc khối Branch_COmp ¿+ Street 38 Hình 3.12: Cấu trúc khối Branch_control - ¿2++++22+++++22++z++zvxseez 4I Hình 3.13: Cấu trúc khối Hazard Detection Unit ¿©2scz+2c5scczzz 43

Hình 3.14: Cấu trúc khối Branch_fwd - -: 222v2++++tcvvvvvvrrrrerrrrrrvrev 45

Hình 3.15: Cấu trúc khối Bypass 22222+++222EEEEvrrrirtrtrtrtrrrrrrrrrrrrrrev 47 Hình 3.16: Cầu trúc khối id_bypass -¿:222+2z2V22++ttEEEEvrettrrvrrsrrrrrrrrrr 50

Hình 3.17: Cấu trúc thanh ghi IF_ID -+22222E2+vv++z+tttvvvvsecccee 53 Hình 3.18: Cấu trúc thanh ghi ID_ EXX - che 55

Hình 3.19: Cấu trúc thanh ghi EX_MEM c222c++22 2v vvvrrrrrrrrrrrrrrrree 59

Trang 13

Hình 3.20: Cấu trúc thanh ghi MEM_WH LH HH HH Hư 61

Hình 3.21: Cấu trúc khối Reason Exception - 2s + ++z+xzxerxerxerxrrsrxee 62

Hình 3.22: Cấu trúc khối System Register File - 2 2+ 2 xecxs£xsrersxez 65 Hình 3.23: Cấu trúc thanh ghi sepc - 2: 2¿+¿+2++2E++EE+2Ex2EEtrkterkezrxerrecree 69 Hình 3.24: Cấu trúc thanh ghi scause 2- 2222 E+E+£E£+EE+EE+EEezEezEesrxerxerex 70

Hình 3.25: Cấu trúc thanh ghi sstatus - 2-22 22 E+SE+2E£2EE+EEtEEerEEzEEerxerkerex 70

Hình 3.26: Cấu trúc thanh ghi sie - 2-2 2S +E£SE#EE#EESEEEEEEEEZEEEEEEEerkerkrrkrree 71 Hình 3.27: Cấu trúc thanh ghi stveC c.ccecccccccsscsssesessescssessessessesscssessesscsssessessessesseaee 71 Hình 3.28: Cấu trúc thanh ghi Cur_ImOd€_ TB - c5 5 332111 EEEssrersereree 72 Hình 3.29: Cấu trúc thanh ghi ecall_reg -:-2¿©2¿5¿22+2x++£x++zxzrxerxeeree 73 Hình 3.30: Cấu trúc thanh ghi sret_from_ calÏ_ reg, «<< <+ss+sseeesee 74 Hình 3.31: Cấu trúc khối PC_handling_exc_addr 2-2 s+2s£+zs+cs+zxzsz 74 Hình 3.32: Cấu trúc khối PC_return_addr - cccc+cccccxeererrverrrrkerrre 76 Hình 3.33: Cấu trúc khối Control Unit ¿22 + >x+2+++££+£++zxtzx++xe+rxerxezez 77

Hình 4.1: Bộ test rv32ui cho tập lệnh RV321 oo ececeseeseeseeseeeeeeeeeeeeeeeeeeseeaeeneens 86

Hình 4.2: Cấu trúc bên trong của | tập tin kiểm tra cho lệnh “ađđ” 87

Hình 4.3: Nhãn fail, pass ở cuối mỗi tập tin kiỂm tra oe eeceecseccsessseessecstesseesseesseens 88 Hình 4.4: Cấu trúc bộ chương trình kiểm tra ngoại 16 - ¿2s szxz+sz 89 Hình 4.5: Kết quả kiểm tra giai đoạn trước tổng hop luận lý với 37 lệnh 90

Hình 4.6: Giá trị các thanh ghi ở giai đoạn trước tong hop luận lý 92

Hình 4.7: Giá trị các ô nhớ ở giai đoạn trước tông hợp luận lý 92

Hình 4.8: Waveform mô tả hoạt động của bộ xử lý với lệnh ECALL 93

Hình 4.9: Waveform mô tả hoạt động của bộ xử lý với lệnh SRET 94

Hình 4.10: Waveform mô tả chế độ hoạt động của bộ xử lý sau lệnh ECALL 94

Hình 4.11: Waveform mô tả vị trí trả về của bộ xử I0 95

Hình 4.12: Waveform mô tả việc xử lý lệnh bắt hợp pháp (1) «« 95

Hình 4.13: Waveform mô tả việc xử lý lệnh bat hợp pháp (2) - - 96

Hình 4.14: Waveform mô tả việc xử ly software 1nf€rrUpI . « «<< «<<s<s++ 96 Hình 4.15: Waveform mô tả kết quả khi thực thi các lệnh CSR - 97

Hình 4.16: Waveform mô tả việc xử lý timer interrupt «55s «<< £++ss++ 98

Trang 14

Hình 4.17: Waveform mô tả việc kích hoạt timer interrupt ở User mode 98

Hình 4.18: Waveform mô tả việc xử ly timer interrupt (Ï) - ««+ss«<+<<s++ 99 Hình 4.19: Waveform mô tả việc xử lý timer interrupt (2) - - «<< s+++sss+ 99 Hình 4.20: Kết quả kiểm tra giai đoạn sau tông hợp luận lý với 37 lệnh 100

Hình 4.21: Giá trị các ô nhớ ở giai đoạn tổng hợp sau luận lý - 101

Hình 4.22: Waveform xử lý timer interrupt ở chế độ giám sát (1) 102

Hình 4.23: Waveform xử ly timer interrupt ở chế độ người dùng (2) 102

Hình 4.24: Waveform xử lý lệnh bat hợp pháp - - 2 s2 s2 ++£z+sz+xz£: 103 Hình 4.25: Tần số hoạt động tối đa của bộ xử lý - ¿:- ++cx+c+xzrrrerrees 103 Hình 4.26: Mạch kiểm tra trên FPGA - - 2k k+EEEE‡EEEEEESEEEEEEEEEEEkrkerkrkerkree 104 Hình 4.27: Bộ test_1 kiểm tra hoạt động của lệnh “add” trên FPGA 106

Hình 4.28: Kết quả giá trị mong đợi của thanh ghi -2- 2 2 s+sz+£z+cseẻ 106 Hình 4.29: Giá trị trong thanh ghi x4 được xuất ra trên FPGA . -: 107

Hình 4.30: Giá trị trong thanh ghi x10 được xuất ra trên FPGA : 107

Hình 4.31: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (1) -. - 108

Hình 4.32: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (2) «+ «<+ 108 Hình 4.33: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (3) -«+- 109

Hình 4.34: Hình anh kiểm tra xử lý ngoại lệ trên FPGA (4) -.-« - «<2 109 Hình 4.36: Hình anh kiêm tra xử lý ngoại lệ trên FPGA (Š) .-‹ -<<- 110 Hình 4.35: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (6) .-« -«<2 110 Hình 4.37: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (7) - : - 110

Hình 4.38: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (8) -«- 111

Hình 4.39: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (9) - : - 111

Trang 15

DANH MỤC BANG

Bang 1.1: Các lệnh cơ bản thuộc kiến trúc tập lệnh R'V321 2-2-5525: 2Bảng 2.1: Cấu trúc các định dạng lệnh RỶV32l .-SSĂ St eeee 10Bảng 2.2: Cau trúc lệnh ECALL và SRETT 2-22 5¿2+2££+£x++£xzzxzxesrxe 10Bảng 2.3: Cấu trúc các lệnh truy cập thanh ghi hệ thống 5-52 52 11Bang 2.4: Chức năng 37 RV32I và 6 lệnh hệ thong 2-2-5 5 s2 s+£+2 5+2 11Bảng 3.1: Tín hiệu input va output khối Tïmer 2- 22 5c 5+ sz2zx2z++zx+srsz 21Bang 3.2: Trang thái hoạt động của khối Timer - - 2 2 2 x+2E£+£e+£x+zxzsz 22Bảng 3.3: Tín hiệu input và output của khối Program Counter -s¿ 24Bang 3.4: Trạng thái hoạt động của khối Program CounIer - 5-22 s2 25Bảng 3.5: Tín hiệu input và output của khối Instruction Memory - 26Bảng 3.6: Trạng thái hoạt động của khối Instruction Memory - 5: s2 26Bảng 3.7: Tín hiệu input và output của khối Register File . : 5¿ 27Bang 3.8: Trang thái hoạt động khối Register File 2-2 2sz+zz+cxszxzsz 28Bảng 3.9: Tín hiệu input và output của khối Sign extend 5-5 sec ss2 29

Bang 3.10: Các giá tri tc thỜI - + c1 111211113111 91 11 1119 HH ng ng 29

Bảng 3.11: Tín hiệu input và output của khối ALU control .: -: =5+ 30Bảng 3.12: Trạng thái hoạt động khối ALU control -¿-s- + s+s+s+sexs+x+zezezxzsez 31Bảng 3.13: Tín hiệu input va output của khối ALLU -:-2¿©¿©cs¿5c+>s+e=s+ 33Bang 3.14: Tín hiệu điều khién thực thi các phép toán trong khối ALU 35Bang 3.15: Tín hiệu input và output của khối Data Memory -2- 36Bang 3.16: Trạng thái hoạt động khối Data Memory khi lưu đữ liệu 37Bảng 3.17: Trạng thái hoạt động khối Data Memory khi đọc dit liệu 37Bảng 3.18: Tín hiệu input va output của khối Branch COITD ĂcSS« + 38Bang 3.19: Trang thái hoạt động của khối Branch_comp -. :- ¿25+ 40Bảng 3.20: Tín hiệu input va output của khối Branch_control -:-¿ 41Bang 3.21: Trạng thái hoạt động của khối Branch control . ¿- ¿25+ 42Bang 3.22: Tín hiệu input va output của khối HDU 2-2-5 5 s2 s+£s2 5+2 43Bảng 3.23: Hoạt động của khối HDU đối với các lệnh RV321 - 45

Bảng 3.24: Hoạt động của khối HDU đối với lệnh hệ thống - 45

Trang 16

Bảng 3.25: Tín hiệu input và output của khối Forward Unit Branch - 46

Bảng 3.26: Trạng thái hoạt động của khối Branch_ fwd (1) - cs-sesecxsxz 47 Bảng 3.27: Trạng thái hoạt động của khối Branch _fWd (2) ccssxscecscxz 47 Bảng 3.28: Tín hiệu input và output của khối Bypass .2 5¿55+ 552552 48 Bang 3.29: Trạng thái hoạt động của khối Bypass 2- 5 ©522cscxszxczez 49 Bang 3.30: Tín hiệu input và output của khối ¡d_bypass - 2- 25555552 50 Bảng 3.31: Trạng thái hoạt động của khối id_bypass (1) 5-5 sec 5s2 51 Bang 3.32: Trang thái hoạt động của khối id_bypass (2) -. 5-5 s+csz 5+2 52 Bang 3.33: Tin hiệu input va output của thanh ghi IF_ ID - s5 55+ <<s<++<ss+ 53 Bang 3.34: Tín hiệu input va output của thanh ghi ID_EX - -<+-+2 55 Bảng 3.35: Tín hiệu input và output của thanh ghi EX_ MEM - - -«- 59

Bảng 3.36: Tín hiệu input va output của thanh ghi MEM_WB «- 61

Bảng 3.37: Tín hiệu input và output của khối Reason Exception - 63

Bang 3.38: Nguyên lý hoạt động của khối Reason Exception - 5: s¿ 63 Bảng 3.39: Mô tả các ngoại lỆ -. - <6 c1 1 HH TH ngư 64 Bảng 3.40: Tín hiệu input va output của khối System Register File - 65

Bảng 3.41: Các giá tri CSR truy cập vào các thanh ghi hệ thống - 69

Bang 3.42: Giá trị của tường vector mode khi xảy ra ngoại lỆ - -‹- 72

Bảng 3.43: Tín hiệu input và output khối PC_handling_exc_addr 74

Bảng 3.44: Trạng thái hoạt động của khối PC_handling_exc_addr - 75

Bảng 3.45: Tín hiệu input và output của khối PC_ return_addr - 76

Bang 3.46: Trạng thái hoạt động của khối PC_ return_addr -z-s 77 Bảng 3.47: Tín hiệu input va output khối Control Unit -. -¿ s¿sz55+2=s+ 78 Bang 3.48: Trạng thái hoạt động của khối Control Unit 2 s2 s52 83 Bang 4.1: Kịch bản kiểm tra cho quá trình mô phỏng của bộ xử lý - 85

Bảng 4.2: Kết quả mô phỏng tín hiệu khối Control Unit khi thực thi lệnh 90 Bảng 4.3: So sánh kết quả 3 giai đoạn mô phỏng 2:2 5+csz2z++css+¿ 112

Bảng 4.4: Kết quả so sánh với đề tài nghiên cứu User Mode Interrupt: A Must for

Securing Embedded SŠySf€TNS G1 11H HH ng ng ệp 112

Bảng 4.5: Kết quả so sánh với dé tài Bộ xử ly RISC-V hỗ trợ chế độ giám sát 1 14

Trang 17

Bảng 4.6: Kết quả so sánh với dé tai “Open-Source RISC-V Processor IP Cores for

FPGAs — Overview and Evaluation” ccescceesecesseceneeeeneeececeaceceaeeesaeeeneeeatersas 115

Trang 18

DANH MỤC TỪ VIET TAT

FPGA Field-Programmable Gate Array

RISC-V Reduced Instructions Set Computer V

RV32I Reduced Instructions Set Computer V 32-bit Instruction

UM User Mode

SM Supervisor Mode

HM Hypervisor Mode

MM Machine Mode ABI Application Binary Interface SBI Supervisor Binary Interface SEE Supervisor Execution Environment

Tang IF Instruction Fetch stage

Tang ID Instruction Decode stage

Tang EX Execution stage

Tang MEM Memory stage

Tang WB Write Back stage

scause Supervisor Cause Register

stvec Supervisor Trap Vector Base Address Register sepc Supvisor Execution Program Counter Register sie Supervisor Interupt Enable Register

sstatus Supervisor Status Register

Trang 19

USIE User Software Interrrupt Enable

SSIE Supervisor Software Interrrupt Enable UTIE User Timer Interrupt Enable

STIE Supervisor Timer Interrrupt Enable

Trang 20

TÓM TẮT KHÓA LUẬN

Kiến trúc tập lệnh RISC-V là một kiến trúc tập lệnh mở Do đó, các côngtrình nghiên cứu và ứng dụng dựa trên kiến trúc này hiện nay rất nhiều và rất được

ưa chuộng Với một bộ xử lý kiến trúc tập lệnh RISC-V cơ bản bao gồm các khối

Control Unit, Program Counter, Instruction Memory, Register File, Immediate

Generation, ALU control, ALU va Data Memory Tuy nhiên, bộ xử ly kiến trúc tập

lệnh RISC-V hỗ trợ chế độ giám sát của nhóm thực hiện đề tai đã bổ sung thêm cáctín hiệu điều khiển cũng như các khối thực thi khác như khối Reason Exception,System Register File, nhằm phục vụ quá trình xử lý ngoại lệ và quá trình thực thi

37 lệnh thuộc kiến trúc RV32I, lệnh ECALL và 6 lệnh hệ thống khi bộ xử lý hoạt

động ở chế độ giám sát và chế độ người dùng Những bổ sung này được phát triển

dựa trên quá trình phân tích và đánh giá chỉ tiết các trạng thái hoạt động của bộ xử

lý Thêm vào đó, vì bộ xử lý được thiết kế dựa trên luồng thiết kế FPGA nên các tín

hiệu điều khiến cho từng trạng thái hoạt động của bộ xử lý trong khối Control Unitđược thiết kế theo dạng case (cầu trúc của một bộ chọn dữ liệu - mux) nhằm cải thiệnhiệu suất làm việc cho bộ xử lý Quá trình mô phỏng kết quả sẽ được thực hiện bang

cách mô phỏng chức năng và thời gian thực thi của bộ xử ly thông qua việc kiểm tra

waveform trên ModelSim và mô phỏng tự động với bộ chương trình kiểm tra V-tests Sau đó, phân tích và đánh giá hiệu suất của bộ xử lý Cuối cùng, nhóm sẽkiểm tra quá trình thực thi và hoạt động của bộ xử lý trên FPGA (DE2 kit)

Trang 21

RISC-Chương 1 TONG QUAN DE TÀI

1.1 Tổng quan tinh hình nghiên cứu

1.1.1 Tình hình nghiên cứu ngoài nước

Năm 2019, Sandro Pinto và Cesare Garlati đã công bố công trình nghiên

cứu về việc áp dụng quá trình xử lý ngoại lệ ở chế độ người dùng vào hệ điều hànhnhúng thời gian thực FreeRTOS cho bộ xử lý MultiZone nhằm bảo mật những thiết

bị IOT sử dụng kiến trúc tập lệnh RISC-V [1] Kết quả nghiên cứu chỉ tập trung vàoquá trình xử lý ngoại lệ ở chế độ người dùng

1.1.2 Tinh hình nghiên cứu trong nước

Năm 2020, sinh viên An Xuân Tuấn đã thiết kế bộ xử lý 32 bit đơn chu kỳdựa trên kiến trúc RISC-V hỗ trợ chế độ giám sát [2] Kết quả bộ xử lý thực thi đúngchức năng của 37 lệnh thuộc kiến trúc RV32I, 6 lệnh hệ thông và xử lý các ngoại lệ

Tuy nhiên bộ xử lý được thiết kế đơn chu ky nên tần số hoạt động vẫn còn thấp.

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

1.2.1 Mục tiêu tong quát

Mục tiêu tổng quát của nhóm thực hiện dé tài là thiết kế một bộ xử lý 32 bit

áp dụng kỹ thuật Pipeline dựa trên kiến trúc tập lệnh RISC-V có kết hợp chế độ giám

sát và xử lý ngoại lệ.

1.2.2 Mục tiêu chỉ tiết

Từ mục tiêu tổng quát, nhóm sẽ chia thành 4 mục tiêu chỉ tiết sau:

e_ Mục tiêu thứ nhất: bộ xử lý khi ở chế độ người dùng phải thực thi được 37

lệnh cơ bản thuộc kiến trúc tập lệnh RV32I và lệnh ECALL Tương tự, khi

ở chế độ giám sát, bộ xử lý không những thực thi được 37 lệnh, lệnh ECALL

mà còn phải thực thi được 6 lệnh hệ thống, cụ thé như Bảng 1.1

Bảng 1.1: Các lệnh cơ bản thuộc kiến trúc tập lệnh RV32I

Trang 22

Định dạng lệnh Lệnh

R-type add, and, or, xor, sll, srl, slt, sltu, sub, sra

addi, andi, ori, xori, slti, sltiu, slli, srli, srai, 1b, Ih, I-type

lw, Ibu, Thu, jalr, ECALL S-type sb, sh, sw

SB-type beq, bne, blt, bge, bltu, bgeu UJ-type jal

U-type auipc, lui

, CSRRW, CSRRS, CSRRC, CSRRWI, CSRRSI, Lénh hé thong

CSRRCI, SRET

e Mục tiêu thứ hai: bộ xử ly phải xử lý được các ngoại lệ bao gồm software

interrupt, timer interrupt, các lệnh bat hợp pháp và lệnh chuyên chế độ.Trong quá trình xử lý ngoại lệ, bộ xử lý phải chuyên sang chế độ giám sát.Sau khi xử lý xong, bộ xử lý sẽ trở về chế độ phù hợp bằng cách thực thi

lệnh SRET.

e_ Mục tiêu thứ ba: đánh giá kết quả hoạt động của bộ xử lý theo luồng thiết kế

Altera FPGA Design Flow thông qua 3 giai đoạn:

o Giai đoạn trước tong hợp luận lý: mô phỏng kết quả thực thi của bộ xử

lý trên ModelSim.

o Giai đoạn sau tổng hợp luận lý: Kiểm tra thời gian và kết quả thực thi

của bộ xử lý trên ModelSim và Quartus.

o_ Giai đoạn hiện thực hóa: Kiểm tra quá trình thực thi và kết quả hoạt động

của bộ xử lý trên FPGA (DE2 kit).

e_ Mục tiêu cuối cùng: so sánh kết quả mô phỏng và thực nghiệm với các đề

tài nghiên cứu đã thực hiện.

Trang 23

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

e Phương pháp nghiên cứu tài liệu:

o Tìm hiểu lý thuyết về kiến trúc tập lệnh RISC-V

© Quá trình thực thi các lệnh của bộ xử lý.

o Phân tích, đánh giá và đưa ra các trạng thái hoạt động của bộ xử lý.

e_ Phương pháp thiết kế: Altera FPGA Design Flow

e Phuong pháp mô phỏng:

o Viết test bench mô phỏng chức năng trên Model Sim

o_ Kiểm tra thời gian thực thi của bộ xử lý trên Quartus và ModelSim

e Phương pháp thực nghiệm: Hiện thực và kiểm tra trên FPGA (sử dụng DE2

kit).

e Phương pháp phân tích, đánh giá và so sánh kết quả: Thực hiện việc so sánh

kêt quả với các đê tài nghiên cứu đã thực hiện.

Trang 24

Chương 2 CƠ SỞ LÝ THUYET

2.1 Chế độ đặc quyền

Trong tài liệu nghiên cứu về các chế độ đặc quyền của RISC-V [4], bộ xử lý

tại một thời điểm chỉ có thé chạy ở một trong 4 chế độ đặc quyền theo mức đặc quyền

tăng dân sau:

1 Chế độ người dùng (User Mode - UM): Được dùng cho các ứng dụng

người dùng.

2 Chế độ giám sát (Supervisor Mode - SM): Được dùng dé thực thi Kernel

của Hệ điều hành

3 Chế độ siêu giám sát (Hypervisor Mode - HM): Được sử dụng nhằm hỗ

trợ việc ảo hóa (Virtualization).

4 Chế độ máy (Machine Mode - MM): Day là mức đặc quyền cao nhất và

có quyền truy cập cũng như sử dụng toàn bộ tài nguyên phan cứng củacác chế độ thấp hơn Chế độ máy thường được dùng dé chay Bootloader

sẽ chuyên sang trạng thái xử lý ngoại lệ ở chế độ có mức đặc quyên cao hơn Sau khi

xử lý xong, bộ xử lý sẽ trở về tại vị trí xảy ra trap (đối với interrupt) hoặc sau vị tríxảy ra trap (đối với exception) dé tiếp tục chương trình

2.2 Bộ xử lý hai chế độ

Một bộ xử lý hiện đại thường có hai chế độ hoạt động gồm chế độ ngườidùng và chế độ giám sát như Hình 2.1

Trang 25

o_ Thực thi các ứng dụng và phần mềm của người dùng.

o Có thé chạy nhiều tiến trình cùng một lúc Mỗi tiến trình sẽ bao gồm

một ứng dụng của người dùng (Application).

o_ Quá trình thực thi của ứng dụng được mã hóa bang giao diện nhị phân

ứng dung (Application Binary Interface - ABI) dé có thể chạy các ứngdụng người dùng hoặc gửi yêu cầu cho chế độ giám sát

o_ Không có quyền truy cập vào chế độ hệ thống cũng như thực thi các

lệnh hệ thống

© Chế độ giám sát

o_ Thuộc về chế độ hệ thống

o Quản lý hoạt động của toàn bộ hệ thống bao gồm phân chia tài nguyên

cho các ứng dụng, xử lý các ngoại lệ và yêu cầu từ chế độ giám sát và

chế độ người dùng

© Bộ xử lý sẽ sử dụng Hệ điều hành dé hỗ trợ các ứng dụng chế độ

người dùng giao tiếp với chế độ giám sát

o Các yêu cau từ chế độ người dùng và chế độ giám sát sẽ được gửi tới

giao diện nhị phân chế độ giám sát (Supervisor Binary Interface

-SBD từ OS và được mã hóa thành các mã lệnh.

Trang 26

o Sau đó, các mã lệnh sẽ được gửi tới môi trường thực thi chế độ giám

sát (Supervisor Execution Environment - SEE) đề tiến hành xử lý các

yêu cầu đó

o Có quyên truy cập vào bat kỳ tài nguyên trong bộ xử lý ké cả các ứng

dụng người dùng cũng như thực thi được toàn bộ các lệnh của bộ xử

Z

lý.

2.3 Trang thái hoạt động của bộ xử lý hai chế độ

Dựa trên cơ sở lý thuyết [3] [4], nhóm đã phân tích và thiết kế ra các trạng

thái hoạt động chính của bộ xử lý kiến trúc tập lệnh RISC-V có hỗ trợ chế độ giám

sát như Hình 2.2.

Trở về chê độ người dùng

Thực thi tiến

trình chê độ người dùng

o Bộ xử lý sẽ ở chế độ người dùng và thực thi các tiến trình chế độ

người dùng bao gồm thực thi 37 lệnh cơ bản thuộc kiến trúc tập lệnh

RV32I và lệnh ECALL.

Trang 27

o Khi xảy ra ngoại lệ, bộ xử lý sẽ nhảy sang chế độ giám sát và chuyên

trạng thái hoạt động sang trạng thái xử lý ngoại lệ từ chế độ người

dùng.

©_ Trong quá trình thực thị, nếu bộ xử lý thực thi lệnh SRET thì bộ xử

lý vẫn ở chế độ người dùng

e Chế độ giám sát

o Bộ xử lý sẽ ở chế độ giám sát và thực thi các tiến trình chế độ giám

sát bao gồm thực thi 6 lệnh hệ thống, 37 lệnh cơ bản thuộc kiến trúc

tập lệnh RV32I và lệnh ECALL.

o_ Khi xảy ra ngoại lệ, bộ xử lý vẫn ở chế độ giám sát và chuyền trạng

thái hoạt động sang trạng thái xử lý ngoại lệ từ chế độ giám sát

©_ Trong quá trình thực thi, nếu bộ xử lý thực thi lệnh SRET thì bộ xử

lý sẽ trở về chế độ người dùng

e - Trạng thái xử lý ngoại lệ

o Bộ xử lý sẽ ở chế độ giám sát Đồng thời, bộ xử lý sẽ lưu lại trạng

thái hoạt động khi xảy ra ngoại lệ, xác định nguyên nhân xảy ra ngoại

lệ và tiến hành xử lý ngoại lệ

o Sau khi xử lý ngoại lệ xong, bộ xử lý sẽ trả về chế độ người dùng nếu

ngoại lệ xảy ra từ chế độ người dùng Ngược lại, bộ xử lý sẽ trả vềchế độ giám sát nêu ngoại lệ xảy ra từ chế độ giám sát

o_ Khi tiến hành xử lý 1 ngoại lệ, các thủ tục được kích hoạt như trong

Hình 2.3.

Trang 28

scause.interrupt = 1: Xác định e scause.SPP: Lưu lại chế độ lúc xảy

có ngoại lệ xảy ra ra ngoại lệ

scause.Exception_code: Lưu e sstatus.SIE: Cho phép ngắt xảy ra

nguyên nhân xảy ra ngoại lệ e sstatus.SPIE: Lưu giá trị SIE trước

như trong Bảng 3.38 đó

Xứ lý ngoại lệ

Thanh ghi sepc Thanh ghi stvec

Lưu lại giá trị PC tại vị trí chương e Nếu (Stvec.mode == Direct) thì

trình bi gián đoạn dùng làm địa PC = stvec.Base

chỉ trả ve e Nếu (Stvec.mode == Vectored) thì

PC= stvec.Base+(Exception_code*4)

Hình 2.3: Các thủ tục xử lý ngoại lệ

o Khi xử lý xong ngoại lệ (thực thi lệnh SRET), các thủ tục được kích

hoạt như sau:

v Trở về chế độ hoạt động lúc chưa xảy ra ngoại lệ sử dụng bit

sstatus.SPP.

Y Địa chỉ PC trở về vị trí lúc xảy ra ngoại lệ được lây lại từ thanh

ghi sepc.

Vv sstatus.SIE = SPIE, sstatus.SPIE = 0.

o Chi tiết về các bit cũng như thanh ghi trong quá trình xử lý ngoại lệ

được mô tả chỉ tiết trong Chương 3

Trang 29

2.4 Các định dạng lệnh thuộc kiến trúc RISC-V

Như đã đề cập trong phần 1.2.2, nhóm sẽ tập trung thiết kế bộ xử lý có khả

năng thực thi 37 lệnh RV32I, lệnh ECALL và 6 lệnh hệ thống Các lệnh này có cautrúc được mô ta như Bảng 2.1, Bang 2.2 va Bảng 2.3.

imm imm | imm

imm[10:5] rs2 rsl funct3 opcode S

[11] [4:1] | [0]

imm imm | imm

imm[10:5] rs2 rs] funct3 opcode SB

Trang 30

Bảng 2.3: Cấu trúc các lệnh truy cập thanh ghi hệ thống

Dựa vào Bảng 1.1 , 37 lệnh RV32I sé được phân chia theo các định dạng lệnh

R-type, I-type, S-type, SB-type, U-type và UJ-type Do đó, khi thực thi các lệnh này,

bộ xử lý sẽ dựa vào cấu trúc của từng định dạng lệnh như Bảng 2.1 dé xác định lệnhcần thực thi Tương tự với lệnh ECALL và 6 lệnh hệ thống, bộ xử lý cũng sẽ dựa vàocau trúc như Bảng 2.2 và Bang 2.3 dé thực thi đúng chức năng của từng lệnh

2.5 Chức năng các lệnh RV32I và lệnh hệ thống

Chức năng của các lệnh khi thực thi được mô tả như Bảng 2.4.

Bang 2.4: Chức năng 37 RV32I và 6 lệnh hệ thống

Định dạng

Lệnh Chức năng lệnh

Trang 31

ori Rird] = R[rs1] limm

xori Rird] = R[rs1]^ imm

Trang 32

beq If(R[rs1] == R[rs2]) PC = PC + {imm,1’b0}

bne If(R[rs1] != R[rs2]) PC = PC + {imm,1’b0}

blt If(R[rs1] < R[rs2]) PC = PC + {imm,1’b0}

SB-type

bge If(R[rs1]>=R[rs2]) PC = PC + {imm,1’b0}

bltu If(R[rs1] < R[rs2]) PC = PC + {imm,1’b0}

bgeu If(R[rs1] >= R[rs2]) PC = PC + {imm,1’b0}

UJ-type jal R[rd] = PC +4; PC = PC + {imm,1’b0}

Trang 33

CSRRCI R[rd] = CSR; CSR = CSR & ~imm

Trang 34

Bộ xử lý sử dung kỹ thuật pipeline sẽ thực thi đồng thời nhiều lệnh bang

cách chia chu kỳ thực thi lệnh thành các tầng (stage) Tại một thời điểm, một lệnh chỉ

được thực thi tại một tầng

Cấu trúc pipeline 5 tang được biểu diễn trong Hình 2.6 Giữa các tầng với

nhau sẽ chèn thêm thanh ghi nhằm lưu trữ dữ liệu từ đầu ra của tang trước và cung

câp cho tâng sau đó.

Thanh Thanh Thanh Thanh

Hình 2.6: Cấu trúc tổng quát bộ xử lý sử dụng kỹ thuật pipeline

Mỗi tầng ở Hình 2.6 đảm nhiệm một công việc khác nhau trong quá trìnhthực thi lệnh của bộ xử lý, gồm:

e Tang IF: Nạp lệnh từ bộ nhớ

e Tang ID: Giải mã lệnh và đọc các thanh ghi cần thiết

e Tang EX: Thực thi các phép tính hoặc tính toán địa chỉ

e Tang MEM: Truy xuất các toán hạng trong bộ nhớ

e Tang WB: Ghi kết quả vào thanh ghi

2.6.2 Các van đề của pipeline

Tình huống lệnh tiếp theo không thê thực thi trong chu kì pipeline ngay sau

đó được gọi là xung đột (hazard).

Ba nguyên nhân dẫn đến xung đột trong pipeline gồm xung đột cấu trúc(Structural hazard), xung đột dữ liệu (Data hazard) và xung đột điều khiến

(Control/Branch hazard).

15

Ũ

Trang 35

2.6.2.1 Xung đột cấu trúc (Structural hazard)

Xung đột cấu trúc xảy ra khi hai hay nhiều lệnh cùng truy xuất vào một tài

nguyên phan cứng tại cùng một thời điểm

Giải pháp: sử dụng riêng 2 bộ nhớ dành cho tập lệnh và dữ liệu.

2.6.2.2 Xung đột dữ liệu (Data hazard)

Xung đột dữ liệu xảy ra khi lệnh sau phụ thuộc vào việc hoàn thành truy cập dữ liệu của lệnh trước đó.

Xét ví dụ về nguyên nhân xảy ra xung đột dữ liệu ở Hình 2.7

sẽ đọc giá trị từ x2 Thanh ghi x2 được cập nhật giá tri tại giai đoạn WB (ghi kết quả

vào thanh ghi đích) ở chu kỳ clock thứ 5 Vậy tất cả các yêu cầu đọc giá trị từ thanh

ghi x2 trước chu ky clock thứ 5 sẽ gây ra xung đột dữ liệu.

Giải pháp:

e Sử dụng gửi vượt trước (Forwarding) kết quả ngay sau khi giá trị được

tính toán hoặc được lưu vào bộ nhớ, không cần chờ đến khi kết quả

16

Trang 36

được lưu vào thanh ghi Dựa vào Hình 2.8, kết quả của lệnh add đã có

sau tang EX Thay vì phải đợi đến tang WB dé kết quả được ghi vào

thanh ghi, ta có thé lay kết quả đã được tính toán sau tang EX làm giá

trị cho toán hạng đâu vào của lệnh sub phía sau.

e Khi load một giá trị từ bộ nhớ ra thanh ghi, ít nhất phải sau tang MEM

giá trị tại ô nhớ mới được xuất ra và nạp vào thanh ghi Tuy nhiên nếu

lệnh ngay sau đó yêu cầu giá trị chưa được load ra này làm đầu vào chokhối tính toán sẽ dẫn đến xung đột dữ liệu kiêu load-use Vì vậy trường

hợp này sẽ sử dụng chèn bước trì hoãn (stall và chèn bubble) như trong Hình 2.9.

Trang 37

2.6.2.3 Xung đột điều khiển (Control/Branch hazard)

Xung đột điều khiển xảy ra khi một lệnh rẽ nhánh được thực hiện và bộ xử

lý sẽ không biết lệnh tiếp theo phải nạp là lệnh nào vì tại các thời điểm nạp lệnh chưa

xác định được kết quả của lệnh rẽ nhánh đó.

Xét ví dụ về xung đột điều khiển ở Hình 2.10

Time (in clock cycles) =

e Sử dụng dự đoán rẽ nhánh tĩnh: Luôn luôn dự đoán không thực hiện rẽ

nhánh (Predict branch not taken) và thực thi tuần tự các lệnh phía sau.Sau khi tính toán chính xác nếu dự đoán sai sẽ xóa các lệnh đã nạp vàotang IF và tang ID (flush)

Như trong Hình 2.10, ta có thé thay các số bên trái lệnh (40, 44, 48 ) là

địa chỉ của các lênh Vì lệnh beq hoàn tất việc so sánh và quyết định có nhảy hay

không ở chu kỳ clock thứ 4, nên 3 lệnh tuần tự theo sau (and, or và add) sẽ được tìmnạp và bắt đầu thực thi Nếu lệnh beq được thực thi sẽ nhảy đến địa chỉ 72 xử lý lệnh

ld Bên cạnh đó sẽ xóa 3 lệnh tuần tự theo sau (flush và set tín hiệu điều khiến về 0)

18

Trang 38

Chương 3 THIẾT KE HE THONG

độ giám sát và xử lý ngoại lệ như Hình 3.1.

19

Trang 40

Hình 3.2: Cấu trúc khối Timer

Các tín hiệu input va output được mô tả trong Bảng 3.1.

Bảng 3.1: Tín hiệu input và output khối Timer

ˆ Loại tín | Độ `

Tín hiệu Mô tả

hiệu rộng clk input 1 bit | Tín hiệu clock của bộ xử lý TSf input 1 bit | Tín hiệu reset của bộ xử lý

Tín hiệu cho phép load giá trị ban đầu của khối

load input 1 bit

Timer

enable input 1 bit | Tín hiệu kích hoạt hoạt động khối Timer

mode input 1 bit | Tin hiéu chon ché d6 hoat động

data input | 4bit | Giá trị ban đầu tùy chon cho khối Timer

inter timer | output | 1 bit | Tín hiệu nhận biết timer interupt

21

Ngày đăng: 23/10/2024, 10:15

TỪ KHÓA LIÊN QUAN