TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
BÁO CÁO ĐỒ ÁN
Ngành: KỸ THUẬT ĐIỆN – VIỄN THƠNG
Chun ngành: MÁY TÍNH – HỆ THỐNG NHÚNG
ĐỀ TÀI:
KIẾN TRÚC RISC-V
Giảng viên: Ths.Hoàng Anh Tuấn
Sinh viên thực hiện
Nguyễn Hữu Ân
Hồng Văn Nhật Anh
Võ Văn Chính
Nguyễn Cơng Danh
Khổng Văn Đạt
TP. Hồ Chí Minh, năm 2022
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
MỤC LỤC
I.
Giới thiệu..............................................................................................................3
1.
Lịch sử..............................................................................................................3
2.
Sự hình thành của RISC-V............................................................................4
3.
Trạng thái đặc điểm kỹ thuật.........................................................................5
II. TỔNG QUAN VỀ RISC-V................................................................................. 6
1.
Quy ước đặt tên RISC-V ISA........................................................................ 6
2.
Phần mở rộng tiêu chuẩn...............................................................................6
3.
Tập tin thanh ghi............................................................................................ 7
4.
Chế độ RISC-V............................................................................................... 8
III. Hướng dẫn RISC-V........................................................................................... 9
1.
RISC-V Reference...........................................................................................9
2.
So sánh kích thước mã giữa RISC-V và ARM...........................................12
3.
Phần mở rộng nguyên tử theo tiêu chuẩn “A” (Atomic Instructions).....13
4.
IV.
3.1.
Hoạt động bộ nhớ nguyên tử................................................................. 13
3.2.
Các hướng dẫn tải - dự trữ/ lưu trữ có điều kiện................................15
Hướng dẫn hàng rào (Fence instructions)..................................................17
Ngắt RISC-V.....................................................................................................18
1.
Khái niệm Ngắt............................................................................................. 18
2.
Ngắt vào và Thoát.........................................................................................18
3.
Thanh ghi trạng thái điều khiển ngắt......................................................... 19
3.1.
Thanh ghi trạng thái máy (mstatus)..................................................... 19
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
3.2.Thanh ghi cho phép ngắt
3.3.Thanh ghi đang chờ xử lý
3.4.Thanh ghi nguyên nhân m
3.5.Máy Bẫy Vector (mtvec)..
4.Các ưu tiên ngắt quãng................................................................
V. Thanh Ghi Điều Khiển Và Thanh Ghi Trạng Thái.......................................
1.Thanh ghi điều khiển và trạng thái (CSRs)...............................
2.Nhận dạng thanh ghi điều khiển và trạng thái (CSRs).............
3.Trạng thái máy..............................................................................
4.Bộ định thời CSRs........................................................................
5.Bộ giám sát CSRs.........................................................................
6.Bộ nhớ ảo......................................................................................
7.Bảo vệ bộ nhớ vật lý.....................................................................
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
1. Giới thiệu
2. Lịch sử
-
Thuật ngữ RISC (Reduced Instructions Set Computer - Máy tính với tập
lệnh đơn giản hóa) có từ khoảng năm 1980. Trước đó, có một số kiến thức cho
rằng máy tính đơn giản hơn có thể hiệu quả, nhưng các nguyên tắc thiết kế
không được mơ tả rộng rãi. Máy tính đơn giản, hiệu quả luôn được quan tâm
trong giới học thuật, và dẫn đến bộ hướng dẫn RISC DLX cho ấn bản đầu tiên
của kiến trúc máy tính. Phương pháp tiếp cận định lượng vào năm 1990, trong
đó David Patterson là đồng tác giả và sau đó ơng đã tham gia vào RISC- V
dun khởi. DLX được thiết kế để sử dụng cho mục đích giáo dục; các nhà học
thuật và những người có sở thích đã triển khai nó bằng cách sử dụng các mảng
cổng có thể lập trình trường, nhưng nó khơng bao giờ thực sự được dự định để
triển khai thương mại. CPU ARM , phiên bản 2 trở về trước, có tập lệnh miền
cơng cộng và vẫn được hỗ trợ bởi Bộ sưu tập trình biên dịch GNU (GCC), một
trình biên dịch phần mềm miễn phí phổ biến . Ba lõi nguồn mở tồn tại cho ISA
này, nhưng chưa bao giờ được sản xuất. OpenRISC là một ISA mã nguồn mở
dựa trên DLX, với các thiết kế RISC được liên kết và được hỗ trợ đầy đủ với các
triển khai GCC và Linux , mặc dù nó cũng có ít triển khai thương mại.
-
RISC – V (phát âm Risk V) được bắt đầu bởi dự án 3 tháng vào năm
2010 của trường Đại học California Berkeley của nhóm nghiên cứu sinh Yunsup
Lee và Andrew Waterman, Krste Asanovic. Kế hoạch này là hỗ trợ cả người
dùng học thuật và công nghiệp. David Patterson tại Berkeley đã tham gia hợp tác
với tư cách là người khởi xướng Berkeley RISC, và RISC-V là thế hệ thứ năm
cùng tên trong loạt dự án nghiên cứu hợp tác dựa trên RISC kéo dài của ông. Ở
giai đoạn này, sinh viên cung cấp phần mềm, mô phỏng và thiết kế CPU ban
đầu. Các tác giả RISC-V và tổ chức của họ ban đầu lấy nguồn tài liệu ISA và
một số thiết kế CPU theo giấy phép BSD , cho phép các tác phẩm phái sinh chẳng hạn như thiết kế chip RISC-V - mở và miễn phí, hoặc đóng và độc
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
quyền. Bản thân đặc tả ISA (tức là bảng mã của tập lệnh) đã được xuất bản vào
năm 2011 dưới dạng mã nguồn mở, với mọi quyền được bảo lưu. Báo cáo kỹ
thuật thực tế (một biểu hiện của thơng số kỹ thuật) sau đó đã được cấp phép
Creative Commons để cho phép các nhà đóng góp bên ngồi nâng cao thơng qua
RISC-V Foundation và sau này là RISC-V International.
3. Sự hình thành của RISC-V
-
Là một tổ chức phi lợi nhuận được thành lập vào tháng 8 năm 2015 để
quản lý cơng khai ISA, tiêu chuẩn hóa, bảo vệ và thúc đẩy kiến trúc tập lệnh
RISC-V mở và miễn phí cùng với hệ thống phần cứng và phần mềm để sử dụng
trong tất cả các thiết bị máy tính.
-
RISC-V Foundation có 3 chức năng chính:
Chỉ đạo sự phát triển trong tương lai của ISA.
Kiểm tra tuân thủ (kiểm tra sự phù hợp) là một kỹ thuật kiểm tra
phi chức năng được thực hiện để xác nhận xem hệ thống được phát triển có
đáp ứng các tiêu chuẩn quy định của tổ chức hay không.
Quảng bá kiến trúc tại các sự kiện trong ngành.
Tổ chức có hơn 230 thành viên đại diện cho một loạt các thị
trường.
-
Tính đến năm 2019, tổ chức này đã xuất bản các ấn phẩm tự do định
nghĩa RISC-V và cho phép sử dụng không giới hạn của ISA cho cả thiết kế phần
mềm và phần cứng. Tuy nhiên, chỉ những thành viên trả tiền của Tổ Chức RISCV mới có thể bỏ phiếu để phê duyệt các thay đổi hoặc sử dụng logo tương thích
đã đăng ký nhãn hiệu.
-
Thành viên RISC-V Foundation: Các thành viên như Qualcomm và
Samsung ở Marbella, cũng có các đại diện từ các công ty phần mềm với các
công ty như Google, công cụ Picasa và các nhà cung cấp thiết bị hỗ trợ với các
công ty như Sega, Lauterbach và IAR.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
Hình 1: Các thành viên trong RISC-V Foundation
4. Trạng thái đặc điểm kỹ thuật
Có một số đặc điểm kỹ thuật chính là user mode and privilege
mode.
User mode: phiên bản hiện tại của đặc tả User mode là phiên bản
2.2, đã bị đóng băng vào năm 2014 ở phiên bản 2.0 và kể từ phiên bản 2.0,
một số cập nhật nhỏ như các hướng dẫn CSR và FENCE.I chuyển ra khỏi
phần mở rộng cơ sở "I", một số giải thích rõ về mơ hình bộ nhớ.
Privilege mode: chỉ được phê duyệt ở phiên bản 1.11.
Thông số Debug: cũng đã được phê chuẩn ở phiên bản 0.13.
Ngồi những thơng số kỹ thuật chính cịn có các thơng số kỹ thuật
phụ đang phát triển.
*
*******
Hình 2: Trạng thái đặc điểm kỹ thuật
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
5. TỔNG QUAN VỀ RISC-V
1. Quy ước đặt tên RISC-V ISA
-
RISC-V sử dụng tiêu chuẩn quy ước đặt tên để mô tả các ISA được hỗ
trợ trong một triển khai nhất định.
-
Tên ISA định dạng: RV[###][abc…xyz]
RV: viết tắtt RISC-V.
[###]: cho biết chiều rộng của tệp thanh ghi số ngun và kích
thước của khơng gian địa chỉ người dùng.
[abc…xyz]: được sử dụng để chỉ ra tập hợp các tiện ích mở rộng
được hỗ trợ bởi quá trình thực thi.
2. Phần mở rộng tiêu chuẩn
-
Phần mở rộng xác định hướng dẫn: "I" cho số nguyên là phần mở rộng
bắt buộc duy nhất trong triển khai RISC-V và xác định 40 hướng dẫn
-
Đặc điểm kỹ thuật RISC-V xác định một số "Phần mở rộng Tiêu
chuẩn".
Tiện ích mở rộng tiêu chuẩn do RISC-V Foundation xác định và
là tùy chọn.
-
RISC-V cho phép các tiện ích mở rộng tùy chỉnh, "Non-Standard", trong
một triển khai.
Hình 3: Mô tả phần mở rộng
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
- Ví dụ:
3. Tập tin thanh ghi
-
RV32I / 64I có 32 thanh ghi số nguyên.
Thanh ghi 32 FP tùy chọn với phần mở rộng F và D.
RV32E giảm tệp thanh ghi xuống còn 16 thanh ghi số nguyên cho
các thiết bị nhúng hạn chế khu vực.
-
Chiều rộng của thanh ghi được xác định bởi ISA.
RISC-V Application Binary Interface (ABI) xác định các chức năng tiêu
chuẩn cho thanh ghi.
-
Cho phép khả năng tương tác phần mềm.
Các công cụ phát triển thường sử dụng tên ABI cho đơn giản.
Hình 4: Tập tin thanh ghi
32 thanh ghi, mỗi thanh ghi 32 bit.
x0 có dây đến khơng.
Ghi cổng được lập chỉ mục qua RW.
đang giảm dần khi WE = 1.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
Đọc các cổng được lập chỉ mục qua RA, RB.
Được đánh số từ 0 đến 31.
Có thể được gọi bằng số: x0, x1, x2,…
x31.
Quy ước, mỗi thanh ghi cũng có một
tên: x10 – x17
a0 - a7, x28 - x31
t3 - t6
Hình 5,6: Tập tin thanh ghi
4. Chế độ RISC-V
RISC-V có ba mức đặc quyền phần mềm (theo thứ tự khả năng
tăng
dần):
Chế độ người dùng (U mode).
Chế độ người giám sát (S mode).
Chế độ siêu giám sát (H mode).
Chế độ máy (M mode).
Hình 7: RISC-V Modes
Bộ xử lý chỉ có thể chạy ở một trong các chế độ đặc quyền tại một
thời
điểm.
-
Machine mode là chế độ đặc quyền cao nhất, kiểm soát tất cả các tài
nguyên vật lý và các ngắt và là chế độ chỉ được yêu cầu.
Tính linh hoạt cho phép một loạt các triển khai có mục đích từ
MCU đơn giản đến Bộ xử lý ứng dụng hiệu suất cao.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
Hình 8: Mức độ hỗ trợ của mode
-
Supervisor, Hypervisor, Machine mode đều có thanh ghi điều khiển và
thanh ghi trạng thái.
6.
Hướng dẫn RISC-V
1. RISC-V Reference
- Bộ hướng dẫn RISC-V:
Định dạng hướng dẫn cốt lõi:
31 27 26
funct7
imm[11:5]
imm[12j10:5]
imm[20
Inst
Hướng dẫn số nguyên cơ sở:
Name
add
ADD
sub
xor
or
and
sll
srl
sra
slt
sltu
addi
xori
ori
andi
slli
srli
srai
slti
sltiu
lb
SUB
XOR
OR
AND
Shift Left Logical
Shift Right Logical
Shift Right Arith*
Set Less Than
Set Less Than (U)
ADD Immediate
XOR Immediate
OR Immediate
AND Immediate
Shift Left Logical Imm
Shift Right Logical Imm
Shift Right Arith Imm
Set Less Than Imm
Set Less Than Imm (U)
Load Byte
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
lh
lw
lbu
lhu
sb
sh
sw
Load Half
Load Word
Load Byte (U)
Load Half (U)
Store Byte
Store Half
Store Word
beq
Branch ==
bne
blt
bge
bltu
bgeu
jal
jalr
lui
auipc
ecall
ebreak
Branch !=
Branch <
Branch ≤
Branch < (U)
Branch ≥ (U)
Jump And Link
Jump And Link Reg
Load Upper Imm
Add Upper Imm to PC
Environment Call
Environment Break
Phần mở rộng Nhân:
Inst
Name
mulh
mulsu
mulu
div
divu
rem
remu
MUL High
MUL High (S) (U)
MUL High (U)
DIV
DIV (U)
Remainder
Remainder (U)
mul
MUL
Mở rộng nguyên tử:
funct5
a
31
27 2
5
Inst
lr.w
sc.w
1
Name
Load Reserved
Store Conditional
Atomic Swap
amoswap.w
amoadd.w
amoand.w
amoor.w
amoxor.w
amomax.w
amomin.w
Atomic ADD
Atomic AND
Atomic OR
Atomix XOR
Atomic MAX
Atomic MIN
Phần mở rộng Dấu chấm động:
Inst
flw
fsw
fmadd.s
fmsub.s
fnmadd.s
fnmsub.s
fadd.s
fsub.s
fmul.s
fdiv.s
fsqrt.s
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
fsgnj.s
fsgnjn.s
fsgnjx.s
fmin.s
fmax.s
fcvt.s.w
fcvt.s.wu
fcvt.w.s
fcvt.wu.s
fmv.x.w
fmv.w.x
feq.s
flt.s
fle.s
fclass.s
Flt Square Root
Flt Sign Injection
Flt Sign Neg Injection
Flt Sign Xor Injection
Flt Minimum
Flt Maximum
Flt Conv from Sign Int
Flt Conv from Uns Int
Flt Convert to Int
Flt Convert to Int
Move Float to Int
Move Int to Float
Float Equality
Float Less Than
Float Less / Equal
Float Classify
rd = abs(rs1) * sgn(rs2)
rd = abs(rs1) * -sgn(rs2)
rd = rs1 * sgn(rs2)
rd = min(rs1, rs2) rd =
max(rs1, rs2) rd =
(float) rs1 rd = (float)
rs1 rd = (int32_t) rs1 rd
= (uint32_t) rs1 rd =
*((int*) &rs1) rd =
*((float*) &rs1)
rd = (rs1 == rs2) ? 1 : 0
rd = (rs1 < rs2) ? 1 : 0
rd = (rs1 <= rs2) ? 1 : 0 rd
= 0..9
Thanh ghi:
Register
x0
x1
x2
x3
x4
x5
x8
x9
x10-x11
x12-x17
x18-x27
x28-x31
f0-7
f8-9
f10-11
f12-17
f18-27
f28-31
2. So sánh kích thước mã giữa RISC-V và ARM
-
Để so sánh RISC-V với một số kiến trúc tương tự, các điểm chuẩn cũng được
xây dựng cho RMv7m, ARMv8m và ARMv8a bằng cách sử dụng GCC ARM Embedded
phiên bản 2016q1. Kích thước mã cho các đối tượng do GCC tạo ra cho mỗi kiến trúc
này được hiển thị bên dưới:
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
-
Giá trị trung bình (giá trị trung bình số học) được hiển thị trong bảng
dưới đây:
-
Trung bình, kích thước mã rất giống nhau giữa RISVC-V 32/64 và
ARMv7m / ARMv8m, với mã RISC-V 32 nhỏ hơn một chút so với các kiến trúc
khác.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
3. Phần mở rộng nguyên tử theo tiêu chuẩn “A” (Atomic Instructions)
4. Hoạt động bộ nhớ nguyên tử
- Các lệnh vận hành bộ nhớ nguyên tử (AMO) thực hiện các thao tác đọcsửa-ghi để đồng bộ hoá đa xử lý và được mã hoá bằng định dạng lệnh kiểu R.
Các lệnh AMO này tải nguyên tử một giá trị dữ liệu từ địa chỉ trong rs1, đặt giá
trị vào thanh ghi rd, áp dụng toán tử nhị phân cho giá trị được tải và giá trị ban
đầu trong rs2, sau đó lưu trữ kết quả trở lại địa chỉ trong rs1. AMO có thể hoạt
động trên các từ 64-bit (chỉ RV64) hoặc 32-bit trong bộ nhớ. Đối với RV64,
AMO 32 bit luôn ký-mở rộng giá trị được đặt trong rd và bỏ qua 32 bit trên của
giá trị ban đầu của rs2.
-
Đối với AMO, phần mở rộng A yêu cầu địa chỉ được giữ trong rs1 được
căn chỉnh tự nhiên theo kích thước của tốn hạng (tức là căn chỉnh tám byte cho
các từ 64 bit và căn chỉnh bốn byte cho các từ 32 bit). Nếu địa chỉ không được
căn chỉnh tự nhiên, một ngoại lệ lệch địa chỉ hoặc một ngoại lệ lỗi truy cập sẽ
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
được tạo ra. Ngoại lệ lỗi truy cập có thể được tạo ra cho một truy cập bộ nhớ mà
nếu khơng sẽ có thể hồn thành ngoại trừ việc điều chỉnh sai, nếu truy cập bị
lệch không nên được mơ phỏng.
-
Các hoạt động được hỗ trợ là hốn đổi, thêm số nguyên, theo chiều bit
AND, theo chiều bit OR, theo chiều bit XOR, số nguyên tối đa và tối thiểu có
dấu và khơng dấu. Khơng có ràng buộc về thứ tự, các AMO này có thể được sử
dụng để thực hiện các hoạt động giảm song song, trong đó giá trị trả về thường
sẽ bị loại bỏ bằng cách ghi vào x0.
-
Để giúp triển khai đồng bộ hóa đa xử lý, các AMO tùy chọn cung cấp
ngữ nghĩa nhất quán phát hành. Nếu bit aq được đặt, thì không thể quan sát thấy
các hoạt động bộ nhớ sau này trong nhóm RISC-V này diễn ra trước AMO.
Ngược lại, nếu bit rl được đặt, thì các harts RISC-V khác sẽ không quan sát
AMO trước khi truy cập bộ nhớ trước AMO trong RISC-V hart này. Đặt cả bit
aq và bit rl trên AMO làm cho trình tự nhất quán tuần tự, có nghĩa là nó khơng
thể được sắp xếp lại với các hoạt động bộ nhớ trước đó hoặc muộn hơn từ cùng
một nhóm.
-
Ví dụ cho phần quan trọng được bảo vệ bởi spinlock kiểm tra và kiểm
tra và thiết lập được thể hiện trong hình dưới. Lưu ý AMO đầu tiên được đánh
dấu aq để đặt mua khóa trước phần quan trọng và AMO thứ hai được đánh dấu
rl để đặt hàng cho phần quan trọng trước khi từ bỏ khóa.
-
Các hướng dẫn trong phần mở rộng “A” cũng có thể được sử dụng để
cung cấp lượng tải và cửa hàng nhất quán theo tuần tự. Một tải nhất quán tuần tự
có thể được triển khai dưới dạng LR với cả bộ aq và rl. Một cửa hàng nhất quán
tuần tự có thể được triển khai dưới dạng AMOSWAP ghi giá trị cũ vào x0 và có
cả bộ aq và rl.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
5. Các hướng dẫn tải - dự trữ/ lưu trữ có điều kiện
-
Các hoạt động phức tạp của bộ nhớ nguyên tử trên một từ bộ nhớ đơn
hoặc từ kép được thực hiện với các lệnh dành riêng cho tải (LR) và lưu trữ có
điều kiện (SC). LR.W tải một từ từ địa chỉ trong rs1 , đặt giá trị mở rộng dấu
hiệu vào rd và đăng ký một tập hợp đặt trước — một tập hợp các byte thay thế
các byte trong từ được địa chỉ hóa. SC.W viết có điều kiện một từ trong rs2 vào
địa chỉ trong rs1 : SC.W chỉ thành công nếu đặt chỗ vẫn còn hiệu lực và bộ đặt
chỗ chứa các byte đang được viết. Nếu SC.W thành công, lệnh sẽ ghi từ trong
rs2 vào bộ nhớ và nó ghi từ 0 vào rd. Nếu SC.W không thành công, lệnh không
ghi vào bộ nhớ và nó ghi giá trị khác khơng vào rd . Bất kể thành công hay thất
bại, việc thực hiện một lệnh SC.W sẽ làm mất hiệu lực của bất kỳ bảo lưu nào
do hart này nắm giữ. LR.D và SC.D hoạt động tương tự trên các từ đôi và chỉ
khả dụng trên RV64. Đối với RV64, LR.W và SC.W ký-mở rộng giá trị được đặt
trong rd .
-
Mã lỗi có giá trị 1 được dành riêng để mã hóa lỗi khơng xác định. Các
mã lỗi khác được bảo lưu tại thời điểm này và phần mềm di động chỉ nên giả
định mã lỗi sẽ khác 0.
-
Đối với LR và SC, phần mở rộng A yêu cầu địa chỉ được giữ trong rs1
phải được căn chỉnh tự nhiên theo kích thước của tốn hạng (tức là căn chỉnh
tám byte cho các từ 64 bit và căn chỉnh bốn byte cho các từ 32 bit). Nếu địa chỉ
không được căn chỉnh tự nhiên, một ngoại lệ lệch địa chỉ hoặc một ngoại lệ lỗi
truy cập sẽ được tạo ra. Ngoại lệ lỗi truy cập có thể được tạo ra cho một truy cập
bộ nhớ mà nếu khơng sẽ có thể hoàn thành ngoại trừ việc điều chỉnh sai, nếu
truy cập bị lệch không nên được mô phỏng.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
-
Một lệnh SC khơng bao giờ có thể được quan sát bởi một nhóm RISC-V
khác trước lệnh LR đã thiết lập bảo lưu. Chuỗi LR / SC có thể được cung cấp
ngữ nghĩa thu được bằng cách thiết lập bit aq trên lệnh LR. Chuỗi LR / SC có
thể được cung cấp ngữ nghĩa giải phóng bằng cách đặt bit rl trên lệnh SC. Đặt
bit aq trên lệnh LR và đặt cả bit aq và bit rl trên lệnh SC làm cho trình tự LR /
SC nhất quán tuần tự, có nghĩa là nó khơng thể được sắp xếp lại với các hoạt
động bộ nhớ trước đó hoặc muộn hơn từ cùng một nhóm.
-
Nếu khơng có bit nào được đặt trên cả LR và SC, chuỗi LR / SC có thể
được quan sát để xảy ra trước hoặc sau các hoạt động xung quanh bộ nhớ từ
cùng một nhóm RISC-V. Điều này có thể thích hợp khi trình tự LR / SC được sử
dụng để thực hiện hoạt động giảm song song.
-
Phần mềm không nên đặt bit rl trên lệnh LR trừ khi bit aq cũng được đặt,
phần mềm cũng không nên đặt bit aq trên lệnh SC trừ khi bit rl cũng được đặt.
LR. rl và SC. Các lệnh aq không được đảm bảo cung cấp bất kỳ thứ tự mạnh mẽ
nào hơn so với các lệnh có cả hai bit rõ ràng, nhưng có thể dẫn đến hiệu suất
thấp hơn.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
-
LR / SC có thể được sử dụng để xây dựng cấu trúc dữ liệu khơng có
khóa. Một ví dụ sử dụng LR / SC để thực hiện chức năng so sánh và hoán đổi
được thể hiện trong hình trên. Nếu nội tuyến, chức năng so sánh và hoán đổi chỉ
cần thực hiện bốn hướng dẫn.
6. Hướng dẫn hàng rào (Fence instructions)
-
Hiện tại, hướng dẫn này là cơ chế tiêu chuẩn duy nhất để đảm bảo rằng
các lưu trữ hiển thị cho một hart cũng sẽ hiển thị với các lần tìm nạp hướng dẫn
của nó.
-
Lệnh FENCE.I được sử dụng để đồng bộ hóa các luồng dữ liệu và lệnh.
RISC-V không đảm bảo rằng các lưu trữ vào bộ nhớ lệnh sẽ được hiển thị đối
với các lần tìm nạp lệnh trên một hart RISC-V cho đến khi hart đó thực thi lệnh
FENCE.I. Một lệnh FENCE.I đảm bảo rằng một lệnh tiếp theo tìm nạp trên một
nhóm RISC-V sẽ thấy bất kỳ kho dữ liệu nào trước đó đã được hiển thị cho cùng
một nhóm RISC-V. FENCE.I khơng đảm bảo rằng các lần tìm nạp lệnh của
RISC-V harts khác sẽ tuân theo các cửa hàng của hart cục bộ trong một hệ thống
đa xử lý. Để lưu trữ vào bộ nhớ lệnh có thể nhìn thấy đối với tất cả các harts
RISC-V, hart viết cũng phải thực thi một FENCE dữ liệu trước khi yêu cầu tất cả
các harts RISC-V từ xa thực hiện một FENCE.I.
-
Các trường không sử dụng trong lệnh FENCE.I, imm [11: 0] , rs1 và rd ,
được dành riêng cho các hàng rào hạt mịn hơn trong các phần mở rộng trong
tương lai. Đối với khả năng tương thích chuyển tiếp, các triển khai cơ sở sẽ bỏ
qua các trường này và phần mềm tiêu chuẩn sẽ khơng có các trường này.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
7. Ngắt RISC-V
1. Khái niệm Ngắt
Hệ thống có hỗ trợ cho các ngắt sau: ngắt cục bộ (bao gồm cả ngắt phần mềm
và ngắt bộ đếm thời gian) và ngắt toàn cục. Các ngắt phần mềm và bộ định thời là
các ngắt cục bộ được tạo bởi Core Local Interruptor (CLINT), được định tuyến
trực tiếp đến Hart. Hệ thống khơng chứa nguồn ngắt cục bộ khác.
Ngồi ra, các ngắt toàn cục được quản lý bởi bộ điều khiển ngắt mức nền tảng
(Platform-Level Interrupt Controller-PLIC), được định tuyến trực tiếp đến Hart
thơng qua nguồn ngắt bên ngồi.
2. Ngắt vào và Thoát
Khi một Hart RISC-V bị gián đoạn, điều sau sẽ xảy ra:
Giá trị của mstatus.MIE được sao chép vào mstatus.MPIE, và sau đó
mstatus.MIE bị xóa đi, vơ hiệu hóa ngắt hiệu quả.
PC hiện tại được sao chép vào thanh ghi mepc, và sau đó PC được đặt thành
giá trị của mtvec. Trong trường hợp ngắt vectored được bật, PC được đặt
thành mtvec.BASE + 4 x mã ngoại lệ.
Chế độ đặc quyền trước khi ngắt được mã hóa trong mstatus.MPP.
Tại thời điểm này, quyền điều khiển được giao cho trình xử lý ngắt với các ngắt bị
vơ hiệu hóa. Các ngắt có thể được kích hoạt lại bằng cách thiết lập rõ ràng
mstatus.MIE hoặc bằng cách thực hiện lệnh MRET để thốt khỏi trình xử lý. Khi
một lệnh MRET được thực thi, điều sau sẽ xảy ra:
Chế độ đặc quyền được đặt thành giá trị được mã hóa trong mstatus.MPP.
Giá trị của mstatus.MPIE được sao chép vào mstatus.MIE.
PC được đặt thành giá trị của mepc.
Tại thời điểm này, quyền điều khiển được trao lại cho chương trình đang được
thực thi khi ngắt được thực hiện.
Các thanh ghi điều khiển và trạng thái liên quan đến việc xử lý ngắt RISC-V được
mô tả trong phần sau.
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
3. Thanh ghi trạng thái điều khiển ngắt
Việc triển khai cụ thể của hệ thống đối với các CSR gián đoạn được mô tả dưới
đây
3.1.
Thanh ghi trạng thái máy (mstatus)
Thanh ghi mstatus duy trì quyền kiểm sốt trạng thái hoạt động hiện tại của Hart
Chỉ mất một ngắt đang chờ xử lý cho chế độ đặc quyền x nếu xIE = 1 và chạy
ở chế độ X hoặc lớn hơn.
Các ngắt ln bị vơ hiệu hóa cho các đặc quyền ít hơn mức hiện tại.
2. Thanh ghi cho phép ngắt máy (mie)
Các ngắt riêng lẻ được kích hoạt bằng cách đặt bit thích hợp trong thanh ghi mie
mie phản chiếu bố cục của mip
cung cấp cho phép mỗi ngắt
3. Thanh ghi đang chờ xử lý ngắt của máy (mip)
Thanh ghi đang chờ xử lý ngắt của máy (mip) cho biết ngắt nào hiện đang chờ xử lý
HỆ THỐNG NHÚNG
TIEU LUAN MOI download :
KIẾN TRÚC RISC-V
mip phản ánh trạng thái đang chờ xử lý của các ngắt cho Hart
Các ngắt riêng biệt cho từng mức đặc quyền được hỗ trợ (M/S/U)
Tính năng tùy chọn xử lý ngắt ở mức người dùng (“IN”) khi chế độ U có mặt
4. Thanh ghi nguyên nhân máy (mcause)
Khi một cái bẫy được đưa vào chế độ M, mcause được viết với một mã cho biết sự
kiện đã gây ra cái bẫy. Bit ngắt trong thanh ghi mcause được đặt nếu bẫy do ngắt gây
ra. Trường Mã ngoại lệ chứa mã xác định ngoại lệ cuối cùng
Bits
Field Name
Exception
[62:0]
Code
63
Interrupt
Bảng 3.4 Thanh ghi mcause
Bit cao của mcause là 1
Mã ngoại lệ đưa ra nguyên nhân ngắt
Cũng có thể phải kiểm sốt PLIC, nếu bên ngồi ngắt
HỆ THỐNG NHÚNG