Các CPU x86 32 bit có phần cứng hỗ trợ quản lý bộ nhớ trong chế độ bảo vệ theo cả hai cơ chế phân đoạn và phân trang. Cơ chế quản lý bộ nhớ theo phân đoạn đã được trình bày ở chương 1. Trong phần này ta chỉ xét cơ chế quản lý bộ nhớ theo phân trang.
Đơn vị quản lý bộ nhớ chuyển địa chỉ logic gồm địa chỉ nền đoạn 32 bit và địa chỉ offset 32 bit thành địa chỉ tuyến tính.
Nếu chọn cách quản lý theo phân đoạn thì địa chỉ tuyến tính sẽ là địa chỉ vật lý.
Nếu chọn cách quản lý theo phân trang thì đơn vị quản lý bộ nhớ sẽ chuyển địa chỉ tuyến tính thành địa chỉ vật lý theo cơ chế quản lý theo phân trang.
Trong cơ chế quản lý theo trang, chương trình được chia thành các khúc nhỏ có kích thước xác định, được gọi là trang. Mỗi trang chương trình được gán vào từng đoạn nhỏ của bộ nhớ, mỗi đoạn nhỏ chứa trang được gọi là một khung
49 trang.
Hệ điều hành quản lý quá trình thực hiện chương trình bằng bảng trang. Bảng trang chỉ ra vị trí khung trang (địa chỉ nền) của mỗi trang chương trình. CPU dựa vào vị trí khung trang và địa chỉ offset của ô nhớ trong trang để tính ra địa chỉ vật lý của ô nhớ.
Cấu trúc của hệ thống quản lý gồm 3 phần: thư mục trang (Page Directory), bảng trang
(Page Table) và trang (Page). Thư mục trang, bảng trang và trang đều có cùng một kích thước là 4Kbyte.
Thư mục trang:
Thư mục trang có kích thước 4Kbyte. Thư mục trang chứa tới 1024 Lối vào thư mục trang
PDE (Page Directory Entry).
PDE có kích thước 32 bit (4 byte). Mỗi PDE chứa 20 bít địa chỉ nền bảng trang (trỏ đến nền bảng trang). Mỗi một thư mục trang có thể quản lý được tới 1024 bảng trang.
Cấu trúc một PDE trong thư mục trang:
31 12 11 0 Địa chỉ bảng trang (20bit) Thông tin về bảng trang
Phần địa chỉ bảng trang chứa 20 bit cao của địa chỉ nền bảng trang (địa chỉ bắt đầu một bảng trang), 12 bít thấp của địa chỉ nền bảng trang luôn bằng 0.
Phần thông tin về bảng trang chứa các thông tin về quyền truy nhập bảng trang và một số thuộc tính khác của trang. Các bit 1 và 2 trong mỗi PDE cung cấp mức đặc quyền và quyền ghi/đọc v.v... của tất cả các trang trỏ bởi PDE này.
Trong cơ chế quản lý bộ nhớ theo trang, 10 bit cao (từ bit 22 đến bit 31) của địa chỉ tuyến tính được dùng để xác định vị trí của PDE trong thư mục trang (vị trí so với nền thư mục trang).
Bảng trang:
Bảng trang có kích thước 4 Kbyte. Bảng trang chứa 1024 lối vào bảng trang PTE (Page Table Entry).
PTE có kích thước 32 bit (4 byte). Mỗi PTE chứa địa chỉ nền của một trang 4Kbyte, do vậy một bảng trang có thể quản lý được tới 1024 trang.
Cấu trúc một PTE:
31 12 11 0
a chỉ trang (20bit) Thông tin về trang
Phần Địa chỉ trang chứa 20 bit cao của địa chỉ vật lý nền trang (địa chỉ vật lý bắt đầu một trang), 12 bít thấp của địa chỉ nền trang luôn bằng 0.
Phần Thông tin về trang chứa các thông tin về quyền truy nhập trang và một số thuộc tính khác của trang. Các bít 1 và 2 trong mỗi PTE cung cấp mức đặc quyền và quyền ghi/đọc, v.v... của tất cả các trang trỏ bởi PTE này.
Trong cơ chế quản lý bộ nhớ theo trang, 10 bit của địa chỉ tuyến tính (từ bit 12 đến bít 21) được dùng để xác định vị trí của PTE trong bảng trang (vị trí so với nền bảng trang).
Có hai mức đặc quyền được dùng để bảo vệ trang: mức chương trình ứng dụng (tương đương mức 3 trong quản lý theo đoạn) và mức chương trình giám sát (tương đương mức 0, 1,
50 2 trong quản lý theo đoạn).
Mức thấp nhất trong hai mức của PDE và PTE được lấy làm mức đặc quyền và quyền ghi/đọc của từng trang.
Địa chỉ vật lý của ô nhớ trong trang được tính bằng cách kết hợp 20 bit cao (phần địa chỉ trang) trong PTE với 12 bit thấp nhất trong địa chỉ tuyến tính.