Virtual Memory 5: Page tables
Tổng quan
Page table là một bảng mapping giữa Virtual Address (VA) và Physical Address.
Page Table Entry (PTE) là đơn vị của bảng Page, mỗi địa chỉ virtual (VA) sẽ có một PTE
Vậy chúng ta cần bao nhiêu entries (PTE) trong bảng Page Table?
- Mỗi entry cho 1 byte, 2^32 = 4 tỷ entries
- Mỗi entry cho 1 word, 2^30 = 1 tỷ entries
Câu trả lời là 2^30 (1 tỷ entries). Mỗi entry cần thể hiện địa chỉ vật lý có độ dài 32 bit, nên mỗi entry tối thiểu là 32 bit. Tổng cộng 1 tỷ entries tốn 1GB bộ nhớ để lưu trữ cho Page Table,
Vậy cần phải có một cách nào đó hiệu quả hơn để quản lý mapping. Thay vì map từng địa chỉ vật lý thì Page Table sẽ lưu trữ entry dưới dạng một tập hợp địa chỉ ảo map tới một tập địa chỉ vật lý (coarse-gain). Cách này sẽ giúp giảm số lượng entries của Page Table rất nhiều
Ví dụ
Địa chỉ ảo (VA) từ 0 - 4095 sẽ được map tới địa chỉ vật lý 4096-8191
Một PTE giờ sẽ cover một dải địa chỉ 4KB thay vì 4B như trước, số lượng entries sẽ giảm 1024 lần. Tuy nhiên cái gì cũng có tính hai mặt của nó, số lượng entries giảm đi nhưng đồng thời độ linh động trong việc sử dụng bộ nhớ cũng giảm theo.
Page table giờ được sử dụng như thế nào?
Thay vì map từng địa chỉ VA tới địa chỉ PA, giờ từng block bộ nhớ ảo (4KB) map tới block 4K địa chỉ vật lý.
Mình có câu hỏi dành cho các bạn
Địa chỉ vật lý nào tương ứng với địa chỉ ảo số 4?
- 4
- 4096
- 4100
- Unknown
Không có nhận xét nào: