Thanh ghi mstatus là một thanh ghi đọc / ghi MXLEN-bit được định dạng như trong Hình 5.3 cho RV64 và Hình 5.4 cho RV32. Thanh ghi mstatus theo dõi và kiểm soát trạng thái hoạt động hiện tại của hart. Chế độ xem hạn chế của mstatus xuất hiện dưới dạng thanh ghi sstatus trong ISA cấp S.
Hình 5.3 RV64
KIẾN TRÚC RISC-V
Hình 5.4 RV32
4. Bộ định thời CSRs
Nền tảng cung cấp bộ đếm thời gian thực, được hiển thị dưới dạng thanh ghi đọc-ghi chế độ máy được ánh xạ bộ nhớ, mtime. Mtime phải tăng với tần suất không đổi và nền tảng phải cung cấp cơ chế xác định cơ sở thời gian của mtime. Thanh ghi mtime sẽ quấn quanh nếu số đếm bị tràn.
Thanh ghi mtime có độ chính xác 64-bit trên tất cả các hệ thống RV32 và RV64. Nền tảng cung cấp thanh ghi so sánh bộ đếm thời gian chế độ máy được ánh xạ bộ nhớ 64 bit (mtimecmp). Một ngắt bộ định thời trở nên chờ xử lý bất cứ khi nào mtime chứa giá trị lớn hơn hoặc bằng mtimecmp, coi các giá trị là số nguyên không dấu. Ngắt vẫn được đăng cho đến khi mtimecmp trở nên lớn hơn mtime (thường là
kết quả của việc viết mtimecmp). Ngắt sẽ chỉ được thực hiện nếu ngắt được kích hoạt và bit MTIE được đặt trong thanh ghi mie.
Cơ sở hẹn giờ được định nghĩa là sử dụng thời gian trên đồng hồ treo tường thay vì bộ đếm chu kỳ để hỗ trợ các bộ xử lý hiện đại chạy với tần số đồng hồ thay đổi cao nhằm tiết kiệm năng lượng thông qua điện áp động và tỷ lệ tần số.
Các mức đặc quyền thấp hơn khơng có thanh ghi timecmp riêng. Thay vào đó, phần mềm chế độ máy có thể triển khai bất kỳ số lượng bộ hẹn giờ ảo nào trên một hart bằng cách ghép kênh bộ hẹn giờ tiếp theo ngắt vào thanh ghi mtimecmp.
mtime
-RISC-V xác định một yêu cầu cho một bộ đếm được hiển thị như một thanh ghi ánh
xạ bộ nhớ
- Khơng có tần suất u cầu về bộ hẹn giờ, nhưng:
• Nó phải chạy với tần số khơng đổi
• Nền tảng phải lộ ra tần số
mtimecmp
- RISC-V xác định bộ nhớ so sánh bộ đếm thời gian được ánh xạ thanh ghi.
- Kích hoạt ngắt khi mtime lớn hơn hoặc bằng mtimecmp
5. Bộ giám sát CSRs
Chế độ người giám sát bị hạn chế có chủ ý về các tương tác với phần cứng vật lý bên dưới, chẳng hạn như bộ nhớ vật lý và ngắt thiết bị, để hỗ trợ ảo hóa sạch. Theo tinh thần này, các cơ sở cấp người giám sát nhất định, bao gồm các yêu cầu ngắt bộ đếm thời gian và bộ xử lý, được cung cấp bởi các cơ chế dành riêng cho việc triển khai. Trong một số hệ thống, môi trường thực thi người giám sát (XEM) cung cấp các cơ sở này theo cách được chỉ định bởi giao diện nhị phân người giám sát (SBI). Các
KIẾN TRÚC RISC-V
hệ thống khác cung cấp các phương tiện này một cách trực tiếp, thông qua một số cơ chế khác do việc triển khai xác định.
Người giám sát chỉ nên xem trạng thái CSRs mà hệ điều hành cấp người giám sát phải hiển thị. Đặc biệt, khơng có thơng tin nào về sự tồn tại (hoặc không tồn tại) của các cấp đặc quyền cao hơn (cấp máy hoặc cấp khác) có thể nhìn thấy trong CSR mà người giám sát có thể truy cập.
Nhiều CSR của người giám sát là một tập hợp con của CSR chế độ máy tương đương và chương chế độ máy nên được đọc trước để giúp hiểu các mô tả CSR cấp người giám sát.
Hầu hết các CSRs của chế độ Máy đều có Chế độ giám sát tương đương
- Chế độ giám sát CSRs có thể được sử dụng để kiểm soát trạng thái của Người giám sát và Chế độ người dùng.
-Hầu hết các CSRs của Người giám sát tương đương đều giống nhau ánh xạ dưới
dạng chế độ Máy mà khơng có bit điều khiển chế độ máy.
- sstatus, stvec, nhâm nhi, sie, sepc, scause, satp, … satp - Dịch địa chỉ của người giám sát và Đăng ký bảo vệ
- Được sử dụng để điều khiển địa chỉ dịch và bảo vệ của chế độ Người giám sát.
6. Bộ nhớ ảo
RISC-V có hỗ trợ Bộ nhớ ảo cho phép bộ nhớ phức tạp quản lý và hỗ trợ hệ điều hành (Linux)
• Yêu cầu triển khai S-Mode
• Sv32
- Địa chỉ ảo 32bit
- Bảng trang 4KiB, 4MiB (2 cấp độ)
• Sv39 (yêu cầu triển khai RV64)
- Địa chỉ ảo 39bit
- Bảng trang 4KiB, 2MiB, 1GiB (3 cấp độ)
• Sv48 (yêu cầu triển khai RV64)
- Địa chỉ ảo 48bit
- Bảng trang 4KiB, 2MiB, 1 GiB, 512GB (4 cấp độ)
7. Bảo vệ bộ nhớ vật lý
Để hỗ trợ q trình xử lý an tồn và chứa lỗi, bạn nên hạn chế các địa chỉ vật lý có thể truy cập bằng ngữ cảnh đặc quyền thấp hơn chạy trên hart. Bảo vệ bộ nhớ vật lý (PMP) đơn vị có thể được cung cấp, với các thanh ghi điều khiển chế độ máy per-hart để cho phép truy cập bộ nhớ vật lý các đặc quyền (đọc, ghi, thực thi) được chỉ định cho từng vùng bộ nhớ vật lý. Các giá trị PMP được kiểm tra song song với kiểm tra PMA.
KIẾN TRÚC RISC-V
Mức độ chi tiết và mã hóa của cài đặt kiểm sốt truy cập PMP là dành riêng cho nền tảng và ở đó có thể là các chi tiết khác nhau và mã hóa các quyền cho các vùng bộ nhớ vật lý khác nhau trên một nền tảng duy nhất. Đặc quyền của một số khu vực có thể được cài đặt sẵn — ví dụ: một số khu vực có thể chỉ hiển thị trong chế độ máy nhưng khơng có lớp đặc quyền thấp hơn.
Các nền tảng khác nhau rất nhiều về nhu cầu bảo vệ bộ nhớ vật lý, và vì vậy chúng tơi trì hỗn thiết kế cấu trúc PMP cho từng nền tảng. Một số thiết kế PMP có thể chỉ sử dụng một vài CSRs để bảo vệ một số lượng nhỏ các phân đoạn bộ nhớ vật lý, trong khi những phân đoạn khác có thể sử dụng bảng bảo vệ thường trú bộ nhớ với bộ đệm bảng bảo vệ được lập chỉ mục bởi thanh ghi cơ sở bảng bảo vệ để bảo vệ không gian bộ nhớ vật lý lớn với độ chi tiết tốt. Hệ thống có bảng bảo vệ đăng ký cơ sở thường cũng sẽ cung cấp đăng ký ID miền bảo vệ vật lý (PDID) để biểu thị miền bảo vệ vật lý hiện tại. Kiểm tra PMP được áp dụng cho tất cả các truy cập khi hart đang chạy ở chế độ H, S hoặc U và đối với tải và lưu trữ khi bit MPRV được đặt trong thanh ghi mstatus và trường MPP trong mstatus đăng ký có chứa H, S hoặc U. Các vi phạm PMP sẽ luôn được lưu giữ chính xác tại bộ xử lý.
• Có thể được sử dụng để thực thi quyền truy cập hạn chế đối với các chế độ ít
đặc quyền
+ Ngăn chặn phần mềm của chế độ Người giám sát và Người dùng khỏi truy
cập bộ nhớ khơng mong muốn.
• Tối thiểu 16 vùng nhớ có kích thước 4byte.
• Khả năng khóa một khu vực
+ Khu vực bị khóa thực thi quyền đối với tất cả các quyền truy cập, bao gồm M-Mode.
+ Cách duy nhất để mở khóa một khu vực là khởi động lại.