Chương 1. TONG QUAN DE TÀI. Tổng quan tình hình nghiên cứu. Tình hình nghiên cứu ngoải nước.
_ Tình hình nghiên cứu trong nưỚC. Mục tiêu (Ct HH2. Mục tiêu tổng quát. Mục tiêu chỉ tiết.
Phương pháp nghiên CỨU.- tt +EEk+k#EEEvkeEekekekrkrkrrrrrereerkrkree 4 Chương 2. Định nghĩa bộ xử lý. Bộ xử lý hai chế độ. Trạng thái hoạt động của bộ xử lý.
Cấu trúc các lệnh thuộc kiến trúc tập lệnh RISC-V. Chức năng các lệnh thuộc kiến trúc tập lệnh RISC-V. THIẾT KE HE THÓNG.- ------22+222EE++++2EEE+ztt2EE+versrrrscee 22 3. Thiết kế hệ thống tổng quát.
Thiết kế hệ thống chỉ tiết 3. Khối Control unit. Khối Program Counter. Khối Instruction Memmory.
Kl Khối Register File. Kl hối Immediate Generation. K Khối Data MemOry. Khối Reason Exception.
Kl Khối Stack veccccccccsssssessessccsssssusssssscsssssessessssssnuesessccssssseeeeseesssnesees 61 3. Khối System Register File. Khối PC_handling_exc_addr. Khối PC_return_addr.cccccccrrrrrrrrrrrrrrrre 75 Chương 4.
MÔ PHONG VÀ ĐÁNH GIA KET QUẢ. Giai đoạn pre-synthesis. Giai đoạn pOS(-Synth€SiS. tt HH it 84 4.
Giai đoạn hiện thực trên FPGA. Kiểm tra test case ở giai đoạn pre-synthesis và post synthesis. Bồ sung test case kiểm tra FPGA. So sánh kết qua thực thi ba giai đoạn mô phỏng.
So sánh kết quả với các nghiên cứu đã thực hiện. KET LUẬN VÀ HƯỚNG PHÁT TRIẺN. 96 DANH MỤC HÌNH Hình 2.1: Mô hình lớp của bộ xử lý có kết hợp hai chế độ.2: Trạng thái hoạt động của bộ Xử lý .1: Câu trúc tổng quát của bộ xử lý cơ bản.---¿-©scc+ccvsccerz 22 Hình 3.4: Cấu trúc chỉ tiết khối Timer.5: Cấu trúc khối Control Unit.-----¿-222++z22222222zcz+ztrrzvsez 29 Hình 3.7: Cấu trúc khối Priority.8: Cấu trúc chỉ tiết khối PriOrity.9: Cấu trúc chỉ tiết khối datapath.--¿¿-2222cc+tccvvvvvvrrrrrrrrrrrrev 40 Hình 3.10: Cấu trúc khối Program Counter.11: Cấu trúc khối Instruction MemOry.¿:--¿2225z++222+sz++2vssc+2 42 Hình 3.12: Cấu trúc chỉ tiết khối Instruction MemoOry.--:©czz22sc+2 43 Hình 3.13: Cấu trúc khối Register Eile.14: Cấu trúc chỉ tiết khối Register File.------ccc2c+c+cccvvvvecccez 45 Hình 3.15: Cấu trúc khối Immediate Generation.---¿z+2+++2x++csz++cx# 46 Hình 3.16: Cấu trúc chi tiết khối Immdiate Generation.------¿-©ss2czs+zcs# 48 Hình 3.17: Câu trúc khối ALU control .----¿--+¿z+2+++222+++++ttvzvve+zrvxeeesrz 48 Hình 3.18: Cấu trúc chi tiêt khối ALU control.19: Cấu trúc khối ALU.20: Cấu trúc chỉ tiết khối ALU Hình 3.21: Cấu trúc khối Data Memory.22: Cấu trúc chỉ tiết khối Data Memory .23: Cấu trúc khối Reason Exception.24: Câu trúc chỉ tiết khối Reason Exception.-----:-cz+2cssczze+ 60 Hình 3.25: Cấu trúc khối Stack.26: Cau trúc chỉ tiết khối Stack.27: Cấu trúc khối System Register Eile.28: Cấu trúc chỉ tiết khối System Register File.29: Cầu trúc thanh ghi SepC.--:--¿222++++222+++tt2ESE+rettrrvrrerrrsrrrrrr 70 Hình 3.30: Cấu trúc thanh ghi scause.31: Cấu trúc thanh ghi sstatus .32: Cấu trúc thanh ghi Sip .33: Cầu trúc thanh ghi sie.34: Cấu trúc thanh ghi sie.35: Cấu trúc khối PC_handling_exc_addr.:---+2225+sc2ccsscez 74 Hình 3.36: Cấu trúc chỉ tiết khối PC_handling_exc_addr.37: Cấu trúc khối PC_return_addr.38: Cấu trúc chỉ tiết khối PC_return_addr.1: Ví dụ về độ trễ của các thành phan vật lý trong thiết k 86 Hình 4.2: Kết qua tính toán setup slack và hold slack trên tool Quartus .3: Chương trình hợp ngữ kiểm tra thanh ghi r0 của khối RF.01 DANH MỤC BANG Bảng 1.1: Các lệnh cơ bản thuộc kiến trúc tập lệnh RV321.1: Cấu trúc các định dạng lệnh R'V321.2: Cấu trúc lệnh ECALL và SRET.------cc+++222vvvvvvvesttrrrrrreererree 9 Bang 2.3: Cấu trúc các lệnh truy cập thanh ghi hệ thống .4: Chức năng các lệnh thuộc kiến trúc tập lện RISC-V.1: Tín hiệu input va ouput của bộ xử lý hỗ trợ chế độ giám sát.2: Tín hiệu input và output khối Timer.3: Trạng thái hoạt động của khối Tỉmer.4: Tín hiệu input và output khối Control Unit.5: Trạng thái hoạt động của khối Control Unit.6: Tín hiệu input va output khối Priority.----c¿©25cz+2c5s+cecz 36 Bang 3.7: Độ ưu tiên các ngoại lỆ.--- ¿c5 St sxsrteeeeierrrreOE, Bảng 3.8: Trang thái hoạt động của khôi PriOrity.--------«-c++ccc+eczeerxee 38 Bảng 3.9: Tín hiệu input và output khối Program CounIer.10: Trạng thái hoạt động của khối Program Counter.11: Tín hiệu input và output khối Instruction Memory.12: Tín hiệu input va output khối Register Eile.13: Trạng thái hoạt động khối Register File.14: Tín hiệu input và output khối Immediate Generation.15: Cấu trúc của các giá trị tức thời imm.----ccc+e+rcrvrrreerrez 47 Bang 3.16: Tín hiệu input va output khối ALU.:---c¿525scz+2csssczzz 48 Bảng 3.17: Trạng thái hoạt động khối ALU control khi thực thi các lệnh thuộc định dạng lệnh R-type .18: Trạng thái hoạt động khối ALU control khi thực thi các lệnh thuộc định dạng lệnh I-type.19: Trạng thái hoạt động khối ALU control khi thực thi các lệnh thuộc định dạng lệnh S-fype.20: Trạng thái hoạt động khối ALU control khi thực thi các lệnh thuộc định dạng lệnh SB-type.- -- tàn TH TH HH HT HH TH hiện 52 Bảng 3.21: Trạng thái hoạt động khối ALU control khi thực thi các lệnh thuộc định dang lệnh U-tYpe.22: Trạng thái hoạt động khối ALU control khi thực thi các lệnh truy cập thanh ghi hệ thống.23: Tín hiệu input và output khối ALU.-----ccccccc++cccvvveeceee 53 Bang 3.24: Tín hiệu điều khiển thực thi các phép toán trong khối ALU.25: Tín hiệu input và output khối Data Memory.26: Trạng thái hoạt động khối Data Memory.27: Tin hiệu input va output khối Reason Exception.28: Trạng thái hoạt động của khối Reason Exception.29: Tín hiệu input và output khối Stack .30: Trang thái hoạt động khối Stack.31: Các tín hiệu input va output khối Sytem Register File.32: Các giá tri CSR truy cập vào các thanh ghi hệ thống Bảng 3.33: Giá trị của trường vector mode khi xảy ra các ngoại lệ .34: Tín hiệu input va output khối PC_ handling_exc_addr.35: Trạng thái hoạt động của khối PC_handling_exc_addr.36: Tín hiệu input va output khối PC_return_addr.37: Trạng thái hoạt động của khối PC_return_addr.1: Kết quả mô phỏng các tín hiệu khối Control Unit khi thực thi các lệnh.2: Giá trị các thanh ghi trong khối Register File khi chưa mô phong.3: Kết qua mô phỏng giá trị các thanh ghi trong khối Register File .4: Giá trị các thanh ghi trong khối Data Memory khi chưa mô phỏng .5: Kết quả mô phỏng giá trị các thanh ghi trong khối Data Memory.6: Kết quả mô phỏng thời gian và tần số tối đa của bộ xử lý.7: Mô ta giá trị toán hang công thức tinh setup slack va hold slack.8: Quá trình thực thi các lệnh kiểm tra thanh ghi r0.9: Kết quả mô phỏng khối RF khi thực thi các lệnh kiểm tra thanh ghi r0 .10: So sánh kết quả ba gian đoạn mô phỏng .11: Kết quả so sánh với đề tài nghiên cứu User Mode Interrupt: A Must for Securing Embedded Systems.12: Kết quả so sánh với dé tài nghiên cứu Bộ xử lý kiến trúc MIPS32. 94 DANH MỤC TU VIET TAT Dang viết tắt Dạng đầy đủ ABI Application Binary Interface ALU Arithmetic Logic Unit ECALL Environment Call RF Register File RISC-V Reduced Instructions Set Computer V RV32I Reduced Instructions Set Computer V 32bit Instruction SBI Supervisor Binary Interface SEE Supervisor Execution Environment scause Supervisor Cause Register S€pC Supvisor Execution Program Counter Register sie Supervisor Interupt Enable Register sip Supervisor Interrupt Pending Register SM Supervisor Mode SPP Supervisor Privious Privileged bit SIE Supervisor Interrupt Enable bit sstatus Supervisor Status Register stvec Supervisor Trap Vector Base Address Register UM User Mode 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ông trì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 ưu chuộng. 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ử lý 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 dé tài đã bổ sung thêm các tín hiệu điều khiển cũng như các khối thực thi khác như khối Priority, Reason Exception, Stack, 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à 7 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 nay đượ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 con mux) nhằm cải thiện hiệ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 bằng cách mô phỏng chức năng và thời gian thực thi của bộ xử lý thông qua việc kiểm tra waveform trên ModelSim. 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). TONG QUAN DE TÀI 1. Tổng quan tình hình nghiên cứu 1. Tinh 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à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].
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. Tinh hình nghiên cứu trong nước Năm 2018, hai sinh viên Nguyễn Hoàng Dũng và Phan Gia Bảo đã nghiên cứu và thiết kế bộ vi xử lý kiến trúc MIPS32 cho bài báo cáo khóa luận tốt nghiệp [2]. Kết quả nghiên cứu đã thiết kế bộ xử lý MIPS32 có áp dụng kỹ thuật Pipeline chỉ hỗ trợ chế độ người dùng, thực thi 35 lệnh thuộc kiến trúc MIPS và không xử lý được các ngoại lệ. Mục tiêu đề tài 1.
Mục tiêu tổng quát Mục tiêu tổng quát của nhóm thực hiện đề tài là thiết kế một bộ xử lý 32 bit đơn chu kỳ 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ệ. 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 7 lệnh hệ thống, cụ thé như Error! Reference source not found.1: Các lệnh cơ bản thuộc kiến trúc tập lệnh RV32I Định dạng lệnh Lệnh Chế độ thực thi add, and, or, xor, sll, srl, slt, R-type UM va SM sltu, sub, sra addi, andi, ori, xori, slti, sltiu, I-type slli, srli, srai, lb, lh, lw, Ibu, UM va SM lhu, jalr, ECALL S-type sb, sh, sw UM va SM SB-type beq, bne, bit, bge, bltu, bgeu UM va SM UJ-type jal UM va SM U-type auipc, lui UM và SM SRET, CSRRW, CSRRS, 7 lệnh hệ thống | CSRRC, CSRRWI, CSRRSI, SM CSRRCI. © Mục tiêu thứ hai, bộ xử lý phải xử lý được các ngoại lệ bao gồm software interrupt, timer interrupt, các lệnh không hợp lệ và lệnh chuyên chế độ.
Trong quá trin!