Professional Documents
Culture Documents
L10 Nhom07
L10 Nhom07
HCM
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.
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
Ví dụ:
x1 = 2 , x2 = 2
0000000 00010 00001 000 00000 0110011
Rs2 =2 Rs1 = 1 add Rd = 0 OP - R
Ví dụ:
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
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