Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
mục lục
Phần I:
I. Giới thiệu chung...............................................................................................................2
1 .Công việc quản lý bộ nhớ................................................................................................2
2 .Quản lý bộ nhớ ở chế độ bảo vệ......................................................................................2
II. Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC.................3
1.Không gian địa chỉ vật lý.................................................................................................3
2.Các địa chỉ logic và tuyến tính.........................................................................................4
3.Các thanh ghi điều khiển..................................................................................................5
4.Việc phân trang................................................................................................................5
5.Các tuỳ chọn phân trang...................................................................................................6
6.Các bảng trang và các th mục trang...............................................................................6
6.1 Chuyển đổi địa chỉ tuyến tính (các trang 4-Kbyte)............................................7
6.2 Chuyển đổi địa chỉ tuyến tính(các trang 4-MByte)...........................................8
6.3 Kết hợp các trang 4-Kbyte và 4-MByte.............................................................9
7.Địa chỉ cơ sở của một th mục trang................................................................................9
8.Các điểm vào th mục trang và các điểm vào bảng trang................................................9
9.Những điểm vào th mục trang và bảng trang không có mặt........................................13
10. Bộ đệm dùng để chuyển đổi địa chỉ ...........................................................................13
11.Sự mở rộng địa chỉ vật lý.............................................................................................14
11.1 Chuyển đổi địa chỉ tuyến tính với việc đánh địa chỉ mở rộng đợc kích
hoạt(với các trang 4-Kbyte)...................................................................................15
11.2 Chuyển đổi địa chỉ tuyến tính với việc đánh địa chỉ mở rộng đợc kích
hoạt(với các trang 2-Mbyte hoặc 4-Mbyte)...........................................................16
11.3 Truy nhập vào toàn bộ không gian địa chỉ vật lý mở rộng với cấu trúc bảng
trang mở rộng.........................................................................................................17
11.4 Các điểm vào th mục trang và bảng trang với chế độ đánh trang mở rộng đợc
kích hoạt........................................................................................................17
không phải lo lắng tính toán khối lợng sử dụng. Tuy tốc độ thực hiện có phần nào giảm
sút nhng hiệu quả chung là hết sức lớn và đáp ứng nhu cầu của ngời sử dụng. Một phần
của bộ nhớ trong phải đợc dùng để lu trữ nhân của hệ thống. Đó là tập hợp các chơng
trình điều khiển phải thờng xuyên có mặt ở bộ nhớ trong để có thể thực hiện ngay lập tức
khi cần thiết.
Một chức năng quan trọng của hệ điều hành là bảo vệ chơng trình và dữ liệu khỏi
bị h hỏng, bị truy nhập một cách không hợp thức khi các chơng trình khác hoạt động.
Trong phần này ta luôn giả thiết rằng các chơng trình điều khiển của hệ điều hành làm
việc hợp lý và không ảnh hởng đến chơng trình và dữ liệu của ngời sử dụng. Trên thực tế
cũng có tồn tại những sai sót trong hệ điều hành khi gặp các tổ hợp đặc biệt hiếm có của
chơng trình và dữ liệu. Nhng những sai sót loại này thờng đợc ghi nhận kịp thời và đợc
khắc phục ở các phiên bản cải tiến của hệ điều hành.
Đối với các máy IBM-PC thì phơng pháp tổ chức và quản lý bộ nhớ đợc thực hiện
nh sau:
PC XT chỉ thực hiện một chế độ quản lý gọi là chế độ thực ( real mode) . Không
gian và bộ nhớ vật lý và không gian bộ nhớ logic là trùng nhau.
PC AT 286 thực hiện đợc cả hai chế độ quản lý bộ nhớ là chế độ thực (real mode)
và chế độ bảo vệ (protect mode). Cách quản lý ở chế độ bảo vệ là theo kiểu phân đoạn.
PC AT 386 có hai chế độ quản lý bộ nhớ là chế độ thực (real mode) và chế độ bảo
vệ(protect mode). Ơ chế độ bảo vệ, cách quản lý đợc thực hiện theo hai kiểu phân đoạn và
phân trang. Trong các phần sau ta xét cách tổ chức của các hệ thống từ PC AT 386 trở
lên.
2. Quản lý bộ nhớ ở chế độ bảo vệ
Các kiến trúc của Intel từ 80386 trở lên cung cấp hai cơ chế phân đoạn và phân
trang. Trong cơ chế phân đoạn , chơng trình của ngời sử dụng đợc biên tập riêng từng
môdul độc lập. Kết quả tập hợp chơng trình là một bảng điều khiển cho biết chơng trình
có thể sử dụng những modul nào, độ dài mỗi môdul là bao nhiêu. Bảng điều khiển này
còn gọi là bảng quản lý đoạn và ký hiệu là SCB(segment control block). SCB còn chứa
II.Cấu trúc dữ liệu phục vụ việc quản lý bộ nhớ phân trang trong IBM-PC
1. Không gian địa chỉ vật lý
Trong chế độ bảo vệ, kiến trúc Intel cung cấp một không gian địa chỉ vật lý bình
thờng 4GByte(232 bytes). Đây là không gian địa chỉ mà bộ xử lý có thể đánh địa chỉ lên
các bit địa chỉ của nó. Không gian địa chỉ này là bằng phẳng( không bị phân đoạn), với
các điạ chỉ sắp xếp liên tiếp từ 0 đến FFFFFFFH. Không gian địa chỉ vật lý này có thể đợc ánh xạ đến bộ nhớ đọc-viết, bộ nhớ chỉ đọc, và bộ nhớ ánh xạ vào/ra. Những điều kiện
dễ dàng ánh xạ bộ nhớ này có thể đợc sử dụng để chia bộ nhớ vật lý này thành các đoạn
hoặc các trang.
Trong bộ xử lý Pentium Pro, kiến trúc Intel cũng hỗ trợ việc mở rộng không
gian địa chỉ vật lý đến 236 bytes(64 GBytes), với một địa chỉ vật lý tối đa là FFFFFFFH.
Sự mở rộng này đợc yêu cầu bởi cờ mở rộng địa chỉ vật lý( PAE), định vị trong bit 5 của
thanh ghi điều khiển CR4.
2 .Các địa chỉ logic và tuyến tính.
Tại mức kiến trúc hệ thống trong chế độ bảo vệ , bộ xử lý sử dụng hai giai đoạn
của việc chuyển đổi điạ chỉ để đến đợc một địa chỉ vật lý : chuyển đổi địa chỉ vật lý và
phân trang không gian địa chỉ tuyến tính.
Thậm chí với việc sử dụng tối thiểu các đoạn, mọi byte trong không gian địa chỉ
của bộ xử lý đợc truy nhập bởi một địa chỉ logic. Một địa chỉ logic bao gồm bộ chọn đoạn
16-bit và một khoảng trống (offset) 32-bit(hình 2). Bộ chọn đoạn xác định đoạn mà byte
đó đợc định vị vào và khoảng trống xác định rõ vị trí của byte đó trong đoạn đó quan hệ
với địa chỉ cơ sở của đoạn đó.
Bộ xử lý chuyển đổi mọi địa chỉ logic vào một địa chỉ tuyến tính. Một địa chỉ
tuyến tính là một địa chỉ 32-bit trong không gian địa chỉ tuyến tính của bộ xử lý. Giống
nh không gian địa chỉ vật lý , không gian địa chỉ tuyến tính là bằng phẳng(không phân
đoạn), một không gian địa chỉ 2 32 byte, với các địa chỉ nằm từ 0 đến FFFFFFFH. Không
gian địa chỉ tuyến tính chứa tất cả các đoạn và các bảng hệ thống xác định cho hệ thống.
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
1.
2.
3.
4.
5.
Hình 3: Các thanh ghi điều khiển.
Các thanh ghi điều khiển gồm có :
CR0 : chứa các cờ điều khiển hệ thống để điều khiển chế độ hoạt động và trạng
thái của bộ xử lý.
CR1 : đợc đặt trớc.
CR2 : chứa các địa chỉ tuyến tính của trang lỗi.
CR3: chứa địa chỉ vật lý đầu tiên của th mục trang. Chỉ có 20 bit nhiều ý nghĩa
nhất của thanh ghi này của địa chỉ đầu tiên của th mục trang đợc xác định rõ, còn
12 bit thấp nhất của CR3 luôn bằng 0 để đảm bảo rằng th mục trang đó có địa chỉ
bắt đầu cách nhau một trang, nói cách khác các th mục trang đợc xếp hàng theo
trang (4-Kbyte).
CR4: Chứa một nhóm cờ kích hoạt vài sự mở rộng cấu trúc cũng nh chỉ ra mức u
tiên của hệ điều hành hỗ trợ cho Streaming SIMD Extensions.
4.Việc phân trang(paging)
Khi chạy ở chế độ bảo vệ, các kiến trúc Intel cho phép không gian địa chỉ tuyến
tính( không gian bộ nhớ có thể đánh địa chỉ đợc) ánh xạ trực tiếp vào một bộ nhớ vật lý
lớn(ví dụ bộ nhớ RAM 4Gbytes) hay ánh xạ gián tiếp(sử dụng cơ chế phân trang) vào một
xử lý (trong bộ đệm dùng để chuyển hoá địa chỉ). Bộ đệm này đáp ứng hầu hết các nhu
cầu cho việc đọc th mục trang hiện thời và các bảng trang mà không cần đòi hỏi một chu
kỳ bus. Các chu kỳ bus phụ chỉ xuất hiện khi bộ đệm không chứa điểm vào bảng
trang,điều này sẩy ra khi một trang không đợc truy nhập trong một thời gian dài .
5.Các tuỳ chọn phân trang.
Việc phân trang đợc điều khiển bởi ba cờ trong trong các thanh ghi điều khiển
của bộ xử lý:
Cờ PG(paging) , bit 31 của thanh ghi CR0
Cờ PSE(page size extensions), bit 4 của thanh ghi CR4
Cờ PAE(physical address extension) bit 5 của thanh ghi CR4
Cờ PG kích hoạt cơ chế chuyển đổi trang. Hệ điều hành hay trình thực hiện thờng
thiết lập cờ này trong khi khởi tạo bộ xửlý. Cờ PG cần đợc thiết lập nếu cơ chế chuyển đổi
trang của bộ xử lý đợc dùng để cung cấp hệ thống bộ nhớ ảo đợc yêu cầu đánh trang hay
nếu hệ điều hành đó đợc thiết kế để chạy nhiều hơn một chơng trình (hay nhiệm vụ) trong
chế độ 8086 ảo.
Cờ PSE kích hoạt các kích thớc trang lớn : các trang 4Mb hoặc 2Mb (khi cờ PAE
đợc thiết lập). Khi cờ PSE bị xoá, độ dài trang chung là 4Kbytes đợc sử dụng.
Cờ PAE kích hoạt các địa chỉ vật lý 36-bit. Sự mở rộng địa chỉ vật lý này chỉ có
thể đợc sử dụng khi việc phân trang đợc kích hoạt. Nó dựa vào các th mục trang và các
bảng trang để tham chiếu các địa chỉ vật lý trên FFFFFFFH.
6.Các bảng trang và các th mục trang
Thông tin mà bộ xử lý sử dụng để chuyển đổi các địa chỉ tuyến tính trong các địa
chỉ vật lý (khi chế độ phân trang đợc kích hoạt) đợc chứa trong 4 cấu trúc dữ liệu sau :
Th mục trang(page directory) : Một mảng các điểm vào th mục trang 32-bit(PDEpage directory entry) chứa trong một trang 4Kbytes. Đạt đến 1024 điểm vào th
mục trang nằm trong th mục trang.
Bảng trang(page table) : một mảng các điểm vào bảng trang 32-bit(PTE page
vật lý. Phơng pháp phân trang này có thể đợc sử dụng để đánh địa chỉ lên tới 220 trang, phơng pháp này mở ra một không gian địa chỉ tuyến tính 232 bytes (4 GbBytes).
Để chọn những điểm vào bảng khác nhau này, một địa chỉ tuyến tính đợc chia
thành ba vùng:
Điểm vào th mục trang (Page-directory entry): Từ bits 22 đến bit 31 cung cấp một
khoảng trắng để chứa một điểm vào trong th mục trang đó . Điểm vào đợc lựa
chọn địa chỉ vật lý cơ sở của một bảng trang.
Điểm vào bảng trang (Page-table entry): Từ bit 12 đến bit 21 của địa chỉ tuyến
tính cung cấp một khoảng trống cho một điểm vào trong bảng trang đợc lựa chọn
đó . Điểm vào này cung cấp địa chỉ vật lý cơ sở của một trang trong bộ nhớ vật lý.
Địa chỉ tơng đối trong trang(Page offset) Từ bit 0 đến bit 11 cung cấp một khoảng
trống cho một địa chỉ vật lý trong trang đó .
Phần mềm quản lý bộ nhớ có một tuỳ chọn trong việc sử dụng một th mục trang
cho tất cả các chơng trình và các nhiệm vụ, một th mục trang cho mỗi nhiệm
vụ,hay một cặp th mục trang nào đó .
Hình 4: Chuyển đổi địa chỉ tuyến tính (Các trang 4-Kbyte)
6.2 Chuyển đổi địa chỉ tuyến tính ( Các trang 4-Mbyte)
7
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
Hình 5 chỉ ra cách mà một th mục trang có thể đợc sử dụng để ánh xạ đến các địa
chỉ tuyến tính đến các trang 4 M-byte. Các điểm vào trong th mục trang đó chỉ đến các
trang 4-Mbyte trong bộ nhớ vật lý. Phơng pháp phân trang này có thể đợc sử dụng để ánh
xạ lên đến 1024 trang vào trong một không gian địa chỉ tuyến tính 4-Gbyte. Kích th ớc
trang 4-Mbyte đó đợc chọn bởi sự thiết lập cờ PSE trong thanh ghi điều khiển CR4 và
thiết lập cờ kích thớc trang (PS) trong một điểm vào th mục trang. Với các cờ này, một địa
chỉ tuyến tính đợc chia thành hai phần:
Không có cờ hiện thời trong thanh ghi này cho một th mục trang. Th mục trang đó
có thể không nằm hiện thời (đợc đánh trang ngoài bộ nhớ vật lý) trong khi nhiệm vụ liên
kết của nó đợc treo, nhng hệ điều hành cần phải chắc chắn rằng th mục trang đó đợc chỉ
ra bởi ảnh của thanh ghi này trong một đoạn trạng thái nhiệm vụ (Task-State SegmentTSS) của nhiệm vụ đợc thể hiện trong bộ nhớ vật lý trớc khi nhiệmvụ đó đợc kết thúc. Th
mục trang này cũng nằm lại trong bộ nhớ cho đến khi nhiệm vụ đó hoạt động.
8
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
8.Các điểm vào th mục trang và các điểm vào bảng trang
Hình 6 miêu tả khuôn dạng của các điểm vào một th mục trang và bảng trang khi
những trang 4-KByte và các địa chỉ vật lý 32-bit đang đợc sử dụng.
Hình 6: Khuôn dạng của các điểm vào th mục trang và bảng trang cho các trang 4-KByte
và các địa chỉ vật lý 32-bit
Tiếp theo , hình 7 miêu tả khuôn dạng của các điểm vào th mục khi các trang 4MByte và các địa chỉ vật lý 32-bit đang đợc sử dụng.
Hình 7: Khuôn dạng của các điểm vào th mục trang cho các trang 4-MByte và các địa chỉ
vật lý 32-bit.
Chức năng của các cờ và các trờng trong các điểm vào trên hai hình 6 và 7 nh sau:
Vùng địa chỉ cơ sở của trang(Page base address): Từ bit 12 đến bit 31
9
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
(Các điểm vào bảng trang cho các trang 4-KByte). Vùng này xác định rõ
3. Làm mất hiệu lực điểm vào bảng trang hiện tại trong bộ đệm TLB .
4. Trả lại từ trình xử lý trang không có mặt trong bộ nhớ đến khởi
động lại chơng trình bị ngắt hay nhiệm vụ bị ngắt.
Cờ R/W (Read/Write flag): bit 1
Chỉ rõ đặc quyền đọc/ghi của một trang hay một nhóm trang( trong trờng
hợp của một điểm vào th mục trang nó trỏ đến một bảng trang.).Khi cờ này
bị xoá, trang này chỉ đợc đọc (read-only).Khi cờ này đợc thiết lập lên 1 thì
trang đó có thể đợc đọc và ghi lên. Cờ này tác động lẫn nhau với cờ U/S và
cờ WP trong thanh ghi CR0.
Cờ U/S (User/Supervisor flag) : bit 2
Chỉ rõ đặc quyền của ngời sử dụng hay ngời quản trị hệthống cho một
trang hay một nhóm trang(trong trờng hợp của một điểm th mục trang nó
trỏ đến một bảng trang.). Khi cờ này bị xoá, trang đó đợc chỉ đến mức đặc
quyền của ngời quản trị hệ thống.Khi cờ này đợc thiết lập, trang đó đợc chỉ
đến mức đặc quyền của ngời sử dụng. Cờ này tác động lẫn nhau với các cờ
R/W và cờ WP trong thanh ghi CR0.
Cờ PWT (Page-level write-through flag): bit3
10
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
việc chuyển đổi của các trang và các bảng trang vào hay ra ngoài bộ nhớ
vật lý.
Cờ PS (Page size flag): bit 7
Cờ này xác định kích thớc trang. Cờ này chỉ đợc sử dụng trong các điểm
vào th mục trang. Khi cờ này bị xoá, kích thớc trang là 4-KByte và điểm
vào th mục trang chỉ đến một bảng trang. Khi cờ này đợc thiết lập, kích
thớc trang là 4-MByte cho việc đánh địa chỉ 32-bit (và 2MByte nếu việc
đánh địa chỉ vật lý mở rộng đợc kích hoạt.) và điểm vào th mục trang trỏ
đến một trang. Nếu điểm vào th mục trang trỏ đến một bảng trang, thì tất
cả các trang liên kết với bảng trang đó sẽ là những trang 4-Kbyte.
Cờ G (Global flag) : bit 8
Chỉ ra một trang chung khi cờ này đợc thiết lập. Khi một trang đợc đánh
dấu là chung và cờ kích hoạt trang chung (Page global enable flag) trong
thanh ghi CR4 đợc thiết lập, điểm vào bảng trang hay th mục trang cho
trang đó không bị làm mất hiệu lực trong TLB khi thanh ghi CR3 đợc nạp
hay khi một sự chuyển đổi nhiệm vụ xuất hiện. Cờ này đợc cung cấp để
ngăn chặn những trang sử dụng thờng xuyên(nh là những trang chứa nhân
hay hệ điều hành khác hay mã chạy đợc) đợc đa ra khỏi TLB. Chỉ phần
mềm mới có thể thiết lập hay xoá cờ này. Với các điểm vào th mục trang
chỉ đến các bảng trang, cờ này đợc bỏ qua và những đặc tính chung của
một trang đợc thiết lập trong các điểm vào bảng trang.
Những bit đợc đặt trớc và cung cấp cho phần mềm
Trong một điểm vào bảng trang, bit 7 đợc đặt trớc và thờng đợc xoá về 0;
trong một điểm vào th mục trang trỏ đến một bảng trang, bit 6 đợc đặt trớc
và cần xoá về 0. Với một điểm vào th mục trang cho một trang 4-MByte,
từ bit 12 đến bit 21 đợc đặt trớc và xoá về 0 với các bộ xử lý của Intel đến
Pentium II. Với cả hai loại điểm vào bit 9,10, 11 đợc cung cấp cho phần
mềm. Khi bit P bị xoá, từ bit 1 đến bit 31 đợc cung cấp cho phần mềm. Khi
cờ PSE và PAE trong thanh ghi điều khiển CR4 đợc thiết lập , bộ xử lý
sinh ra một thông báo trang cha có trong bộ nhớ nếu những bit đặt trớc này
Các TLB không thể truy nhập đến các chơng trình ứng dụng và các nhiệm vụ (mức
đặc quyền u tiên lớn hơn 0), nhng chúng không thể làm mất hiệu lực các TLB. Chỉ có hệ
điều hành hay các thủ tục chạy chạy ở mức đặc quyền u tiên bằng 0 mới có thể làm mất
hiệu lực các TLB hay chọn các điểm vào TBL.Bất cứ khi nào một điểm vào th mục trang
hay bảng trang đợc thay đổi (nhập vào khi cờ P bị xoá), thì hệ điều hành cần ngay lập tức
làm mất hiệu lực điểm vào phù hợp trên TLB đó để nó có thể đợc cập nhật điểm vào tiếp
theo đợc tham chiếu đến.Mặc dù, đặc tính mở rộng địa chỉ vật lý (PAE) đợc kích hoạt để
sử dụng việc đánh địa chỉ 36-bit, thì một bảng mới đợc cộng vào hệ thống cấp bậc phân
trang. Bảng mới này đợc gọi là bảng con trỏ th mục trang. Nếu một điểm vào đợc thay đổi
trong bảng này(để trỏ tới một th mục trang khác), các TLBs sau đó cần phải đợc xoá bỏ
bằng việc ghi lên CR3.
Tất cả các TLB (không chung) bị làm mất hiệu lực một cách tự động bất kỳ lúc
nào khi thanh ghi CR3 đợc nạp (trừ phi cờ G cho một điểm vào trang hay điểm vào bảng
trang đợc thiết lập). Thanh ghi CR3 có thể đợc nạp vào bằng hai cách:
Một cách rõ ràng bằng việc sử dụng lệnh MOV nh sau:
MOV CR3, EAX
khi đó thanh ghi EAX chứa địa chỉ cơ sở (đầu tiên) của th mục trang phù hợp.
Một cách hoàn toàn bởi việc chạy sự chuyển đổi nhiệm vụ, nó sẽ thay đổi một
cách tự động nội dung của thanh ghi CR3.
Lệnh INVLPG đợc cung cấp để làm mất hiệu lực điểm vào bảng trang xác định trong
TLB. Bình thờng, lệnh này chỉ làm mất hiệu lực của một điểm vào TLB riêng, nhng trong
một vài trờng hợp, nó có thể làm mất hiệu lực của nhiều hơn một điểm vào đợc lựa chọn
và thậm chí có thể tất cả điểm vào của các TLB. Lệnh này bỏ qua việc thiết lập của cờ G
trong một điểm vào th mục trang hay bảng trang.
Trong bộ xử lý Pentium , cờ kích hoạt trang chung (PGE)trong thanh ghi CR4 và
cờ G của một điểm vào th mục trang hay bảng trang(bit 8) có thể đợc sử dụng để ngăn
chặn những trang đợc sử dụng thờng xuyên khỏi bị làm mất hiệulực một cách tự động
trong các TLB trên sự chuyển đổi nhiệm vụ hay việc nạp mới của thanh ghi CR3. Khi bộ
xử lý nạp một điểm vào th mục trang hay bảng trang cho một trang chung vào TLB, điểm
vào đó sẽ nằm lại trong TLB một cách không vô hạn định. Cách duy nhất để làm mất hiệu
Trờng địa chỉ cơ sở của th mục trang 20-bit trong thanh ghi CR3(PDPR) đợc thay
thế bởi trờng địa chỉ cơ sở của bảng con trỏ th mục trang 27-bit.(Trong trờng hợp
này thanh ghi CR3 đợc gọi là PDPTR). Trờng này cung cấp 27 bits nhiều ý nghĩa
nhất của một địa chỉ vật lý của byte đầu tiên trong bảng con trỏ th mục trang,
những bits này bắt buộc bảng đó phải đợc định vị trên vùng ranh giới 32-byte.
Việc chuyển đổi địa chỉ vật lý đợc thay đổi để cho phép ánh xạ các địa chỉ tuyến
tính 32-bit vào một không gian địa chỉ vật lý lớn hơn.
Hình 9: Cấu trúc thanh ghi CR3 khi chế độ mở rộng địa chỉ vật lý đợc kích hoạt.
11.1 Chuyển đổi địa chỉ tuyến tính với việc đánh địa chỉ mở rộng đ ợc
kích hoạt (các trang 4-KByte)
Hình 10 miêu tả con trỏ th mục trang , th mục trang, và chế độ cấp bậc bảng trang
khi việc ánh xạ các địa chỉ tuyến tính đến các trang 4-KByte với chế độ đánh địa chỉ vật
lý mở rộng đợc kích hoạt. Phơng pháp phân trang này có thể đợc sử dụng để đánh địa chỉ
lên tới 220 trang, nó mở rộng một không gian địa chỉ tuyến tính 232 bytes (4 GBytes).
13
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
Hình 10: Chuyển đổi địa chỉ tuyến tính với chế độ đánh địa chỉ vật lý mở rộng đợc kích
hoạt với các trang 4-KByte.
Để chọn các điểm vào bảng khác nhau, một địa chỉ tuyến tính đợc chia vào 3
vùng:
Điểm vào bảng con trỏ th mục trang(Page-directory-pointer-table-entry) : bit 30 và
bit 31 cung cấp một khoảng trống cho một trong 4 điểm vào trong bảng con trỏ th
mục trang. Điểm vào đợc chọn này cung cấp địa chỉ vật lý cơ sở (đầu tiên) của
mục trang.
Điểm vào th mục trang(Page-directory-table entry): từ bit 21 đến bit 29 cung cấp
một vùng trống cho một điểm vào trong th mục trang đó . Điểm vào đợc chọn này
cung cấp địa chỉ vật lý cơ sở (đầu tiên) của một trang 2-MByte hay 4-MByte.
Địa chỉ tơng đối trong trang (Page offset): từ bit 0 đến bit 20 cung cấp một khoảng
trống cho một địa chỉ vật lý trong trang đó.
11.3 Truy nhập vào toàn bộ không gian địa chỉ vật lý mở rộng với cấu
trúc bảng trang mở rộng.
Cấu trúc bảng trang đã miêu tả ở phần trớc đợc phân thành hai vùng cho phép đạt
đến 4 GBytes của một không gian địa chỉ vật lý mở rộng 64-GByte đợc đánh địa chỉ trong
một lần. Các vùng 4-Gbyte thêm vào của bộ nhớ vật lý có thể đợc đánh địa chỉ theo cả hai
cách sau:
Đổi con trỏ trong thanh ghi CR3 trỏ đến một bảng con trỏ th mục trang khác, bảng
này theo thứ tự trỏ đến một tập hợp các th mục trang và bảng trang khác.
Đổi các điểm vào trong bảng con trỏ th mục trang trỏ đến các th mục trang khác,
những th mục trang này theo thứ tự lại trỏ đến các tập hợp các bảng trang khác.
11.4 Các điểm vào th mục trang và bảng trang với chế độ đánh trang
mở rộng đợc kích hoạt.
Hình 12 miêu tả cấu trúc của bảng con trỏ th mục trang, th mục trang, và các điểm
vào bảng trang khi các trang 4-Kbyte và các địa chỉ vật lý mở rộng 36-bit đợc sử dụng.
Hình 13 miêu tả cấu trúc của bảng con trỏ th mục trang và các điểm vào th mục trang khi
các trang 2-MByte hoặc 4-MByte và các địa chỉ vật lý mở rộng 36-bit đợc sử dụng.
Những chức năng của những cờ trong những điểm vào này giống nh miêu tả trong
phần :Các điểm vào th mục trang và bảng trang.Những điểm khác chính trong những
điểm vào này nh sau:
Một điểm vào bảng con trỏ th mục trang đợc thêm vào.
Hình 13: Cấu tạo của bảng con trỏ th mục trang, và các điểm vào th mục trang cho các
trang 2-MByte hoặc 4-MByte và các địa chỉ vật lý mở rộng 36-bit.
Bit P (present flag- bit 0) trong tất cả các điểm vào bảng con trỏ th mục trang cần
phải thiết lập lên 1 bất cứ lúc nào khi chế độ đánh địa chỉ vật lý mở rộng đợc kích hoạt.
Đó là khi bất cứ lúc nào cờ PAE (bit 5 trong thanh ghi CR4) và cờ PG(bit 31 trong thanh
ghi CR0 )đợc thiết lập. Nếu cờ P không đợc thiết lập trong tất cả 4 điểm vào bảng con trỏ
th mục trang trong bảng con trỏ th mục trang đó khi chế độ đánh địa chỉ vật lý mở rộng đợc kích hoạt, thì một ngoại lệ bảo vệ chung (general-protection exception ,#GP) đợc sinh
ra.
Cờ PS (page size flag- bit 7) trong một điểm vào th mục trang xác định nếu một
điểm vào trỏ đến một bảng trang hay một trang 2-MByte hoặc 4-MByte . Khi cờ này bị
xoá, điểm vào đó chỉ tới một bảng trang, khi cờ này đợc thiết lập lên 1 thì điểm vào đó
trỏ tới một trang 2-MByte hoặc 4-MByte. Cờ này cho phép các trang 4-KByte, 2-MByte,
4-MByte đợc xếp cùng nằm trong một tập hợp các bảng phân trang.
Các cờ A và D (bit 5 và 6) đợc cung cấp cho các điểm vào bảng trang chỉ đến các
trang.
Bits 9,10,11 trong tất cả các điểm vào trang cho chế độ mở rộng địa chỉ vật lý đợc
cung cấp cho phần mềm. (Khi cờ P đợc thiết lập, từ bit 1 đến bit 63 đợc cung cấp cho
phần mềm.) Tất cả các bit trong hình đợc đánh dấu đặt trớc hay là 0 thì cần xoá về 0 bởi
phần mềm và không truy nhập đợc bởi phần mềm .Khi cờ PSE và/hoặc cờ PAE trong
thanh ghi điều khiển CR4 đợc thiết lập lên 1, bộ xử lý sinh ra thông báo trang cha có
trong bộ nhớ (#PF),nếu các bit đặt trớc trong các điểm vào th mục trang và bảng trang
không đợc xoá về 0 , thì bộ xử lý sinh ra một thông báo ngoại lệ bảo vệ chung (#GP) nếu
các bits đặt trớc trong một điểm vào bảng con trỏ th mục trang trong bảng con trỏ th mục
trang không đợc xoá về 0 .
12. Sự mở rộng kích thớc trang 36-bit (page size extension- PSE)
Sự mở rộng kích thớc trang 36-bit mở rộng địa chỉ vật lý 36-bit cung cấp cho các
trang 4-MByte trong khi đang giữ cho khỏi gián đoạn một điểm vào th mục trang 4-byte.
Phơng pháp tiếp cận này cung cấp một cơ chế đơn giản cho các nhà cung cấp của hệ điều
Bảng 2: Các chế độ phân trang và kích thớc địa chỉ vật lý.
Để sử dụng đặc tính PSE-36, đặc tính PAE cần đợc xoá. Mặc dù, đặc tính PSE-36
không ảnh hởng đến đặc tính PAE 36-bit. Hệ điều hành đang tồn tại và phần mềm sử
dụng đặc tính PAE sẽ tiếp tục có các đặc tính và chức năng tơng thích với các bộ xử lý
của họ P6, hỗ trợ đặc tính PSE 36-bit. Đặc biệt, cấu trúc điểm vào th mục trang khi PAE
đợc kích hoạt cho các trang 2-MByte hoặc 4-MByte là chính xác nh mô tả trong hình 13.
Bất kỳ đặc tính đánh địa chỉ 36-bit nào đợc sử dụng(PAE hay PSE 36-bit), không
gian địa chỉ tuyến tính của bộ xử lý còn lại 32 bits. Những ứng dụng cần phân vùng không
gian địa chỉ của công việc của chúng, công việc này nạp qua các tiến trình của hệ điều
hành đa nhiệm ,để tạo thuận lợi cho bộ nhớ vật lý thêm vào đợc cung cấp trong hệ thống
này.
Đặc tính PSE 36-bit mở rộng cấu trúc điểm vào th mục trang của kiến trúc Intel
cho các trang 4-MBytevà các địa chỉ 32-bit bằng việc sử dụng các bits 13 đến 16 (các bits
đợc đặt trớc một cách hình thức đợc yêu cầu ghi về 0) để mở rộng địa chỉ vật lý mà không
đòi hỏi một điểm vào th mục trang 8-byte. Vì thế, với đặc tính PSE-36, một th mục trang
có thể chứa đến 1024 điểm vào, mỗi điểm vào trỏ đến một trang 4-Mbyte , trang này có
thể tồn tại bất kỳ đâu trong không gian địa chỉ vật lý 36-bit của bộ xử lý.
Hình 14 cũng chỉ ra việc ánh xạ địa chỉ tuyến tính đến các trang 4-MByte khi đặc
tính PSE 36-bit đợc kích hoạt. Địa chỉ vật lý cơ sở của trang 4-MByte đó đợc chứa trong
th mục trang đó. PA-2(các bit từ 13 đến 16) đợc sử dụng để cung cấp 4 bits cao hơn (từ bit
32 đến bit 35) của một địa chỉ vật lý 36-bit. PA-1(từ bit 22 đến bit 31) tiếp tục cung cấp
10 bit tiếp theo (từ bit 22 đến 31) của địa chỉ vật lý đó cho trang 4-MByte. Địa chỉ offset
trong trang này cung cấp 22 bit thấp hơn của địa chỉ tuyến tính đó. Sơ đồ này loại bỏ mức
thứ hai của hành động gián tiếp bởi việc sử dụng các bảng trang 4-Kbyte.
18
Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM-PC
Hình 15: Sự mở rộng kích thớc trang tuyến tính đến việc chuyển đổi vật lý
Đặc tính PSE-36 là trong suốt với hệ điều hành đang tồn tại mà sử dụng các trang
4-MByte, bởi vì các bit không sử dụng trong PA-2 hiện thời đợc làm cho về 0 bởi các bộ
xử lý Intel. Đặc tính này đòi hỏi các trang 4-MByte đợc sắp xếp trong vùng ranh giới 4MByte và bộ nhớ vật lý liên tiếp của các phần 4-MByte. Vì thế , 10 bit của PA-1 đủ để
xác định rõ địa chỉ vật lý cơ sở (đầu tiên) của bất kỳ trang 4-MByte nào dới 4GBytes. Một
hệ điều hành có thể dễ dàng hỗ trợ các địa chỉ lớn hơn 4 GByte một cách dễ dàng bởi việc
cung cấp 4 bit cao hơn của địa chỉ vật lý đó trong PA-2 khi tạo ra PDE (điểm vào th mục
trang) cho một trang 4-MByte.
12.2 Phát hiện lỗi.
Có vài điều kiện có thể gây ra cho các bộ xử lý họ P6 gây ra lỗi trang không có
trong bộ nhớ (page fault). Những điều kiện này có liên quan đến việc sử dụng , hoặc sự
chuyển đổi giữa các đặc tính quản lý bộ nhớ khác nhau:
Nếu đặc tính PSE đợc kích hoạt, một giá trị khác 0 trong bất kỳ các bit đặt trớc
còn lại (từ 17 đến 21) của một điểm vào th mục trang 4-MByte gây ra việc thông
báo trang không có trong bộ nhớ, với bit đặt trớc(bit 3) thiết lập trong mã lỗi.
Nếu đặc tính PAE đợc kích hoạt và thiết lập cho việc sử dụng các trang 2-MByte
hoặc 4-MByte(đó là các điểm vào bảng th mục trang 8byte đang đợc sử dụng.),
một giá trị khác 0 của bất kỳ bit đặt trớc nào từ 13 đến 20 gây ra việc trang không
có trong bộ nhớ (page fault), với bit đặt trớc (bit 3) thiết lập trong mã lỗi. Chú ý
rằng bit 12 bây giờ đang đợc sử dụng để hỗ trợ đặc tính PAT(page attribute table).
13. Anh xạ các đoạn sang các trang.
Cơ chế phân đoạn và phân trang đợc cung trong kiến trúc Intel hỗ trợ các phơng
pháp đa dạng để quản lý bộ nhớ. Khi cơ chế phân đoạn và phân trang đợc kết hợp, các
đoạn có thể đợc ánh xạ đến các trang trong vài trờng hợp. Để cung cấp một môi trờng
đánh địa chỉ không phân đoạn, ví dụ nh tất cả các mã, dữ liệu, và các modul ngăn xếp có
thể đợc ánh xạ đến một hay nhiều đoạn lớn( có thể đến 4-GByte) , mà chúng chia sẻ cùng
phần II: Chơng trình Minh hoạ
Chơng trình minh hoạ đa ra một số thông tin về hệ thống:
1.Thông tin về phần cứng.
Page size : kích thớc trang tính theo byte.
Processor type: kiểu bộ xử lý.
Minimum application address: Địa chỉ nhỏ nhất có thể truy nhập đợc
cho ứng dụng và các th viện liên kết động(DLLs).
Maximum application address: Địa chỉ lớn nhất có thể truy nhập đợc
cho ứng dụng và các th viện liên kết động (DLLs).
2.Thông tin về bộ nhớ.
Memory load: Phần trăm bộ nhớ đang sử dụng (%).
21
CÊu tróc d÷ liÖu phôc vô cho viÖc qu¶n lý bé nhí ph©n trang trong IBM-PC
Total physical memory: Tæng bé nhí vËt lý (KB) .
Free physical memory: Bé nhí cha sö dông (KB).
Total paging file: Tæng bé nhí ®îc ph©n trang (KB).
Free paging file: Bé nhí ph©n trang cha sö dông (KB).