Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

ĐẠI HỌC QUỐC GIA TP.

HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO TIỂU LUẬN THỰC TẬP ĐIỆN TỬ 2

ĐỀ TÀI: THUYẾT TRÌNH RISC – V

GVHD: Nguyễn Phạm Minh Luân

Nhóm 07 – lớp L10

SVTH: Nguyễn Thành Đạt MSSV: 2012939

Dương Quang Tú 2014967

Lê Công Danh 2012778

TP. HỒ CHÍ MINH, THÁNG 4 NĂM 2023


STT Mã số SV Họ Tên Nhiệm vụ được phân công
1 2012939 Nguyễn Thành Đạt Soạn nội dung, powerpoint
2 2014967 Dương Quang Tú Thuyết trình
3 2012778 Lê Công Danh Soạn nội dung
I giới thiệu

RISC-V là một kiến trúc tập lệnh (Instruction Set Architecture - ISA) phần cứng
mã nguồn mở dựa trên kiến trúc tập lệnh máy tính với tập lệnh đơn giản hóa ( Reduced
Instructions Set Computer - RISC).

1 câu lệnh của RISC – V có 32 bit, 64 bit, 128 bit, nhưng ở phần trình bày này
chúng mình chỉ khảo sát loại 32 bit (word). Ngoài ra, trong RISC – V có 32 thanh ghi
32 bit tương ứng với x0 – x31, thanh ghi x0 luôn có giá trị là 0. Vì các biến được lưu
trong thanh ghi, mà thanh ghi thì nằm trong phần cứng nên khi truy cập dữ liệu thì thanh
ghi trong phần cứng truy cập nhanh hơn so với DRAM hay SRAM.

Hình 1: Bảng tập lệnh RISC – V

II. Single cycle RISC – V

Hình 2: single cycle RISC – V


PC: lưu trữ địa chỉ của câu lệnh

Instrmem: nơi lưu trữ nội dung của câu lệnh

Regfile: chứa nội dung 32 thanh ghi 32 bit, rs1_addr, rs2_addr, rd_data 5 bit từ
câu lệnh để lựa chọn 1 thanh ghi. Chân rd_data là nội dung thanh ghi được lưu, rd_wren
= 1 thì lưu nội dung vô thanh ghi rd. rs1_data và rs2_data là nội dung xuất ra của thanh
ghi rs1 và rs2

Immgen: tạo giá trị đủ 32bit để thực hiện các câu lệnh

BRC: so sánh giá trị rs1_data và rs2_data, cho kết là rs1_data < rs2_data (br_less
=1) hoặc rs1_data = rs2_data (br_equal =1). Ngoài ra, khối này còn có thể so sánh giá
trị có dấu hoặc không dấu (br_unsigned = 1).

ALU: thực hiện các phép toán: cộng, trừ, or, and, xor, dịch trái, dịch trái không
dấu, dịch phải.

LSU: nơi lưu trữ nội dung thực hiện chương trình, có memory map như sau

Hình 3: Phân vùng địa chỉ của LSU


Dựa vào chức năng của các câu lệnh mà ta chia thành 4 loại câu lệnh: R, I, B, S

Datapath của câu lệnh R:


0000000 Rs2 Rs1 000 Rd 0110011 Add
0100000 Rs2 Rs1 000 Rd 0110011 Sub
0000000 Rs2 Rs1 001 Rd 0110011 Sll
0000000 Rs2 Rs1 010 Rd 0110011 Slt
0000000 Rs2 Rs1 011 Rd 0110011 Sltu
0000000 Rs2 Rs1 100 Rd 0110011 Xor
0000000 Rs2 Rs1 101 Rd 0110011 Srl
0100000 Rs2 Rs1 101 Rd 0110011 sra
0000000 Rs2 Rs1 110 Rd 0110011 Or
0000000 Rs2 Rs1 111 Rd 0110011 and

Ví dụ:

Add x0, x1, x2 x0 = x1 + x2

x1 = 2 , x2 = 2
0000000 00010 00001 000 00000 0110011
Rs2 =2 Rs1 = 1 add Rd = 0 OP - R

Hình 4: datapath của câu lệnh R

Datapath của câu lệnh I:


Imm[11:0] Rs1 000 rd 0010011 ADDI
Imm[11:0] Rs1 010 rd 0010011 SLTI
Imm[11:0] Rs1 011 rd 0010011 SLTIU
Imm[11:0] Rs1 100 rd 0010011 XORI
Imm[11:0] Rs1 110 rd 0010011 ORI
Imm[11:0] Rs1 111 rd 0010011 ANDI
0000000 Rs1 001 rd 0010011 SLLI
0000000 Rs1 101 rd 0010011 SRLI
0100000 Rs1 101 rd 0010011 SRAI
Imm[11:0] Rs1 000 rd 0000011 LB
Imm[11:0] Rs1 001 rd 0000011 LH
Imm[11:0] Rs1 010 rd 0000011 LW
Imm[11:0] Rs1 100 rd 0000011 LBH
Imm[11:0] Rs1 101 rd 0000011 LHU

Ví dụ:

ADDI x1, x2, 2 x1 = x2 + 2

X2 = 2
000000000010 00010 000 00001 0010011
2 Rs1 = 2 add Rd=2 OP - imm
Hình 5: datapath của câu lệnh I

Ví dụ:

Lw x14, 8(x2)
000000001000 00010 010 01110 0000011
Imm = 8 Rs1 = 2 LW Rd=14 Load

Hình 6: datapath của lâu lệnh Load

Datapath của câu lệnh S:


Imm[11:5] Rs2 Rs1 000 Imm[4:0] 0100011 SB
Imm[11:5] Rs2 Rs1 001 Imm[4:0] 0100011 SH
Imm[11:5] Rs2 Rs1 010 Imm[4:0] 0100011 SW

Ví dụ:

Sw x14, 8(x2)
0000000 01110 00001 010 01000 0100011
Offset [11:5] Rs2 =14 Rs1 = 2 SW Offset[4:0] STORE
Hình 7: datapath của câu lệnh Store

You might also like