Professional Documents
Culture Documents
Chuong 3
Chuong 3
Chuong 3
QUẢN LÝ BỘ NHỚ
Mục tiêu
Giới thiệu MMU
Chế độ thực thi
Translation Lookaside Buffer
Chuyển địa chỉ ảo sang địa chỉ vật lý
16 dual-entry fully associative Joint TLB( JTLB): TLB hợp nhất 16 cổng kép
3-entry instruction micro TLB( ITLB):TLB vi dẫn 3 cổng
3-entry data micro TLB: TLB vi dữ liệu 3 cổng
Khi một địa chỉ được dịch, ITLB hoặc DTLB tương ứng sẽ được truy nhập. Nếu việc dịch địa
chỉ không được tìm thấy trong micro TLB thì JTLB sẽ được truy nhập. Nếu vẫn không tìm
thấy thì sẽ xảy ra một ngoại lệ.Trong nhân processor 4Km và 4Kp thì MMU dựa trên một
giải thuật đơn giản thông qua cơ chế Fixed Mapping(FM).
Hình 1 Cho thấy cách thức mà MMU tương tác với việc truy nhập bộ nhớ cache trong
nhân 4Kc.
User mode được sử dụng cho các chương trình ứng dụng. Chế độ Kernel được dùng khi xử
lý các ngoại lệ hoặc các hàm hệ thống được ưu tiên, bao gồm quản lý thanh ghi CP0 và
việc truy nhập các thiết bị I/O. Chế độ Debug khi dò và loại bỏ lỗi phần mềm, hầu hết xảy
ra trong công cụ phát triển phần mềm.
Dịch địa chỉ do MMU thực hiện phụ thuộc vào chế độ mà processor đang hoạt động
Nhân hệ thống truy nhập chế độ Kernel khi khởi động lại hoặc khi phát hiện một ngoại lệ.
Ở chế độ Kernel có thể truy nhập toàn bộ không gian địa chỉ cũng như tất cả thanh ghi
CP0.
Truy nhập ở chế độ User bị giới hạn từ địa chỉ 0x0000_0000 đến 0x7sFFF_FFFF và bị hạn
chế khi truy nhập các chức năng của thanh ghi CP0. Chế độ Debug được truy nhập khi có
một ngoại lệ debug. Ở chế độ này, phần mềm debug sẽ truy nhập tới cùng không gian địa
chỉ và các thanh ghi CP0 giống như ở chế độ Kernel . Bên cạnh đó, nhân hệ thống còn
truy nhập vào phân đoạn debug dseg, phân đoạn này đè lên một phần của segment
kseg3. Sự truy nhập phân đoạn dseg có thể được bật hay tắt.
Đối với nhân 4Kc, việc dịch của các phân đoạn này dựa trên nền tảng phân trang. Trong
quá trình dịch bao gồm cả những thong tin xác định liệu trang đó có cacheable hay không
và thuộc tính bảo vệ của trang.
Đối với nhân 4Km và 4Kp, những phân đoạn này được dịch cố định từ địa chỉ ảo sang địa
chỉ vật lý. Khả năng cacheability được xác định trong thanh ghi CP0.
Phân đoạn của người dùng bắt đầu từ địa chỉ 0x0000_0000 và kết thúc ở 0x7FFF_FFFF.
Việc truy nhập vào tất cả các địa chỉ khác sẽ gây ra lỗi .
Processor hoạt động ở chế độ người dùng khi thanh ghi Status chứa các bit có giá trị sau:
UM=1
EXL=0
ERL=0
Tất cả các địa chỉ ảo trong chế độ User đều có bit cao nhất bằng 0. Hệ thống ánh xạ tất cả
cả các tham chiếu đến useg thông qua TLB hoặc FM. Đối với nhân 4Kc, địa chỉ ảo có phần
mở rộng trường 8 bit ASID .
UM=0
• Khi một ngoại lệ không thể dò và loại bỏ, bit EXL hoặc ERL sẽ được thiết lập và
processor sẽ vào chế độ Kernel. Cuối quá trình xử lý ngoại lệ, lệnh Exception
Return( ERET) sẽ được thực thi. Lệnh này nhảy đến Exception PC, xóa bit ERL và
xóa bit EXL( nếu ERL=0). Khi đó processor sẽ về chế độ người dùng
Khi 3 bit cao nhất có giá trị 101, không gian địa chỉ ảo kseg 32 bit sẽ được chọn. Tham
chiếu tới kseg sẽ không được ánh xạ, địa chỉ vật lý sẽ được tính bằng cách trừ đi
0xA000_0000 từ địa chỉ ảo. Khi truy nhập tới các địa chỉ này thì bộ nhớ vật lý( hoặc các
thanh ghi thiết bị I/O ánh xạ vào bộ nhớ) sẽ được truy nhập trực tiếp mà không thông qua
cache
Khi UM=0,ERL=1,EXL=1 trong thanh khi trạng thái và DM=0 trong thanh ghi Debug và 3
bit cao nhất có giá trị 110, vùng địa chỉ ảo kseg2 sẽ được chọn. Không gian địa chỉ ảo này
sẽ được đặt tại địa chỉ vật lý 0xC000_0000 đến 0xDFFF_FFFF
Khi 3 bit cao nhất của địa chỉ ảo là 111, không gian địa chỉ ảo kseg3 sẽ được chọn và sẽ
được đặt tại địa chỉ vật lý 0xE000_0000 đến 0xFFFF_FFFF.
Phân đoạn dseg chia thành 2 phân đoạn dmseg từ 0xFF20 đến 0xFF2F_FFFF được sử dụng
khi máy dò đang làm việc ở phân đoạn nhớ, và phân đoạn drseg từ 0xFF30_0000 đến
0xFF3F_FFFF được sử dụng khi truy nhập tới bộ nhớ được ánh xạ tới các thanh ghi debug .
Cũng giống như ITLB, DTLB cũng được quản lí bởi phần cứng. Tuy nhiên, trong quá trình
dịch địa chỉ, JTLB cũng được truy nhập song song với DTLB. Nếu có một DTLB miss và
1JTLB hit, DTLB sẽ được nạp lại .
3.4 Chuyển địa chỉ ảo sang địa chỉ thật (4KC Core)
Khi có một sự tương thích địa chỉ ảo trong TLB, PFN( physical frame number) là đầu ra từ
TLB móc nối với Offset sẽ tạo ra địa chỉ vật lý. Offset thể hiện một địa chỉ giữa không gian
khung trang
Nhân 4Kc cung cấp một cơ chế dựa trên giải thuật thay thế để xử lý tình huống khi một
TLB miss xuất hiện
FM cũng xác định khả năng cachebility của từng segment. Các thuộc tính này được điều
khiển thông qua các bit của thanh ghi Config
Khi ERL=1: Phân đoạn useg và kuseg sẽ trở thành unmapped và uncached