You Are Here : Home » , , » Virtual Memory 5: Page tables

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:

Leave a Reply

Welcome to SpicyTweaks.

Copyright © Embedded System Study. Designed by Momizat Team. Powered to Blogger by SpicyTweaks.

Scroll to top