Chương 1. TONG QUAN DE TTÀII. Tổng quan tình hình nghiên COU. Tinh 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 đề tài. Mục tiêu tổng quát. Mục tiêu chỉ tiết.
Phương pháp nghiên cứỨu.- -- + ++++x+E+EvEvE+kekertrrkekrkererkrkrkerrre 4 Chương 2. Chế độ đặc quyên. Bộ xử lý hai chế độ. Trạng thái hoạt động của bộ xử lý hai chế độ.
Các định dạng lệnh thuộc kiến trúc RISC-V. _ Chức năng các lệnh RV32I và lệnh hệ thống "“ -. Kỹ thuật pipeline. Các vấn đề của pipeline.1 Xung đột cấu trúc (Structural hazard) .2 Xung đột dữ liệu (Data hazard).
Xung đột điều khiển (Control/Branch hazard). THIET KE HE THONG. _ Thiết kế hệ thống tổng quát. _ Thiết kế hệ thống chỉ tiết.
Khối Program Counter 3. Khối Instruction Memory. Khối Register File. Khối Sign extend.
Khối ALU control. Khối Data Memory. Khối Branch _COMPevesOO 3. Khối Branch _€onITOI.
Các khối xử lý dành cho pipeline. Khối Hazard Detection Unit (HDU). Khối Branch Forward Unit.4 Khối id bypass. Các thanh ghi pipeline.
Các khối xử lý ngoại lệ. Khối Reason ExceptionsÔ2 3. Khối System Register Eile. Khối PC_handling_exc_ addr.
Khối PC_return_addi. Khối Control Unit.---c-:©2222+c22E2S+tSEEEEerrrrrkerrrrrrrvee 71 Chương 4. MO PHONG VÀ ĐÁNH GIA KET QUA. Bộ chương trình kiêm tra ngoại 16.
— Giai đoạn trước tông hợp luận lý. Giai đoạn sau tổng hợp luận lý. __ Giai đoạn hiện thực trên FPGA. Kiểm tra trên FPGA với bộ test_.
Kiểm tra trên FPGA với bộ test_2 4. So sánh kết quả thực thi 3 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.
Hướng pháttriển.-ccc+cccvrrrrrrrrrrrrrrtrrrrrrrrrrrer 16 TÀI LIEU THAM KHAO. s22 +2<c22it+eeeSEttrcrzEEttrrrrvrtrrrrrrre 117 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ế độ.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 .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].6: Cấu trúc tổng quát bộ xử lý sử dung kỹ thuật pipeline.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].9: Chèn bước trì hoãn [3].10: Xung đột điều khiển [3].1: Cấu trúc tông quát của bộ xử lý hỗ trợ chế độ giám s .2: Cấu trúc khối Timer.3: Cấu trúc chỉ tiết khối datapath.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.6: Cấu trúc khối Register File .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.11: Cấu trúc khối Branch_COmp .12: Cấu trúc khối Branch_control.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.15: Cấu trúc khối Bypass.16: Cầu trúc khối id_bypass.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.19: Cấu trúc thanh ghi EX_MEM.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.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.28: Cấu trúc thanh ghi Cur_ImOd€_ TB.29: Cấu trúc thanh ghi ecall_reg .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.2: Cấu trúc bên trong của | tập tin kiểm tra cho lệnh “ađđ”.3: Nhãn fail, pass ở cuối mỗi tập tin kiỂm tra oe.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.6: Giá trị các thanh ghi ở giai đoạn trước tong hop luận lý .7: Giá trị các ô nhớ ở giai đoạn trước tông hợp luận lý .8: Waveform mô tả hoạt động của bộ xử lý với lệnh ECALL.9: Waveform mô tả hoạt động của bộ xử lý với lệnh SRET.10: Waveform mô tả chế độ hoạt động của bộ xử lý sau lệnh ECALL.11: Waveform mô tả vị trí trả về của bộ xử I0.12: Waveform mô tả việc xử lý lệnh bắt hợp pháp (1).13: Waveform mô tả việc xử lý lệnh bat hợp pháp (2) .14: Waveform mô tả việc xử ly software 1nf€rrUpI.15: Waveform mô tả kết quả khi thực thi các lệnh CSR.16: Waveform mô tả việc xử lý timer interrupt .17: Waveform mô tả việc kích hoạt timer interrupt ở User mode.18: Waveform mô tả việc xử ly timer interrupt (Ï).19: Waveform mô tả việc xử lý timer interrupt (2).20: Kết quả kiểm tra giai đoạn sau tông hợp luận lý với 37 lệnh.21: Giá trị các ô nhớ ở giai đoạn tổng hợp sau luận lý .22: Waveform xử lý timer interrupt ở chế độ giám sát (1).23: Waveform xử ly timer interrupt ở chế độ người dùng (2).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.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.30: Giá trị trong thanh ghi x10 được xuất ra trên FPGA.31: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (1) .32: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (2) .33: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (3) .34: Hình anh kiểm tra xử lý ngoại lệ trên FPGA (4) .36: Hình anh kiêm tra xử lý ngoại lệ trên FPGA (Š).35: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (6) .37: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (7) .38: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (8) .39: Hình ảnh kiểm tra xử lý ngoại lệ trên FPGA (9) .----:--- 111 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.1: Cấu trúc các định dạng lệnh RỶV32l.-SSĂ St eeee 10 Bảng 2.2: Cau trúc lệnh ECALL và SRETT.3: Cấu trúc các lệnh truy cập thanh ghi hệ thống .4: Chức năng 37 RV32I và 6 lệnh hệ thong .1: Tín hiệu input va output khối Tïmer.--2- 22 5c 5+ sz2zx2z++zx+srsz 21 Bang 3.2: Trang thái hoạt động của khối Timer.3: Tín hiệu input và output của khối Program Counter.4: Trạng thái hoạt động của khối Program CounIer.5: Tín hiệu input và output của khối Instruction Memory.6: Trạng thái hoạt động của khối Instruction Memory.7: Tín hiệu input và output của khối Register File.8: Trang thái hoạt động khối Register File.-- 2-2 2sz+zz+cxszxzsz 28 Bả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.12: Trạng thái hoạt động khối ALU control.-¿-s- + s+s+s+sexs+x+zezezxzsez 31 Bảng 3.13: Tín hiệu input va output của khối ALLU.14: Tín hiệu điều khién thực thi các phép toán trong khối ALU.15: Tín hiệu input và output của khối Data Memory.16: Trạng thái hoạt động khối Data Memory khi lưu đữ liệu.17: Trạng thái hoạt động khối Data Memory khi đọc dit liệu.18: Tín hiệu input va output của khối Branch COITD .19: Trang thái hoạt động của khối Branch_comp.20: Tín hiệu input va output của khối Branch_control.21: Trạng thái hoạt động của khối Branch control.22: Tín hiệu input va output của khối HDU.23: Hoạt động của khối HDU đối với các lệnh RV321.24: Hoạt động của khối HDU đối với lệnh hệ thống.25: Tín hiệu input và output của khối Forward Unit Branch .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) .28: Tín hiệu input và output của khối Bypass.29: Trạng thái hoạt động của khối Bypass .30: Tín hiệu input và output của khối ¡d_bypass.31: Trạng thái hoạt động của khối id_bypass (1) .32: Trang thái hoạt động của khối id_bypass (2) .33: Tin hiệu input va output của thanh ghi IF_ ID.34: Tín hiệu input va output của thanh ghi ID_EX .35: Tín hiệu input và output của thanh ghi EX_ MEM.36: Tín hiệu input va output của thanh ghi MEM_WB.37: Tín hiệu input và output của khối Reason Exception.38: Nguyên lý hoạt động của khối Reason Exception.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 .41: Các giá tri CSR truy cập vào các thanh ghi hệ thống.42: Giá trị của tường vector mode khi xảy ra ngoại lỆ.43: Tín hiệu input và output khối PC_handling_exc_addr.44: Trạng thái hoạt động của khối PC_handling_exc_addr.45: Tín hiệu input và output của khối PC_ return_addr.46: Trạng thái hoạt động của khối PC_ return_addr.47: Tín hiệu input va output khối Control Unit.48: Trạng thái hoạt động của khối Control Unit.1: Kịch bản kiểm tra cho quá trình mô phỏng của bộ xử lý .2: Kết quả mô phỏng tín hiệu khối Control Unit khi thực thi lệnh .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.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 DANH MỤC TỪ VIET TAT Dạng viết tắt Dạng đầy đủ 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 USIE User Software Interrrupt Enable SSIE Supervisor Software Interrrupt Enable UTIE User Timer Interrupt Enable STIE Supervisor Timer Interrrupt Enable 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 ư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ác tí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, .