1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM PC

23 781 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 458,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nếu việc phân trang không đợc sử dụng, bộ xử lý ánh xạ trực tiếp địa chỉ tuyếntính đến một địa chỉ vật lý có nghĩa là địa chỉ tuyến tính đó ra ngoài bus địa chỉ của bộ xử lý..Nếu không g

Trang 1

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

12.Sự mở rộng kích thớc trang 36-bit 19

12.1 Sự miêu tả của đặc tính mở rộng kích thớc trang 36-bit 19

12.2 Phát hiện lỗi 22

13.Anh xạ các đoạn sang các trang 22

Phần II:

Chơng trình minh hoạ.

Phần III:

Tài liệu tham khảo.

phần i: nội dung lý thuyết I.Giới thiệu chung:

1.Công việc quản lý bộ nhớ

Bộ nhớ là tài nguyên mà không có nó thì không thể thực hiện chơng trình Trên thực tế ở mỗi thời điểm hầu hết bộ nhớ không tham gia vào việc thực hiện chơng trình mà chỉ đóng vai trò lu giữ thông tin để xử lý sau này Tuy vậy vai trò của các bytes tích cực là vô cùng to lớn Nếu hạn chế dung lợng bộ nhớ trong thì không thể tăng tốc độ thực hiện của bất kỳ chơng trình nào cũng nh không thể đơn giản hóa cấu trúc của chơng trình đó Các chơng trình chờ đợi phân phối bộ nhớ trong đợc lu trữ ở bộ nhớ ngoài Tồn tại nhiều phơng pháp cho phép sử dụng bộ nhớ ngoài nh là sự mở rộng của bộ nhớ trong, tạo cảm giác có một bộ nhớ trong với dung lợng lớn hơn nhiều bộ nhớ trong hiện có Sự tồn tại tài

Trang 2

nguyên ảo này đã làm cho công tác lập trình trở nên dễ dàng, đơn giản vì ngời sử dụngkhô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ảmsú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ầncủ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ơngtrì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ứckhi 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àmviệ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ủachơ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à đợckhắ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ônggian 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ảovệ(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ântrang 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ừngmô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àycòn gọi là bảng quản lý đoạn và ký hiệu là SCB(segment control block) SCB còn chứacác thông tin trợ giúp định vị chơng trình ở mỗi giai đoạn thực hiện, hệ thống sẽ dựa vàoSCB để nạp các modul cần thiết vào trong bộ nhớ Trong cấu trúc này, chừng nào còn chỗthì hệ thống còn nạp tiếp các modul mới Gặp trờng hợp thiếu bộ nhớ, thì cơ chế phân

đoạn cần phải đợc bố trí lại bộ nhớ Đa bớt ra ngoài một số môdul có khả năng không còn

sử dụng lại nữa.Nh vậy cấu trúc này không đòi hỏi ngời sử dụng phải khai báo thêm bất

kỳ một thông tin phụ nào, mọi công việc đều do hệ thống đảm nhiệm và khi dung lợng bộnhớ tự do tăng thì nói chung tốc độ thực hiện chơng trình cũng tăng theo Nhợc điểm củacấu trúc này là hiệu quả sử dụng bộ nhớ phụ thuộc nhiều vào cách phân chia chơng trìnhthành các modul độc lập Cũng nh cấu trúc Overlay, chỉ cần tồn tại vài modul độ dài lớn

là hiệu qủa sử dụng bộ nhớ sẽ giảm một cách đáng kể Cấu trúc này chỉ áp dụng đợc khi

bộ nhớ đợc quản lý theo kiểu phân đoạn

Trong cấu trúc phân trang, chơng trình đợc tập hợp nh trong trờng hợp có cấu trúctuyến tính , nhng sau đó đợc chính chơng trình biên tập chia thành từng phần có độ dàibằng nhau gọi là trang Sản phẩm biên tập là một bảng quản lý trang (PCB-page controlblock), mỗi phần tử của bảng ứng với một trang của chơng trình ngời sử dụng Khi thựchiện, supervisor quản lý trang sẽ theo dõi , đảm bảo đa trang cần thiết vào bộ nhớ trong.Cấu trúc phân trang nói chung chỉ phát huy đợc hiệu qủ khi bộ nhớ đợc quản lý theo cácchiến lợc phân trang Trong thực tế , chiến lợc phân trang thờng đợc áp dụng với từngmodul chơng trình và với phơng pháp quản lý dữ liệu kiểu phân trang

Dới đây là hình 1 minh hoạ cơ chế phân đoạn và phân trang trong bộ nhớ

Trang 3

ợ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ạnhoặ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ônggian đị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ủathanh 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ạncủ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ạn16-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ỉ 232 byte, với các địa chỉ nằm từ 0 đến FFFFFFFH Khônggian đị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

Trang 4

Để chuyển đổi một địa chỉ logic sang một địa chỉ tuyến tính, bộ xử lý làm cáccông việc sau:

 Sử dụng khoảng trống(offset) trong bộ chọn đoạn để định vị phần tử miêu tả đoạncho đoạn đó vào bảng các bộ mô tả toàn cục GDT(Global Descriptor Table) hoặcbảng các bộ mô tả cục bộ LDT(Local Descriptor Table ) và đọc nó vào trong bộ

xử lý (Bớc này chỉ cần khi một bộ chọn đoạn mới đợc nạp vào trong thanh ghi

đoạn.)

 Kiểm bộ miêu tả đoạn để xem các quyền truy nhập và vùng bộ nhớ của đoạn đó

để chắc chắn rằng đoạn đó có thể truy nhập đợc và khoảng trống đó nằm trongcác giới hạn của đoạn

 Cộng địa chỉ cơ sở(đầu tiên) cảu đoạn từ bộ miêu tả đoạn đến địa chỉ tơng đối(offset) rồi đến một cấu trúc địa chỉ tuyến tính

Hình 2: Sự chuyển đổi địa chỉ logic sang địa chỉ tuyến tính

Nếu việc phân trang không đợc sử dụng, bộ xử lý ánh xạ trực tiếp địa chỉ tuyếntính đến một địa chỉ vật lý (có nghĩa là địa chỉ tuyến tính đó ra ngoài bus địa chỉ của bộ

xử lý.).Nếu không gian địa chỉ tuyến tính đợc phân trang, mức thứ hai của việc chuyển

đổi địa chỉ đợc sử dụng để chuyển đổi địa chỉ tuyến tính vào một địa chỉ vật lý

3.Các thanh ghi điều khiển.

Các thanh ghi điều khiển xác chế độ hoạt động của bộ xử lý và các đặc tính củacác nhiệm vụ đang thực hiện

Trang 5

Hình 3: Các thanh ghi điều khiển.

Các thanh ghi điều khiển gồm có :

1 CR0 : chứa các cờ điều khiển hệ thống để điều khiển chế độ hoạt động và trạngthái của bộ xử lý

2 CR1 : đợc đặt trớc

3 CR2 : chứa các địa chỉ tuyến tính của trang lỗi

4 CR3: chứa địa chỉ vật lý đầu tiên của th mục trang Chỉ có 20 bit nhiều ý nghĩanhấ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 theotrang (4-Kbyte)

5 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 utiê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ếntí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

bộ nhớ vật lý nhỏ hơn và vào đĩa lu trữ Phơng pháp sau cùng này của việc ánh xạ khônggian địa chỉ tuyến tính đợc tham chiếu chung nh là bộ nhớ ảo hay bộ nhớ ảo phân trangyêu cầu

Khi cơ chế phân trang đợc sử dụng, bộ xử lý chia không gian điạ chỉ tuyến tínhthành những trang có kích thớc cố định ,thờng có độ dài 4Kbytes Những trang này có thể

đợc ánh xạ vào trong bộ nhớ vật lý hay đĩa lu trữ Khi một chơng trình(hay một nhiệm vụ)tham chiếu đến một địa chỉ logic trong bộ nhớ, bộ xử lý chuyển đổi địa chỉ đó sang một

địa chỉ tuyến tính và sau đó sử dụng cơ chế phân trang của nó để chuyển đổi địa chỉ tuyếntính này sang địa chỉ vật lý tơng ứng Nếu trang đó có chứa địa chỉ tuyến tính đó không cómặt hiện thời trong bộ nhớ vật lý, bộ xử lý sinh ra một ngoại lệ thông báo trang ch a cótrong bộ nhớ(#PF) Trình xử lý ngoại lệ này cho thông báo trang cha có trong bộ nhớ sẽchỉ dẫn cho hệ điều hành hay trình thực hiện để nạp trang đó từ đĩa lu trữ vào trong bộ

Trang 6

nhớ vật lý Khi một trang đợc nạp vào trong bộ nhớ vật lý , một tín hiệu đáp lại từ trìnhquản lý ngoại lệ gây ra một lệnh để sinh ra một ngoại lệ đợc bắt đầu Thông tin mà bộ xử

lý sử dụng để ánh xạ địa chỉ tuyến tính vào trong không gian địa chỉ vật lý và sinh ranhững thông báo trang cha có trong bộ nhớ(khi cân thiết) đợc chứa trong các th mục trang

và bảng trang trong bộ nhớ

Phân trang khác so với phân đoạn bởi vì nó chỉ sử dụng các trang có kích thớc cố

định Không giống với các đoạn có cùng kích thớc với mã hay cấu trúc dữ liệu mà chúngchứa, các trang có kích thớc có định Nếu việc phân đoạn chỉ là một dạng của việc chuyển

đổi địa chỉ sử dụng, một cấu trúc dữ liệu nằm trong bộ nhớ vật lý sẽ có tất cả các phần của

nó trong bộ nhớ Nếu phân trang đợc sử dụng , một cấu trúc dữ liệu có thể nằm một phầntrong bộ nhớ và một phần trong đĩa lu trữ

Để tối thiểu hoá số lợng các chu kỳ bus đòi hỏi cho việc chuyển đổi địa chỉ , thmục trang đợc truy nhập gần đây nhất và các điểm vào bảng trang đa lu giữ kín trong bộ

xử lý (trong bộ đệm dùng để chuyển hoá địa chỉ) Bộ đệm này đáp ứng hầu hết các nhucầ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ảngtrang,đ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ểncủ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ờngthiế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 đổitrang của bộ xử lý đợc dùng để cung cấp hệ thống bộ nhớ ảo đợc yêu cầu đánh trang haynế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ụ) trongchế độ 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ácbả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 địachỉ 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 page directory entry) chứa trong một trang 4Kbytes Đạt đến 1024 điểm vào thmục trang nằm trong th mục trang

32-bit(PDE- Bảng trang(page table) : một mảng các điểm vào bảng trang 32-bit(PTE – pagetable entry) đợc chứa trong một trang 4Kbytes Một bảng trang chứa 1024 điểmvào bảng trang (Bảng trang không đợc sử dụng cho các trang 4Mb hoặc 2Mb.Những kích thớc trang này đợc ánh xạ trực tiếp từ một hay nhiều các điểm vào thmục trang.)

 Trang(page): Không gian địa chỉ 4Kbyte, 2Mbyte,4Mbyte

 Bảng con trỏ th mục trang( Page directory pointer table): Mảng của bốn điểm vào64-bit,mỗi điểm vào chỉ đến một th mục trang Cấu trúc dữ liệu này chỉ đợc sửdụng khi sự mở rộng địa chỉ vật lý đợc kích hoạt

Những bảng này cung cấp sự truy nhập đến cả các trang 4Kbyte hay các trang 4Mbyte khiviệc đánh địa chỉ vật lý 32-bit thông thờng đợc sử dụng và đến cả các trang 4KByte ,2Mbyte, 4Mbyte khi việc đánh điạ chỉ mở rộng đợc sử dụng.Bảng sau sẽ minh hoạ cáckích thớc trang và kích thớc địa chỉ vật lý đạt đợc từ các thiết lập khác nhau của các cờ

điều khiển phân trang Mỗi điểm vào th mục trang chứa một cờ kích thớc PS(page size) ,

cờ này sẽ xác định rõ liệu điểm vào đó có chỉ đến một bảng trang mà các điểm vào của nólần lợt chỉ đến các trang 4Kbyte( PS thiết lập giá trị 0) hay liệu điểm vào th mục trang đó

có chỉ trực tiếp đến trang 4Mbyte hay 2Mbyte(PSE hay PAE đợc thiết lập lên 1 và PSEthiết lập lên 1)

Trang 7

Bảng 1: Kích thớc trang và kích thớc địa chỉ vật lý.

6.1.Chuyển đổi địa chỉ tuyến tính(Các trang 4-Kbyte)

Hình 4 miêu tả một th mục trang và hệ thống đẳng cấp bảng trang khi ánh xạcác địa chỉ tuyến tính đến các trang 4K-byte Các điểm vào trong th mục trang này chỉ

đến các bảng trang, và các điểm vào trong một bảng trang chỉ đến các trang trong bộ nhớ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 chiathà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ộtkhoảng trắng để chứa một điểm vào trong th mục trang đó Điểm vào đợc lựachọ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ếntí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ảngtrố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 trangcho 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ệmvụ,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)

Trang 8

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 địachỉ 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áctrang 4-Mbyte trong bộ nhớ vật lý Phơng pháp phân trang này có thể đợc sử dụng để ánhxạ lên đến 1024 trang vào trong một không gian địa chỉ tuyến tính 4-Gbyte Kích thớctrang 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 địachỉ tuyến tính đợc chia thành hai phần:

 Điểm vào th mục trang (page directory entry): Từ bit 22 đến bit 31 , cung cấp mộtvùng trống cho một điểm vào trong th mục trang đó Điểm vào đợc chọn đó cungcấp địa chỉ vật lý đầu tiên của một trang 4-Mbyte

 Địa chỉ tơng đối trong trang (page offset) :Từ bit 0 đến bit 21, cung cấp một vùngtrống cho một địa chỉ vật lý trong trang đó

Hình 5: Chuyển đổi địa chỉ tuyến tính với trang 4-Mbyte6.3 Kết hợp các trang 4-Kbyte và 4-Mbyte

Khi cờ PSE trong CR4 đợc thiết lập lên 1, cả các trang 4-Mbyte và các bảng trangcho các trang 4-Kbyte có thể đợc truy nhập từ cùng một th mục trang Nếu cờ PSE bị xoá, chỉ có các bảng trang cho các trang 4-Kbyte có thể đợc truy nhập (bất chấp sự thiết lậpcủa cờ PS trong một điểm vào th mục trang)

Một ví dụ tiêu biểu cho việc kết hợp các trang 4-Kbyte và 4-Mbyte là đặt hệ điềuhành hay trình thực hiện của nhân vào một trang lớn để làm giảm các thiếu sót củaTLB( bộ đệm dùng để chuyển hóa địa chỉ) và do đó cải thiện hiệu năng của toàn bộ hệthống.Bộ xử lý giữ cho khỏi gián đoạn các điểm vào trang 4-Mbyte và các điểm vào trang4-KByte trong các bộ đệm TLB riêng rẽ Vì thế, việc đặt thờng xuyên mã sử dụng nh lànhân trong một trang lớn , làm trống các điểm vào TLB của các trang 4-KByte cho cácchơng trình ứng dụng và các nhiệm vụ

7.Địa chỉ cơ sở của một th mục trang

Một địa chỉ vật lý của th mục trang hiện thời đợc chứa trong thanh ghi CR3(Cũng

đợc gọi là thanh ghi cơ sở th mục trang – PDBR, the page directory base register ) Nếuviệc phân trang đợc sử dụng, thì thanh ghi CR3 cần đợc nạp nh là một phần của tiến trìnhkhởi tạo của bộ xử lý (trớc khi việc phân trang đợc kích hoạt) Thanh ghi CR3 sau đó cóthể đợc thay đổi hoặc một cách rõ ràng bởi vịêc nạp vào một giá trị mới với lệnh MOVhoặc một cách hoàn toàn nh là một phần của một cơ chế chuyển đổi nhiệm vụ

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ênkế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 TSS) 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 Thmục trang này cũng nằm lại trong bộ nhớ cho đến khi nhiệm vụ đó hoạt động

Trang 9

Segment-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 khinhữ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-bitTiế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 4-MByte 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

Trang 10

(Các điểm vào bảng trang cho các trang 4-KByte) Vùng này xác định rõ

địa chỉ vật lý của byte đầu tiên của một trang 4-KByte Những bit trong ờng này đợc biểu diễn là 20 bits nhiều ý nghĩa nhất của một địa chỉ vật lý,chúng bắt buộc các trang phải đợc canh lề vào trong các ranh giới 4-KByte

tr-(Các điểm vào th mục trang cho các bảng trang 4-KByte.) Vùng này xác

định rõ địa chỉ vật lý của bit đầu tiên của một bảng trang Những bit trongtrờng này đợc biểu diễn là 20 bits nhiều ý nghĩa nhất của một địa chỉ vật lý, chúng bắt buộc các trang phải đợc canh lề vào trong các ranh giới 4-KByte

(Các điểm vào th mục trang cho các trang 4-MByte.) Vùng này xác định rõ

địa chỉ vật lý của byte đầu tiên của một trang 4-MByte Chỉ những bit từ 22

đến 31 trong trờng này đợc sử dụng (và các bit từ 12 đến 21 đợc đặt trớc vàphải đợc thiết lập về 0 cho các bộ xử lý Intel từ bộ xử lý Pentium II).Những bit địa chỉ cơ sở đợc biểu diễn là 10 bits nhiều ý nghĩa nhất của của

địa chỉ vật lý đó, chúng bắt buộc các trang 4-MByte đợc căn lề trong cácranh giới 4-MByte

 Cờ P (present flag) : bit 0

Bit này chỉ ra rằng liệu một trang hay một bảng trang đang đợc chỉ đếnbởi một điểm vào có đợc nạp vào hiện thời trong bộ nhớ vật lý Khi cờ này

đợc thiết lập lên 1, trang đó nằm trong bộ nhớ vật lý và việc chuyển đổi địachỉ đợc thực hiện Khi cờ này bị xóa, trang đó không có trong bộ nhớ vànếu bộ xử lý cố gắng để truy nhập vào trang này, nó sẽ sinh ra một thôngbáo trang cha có trong bộ nhớ ( a page-fault exception - #PF)

Bộ xử lý không thiết lập hay xoá cờ này , mà hệ điều hành hay trình thựchiện có tránh nhiệm giữ cho khỏi gián đoạn trạng thái của cờ này

Bit này cần đợc thiết lập lên 1 bất cứ khi nào chế độ đánh điạ chỉ vật lý

mở rộng đợc kích hoạt

Nếu bộ xử lý sinh ra một thông báo trang cha có trong bộ nhớ, thì hệ điềuhành cần phải thực hiện các thao táctheo trình tự sau:

1 Sao chép trang đó từ đĩa lu trữ vào trong bộ nhớ vật lý nếu cần

2 Nạp địa chỉ trang vào một điểm vào bảng trang hay th mục trang vàthiết lập cờ P của nó Những bit khác nh là bit D hay bit A cũng cóthể thiết lập lúc này

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ờnghợ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ộttrang 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 đặcquyề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

Trang 11

Điều khiển chính sách giấu ghi thẳng (write-through) hay giấu ghi lại(write-back) của mỗi trang hay mỗi bảng trang Khi cờ này đợc thiết lập,cache ghi thẳng đợc kích hoạt cho trang liên kết hay bảng trang Bộ xử lý

bỏ qua cờ này nếu cờ CD(cache disable) trong CR0 đợc thiết lập

 Cờ PCD( Page-level cache disable flag) : bit 4

Điều khiển việc giấu của mỗi trang hay bảng trang Khi cờ PCD đợc thiếtlập, việc giấu của các trang liên kết hay các bảng trang đợc ngăn chặn , khi

cờ này bị xoá thì trang hay bảng trang đó có thể đợc giấu Cờ này cho phépviệc giấu bị mất hiệu lực cho những trang mà chứa cổng vào –ra của bộnhớ đợc ánh xạ hay những trang này không cung cấp một sự tăng hiệunăng khi giấu Bộ xử lý bỏ qua cờ này nếu cờ CD trong CR0 đợc thiết lập

 Cờ A (Accessed flag): bit 5

Chỉ ra rằng liệu một trang hay một bảng trang đã đợc truy nhập khi cờ này

đợc thiết lập Phần mềm quản lý bộ nhớ xoá cờ này khi một trang hay mộtbảng trang đợc nạp lần đầu tiên vào trong bộ nhớ vật lý Bộ xử lý sau đóthiết lập cờ này lần đầu tiên khi trang hay bảng trang đợc truy nhập Bộ xử

lý không xoá đợc hoàn toàn bit này chỉ có phần mềm làm đợc

 Cờ D (Dirty flag) : bit 6

Cờ này chỉ ra rằng liệu một trang vừa đợc ghi khi cờ này đợc thiết lập Cờnày không đợc dùng trong các điểm vào th mục trang chỉ đến những bảngtrang Phần mềm quản lý bộ nhớ xoá cờ này khi một trang đợc nạp lần

đầu tiên vào trong bộ nhớ vật lý Bộ xử lý sau đó thiết lập cờ này cho lần

đầu tiên khi một trang đợc truy bởi thao tác ghi Bộ xử lý không xoá đợcmột cách hoàn toàn bit này Chỉ có phần mềm mới xoá đợc nó Bit Avà bit

D đợc cung cấp cho việc sử dụng bởi phần mềm quản lý bộ nhớ để quản lý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ểmvào th mục trang Khi cờ này bị xoá, kích thớc trang là 4-KByte và điểmvào th mục trang chỉ đến một bảng trang Khi cờ này đợc thiết lập, kíchthớ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ấtcả 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 đánhdấu là chung và cờ kích hoạt trang chung (Page global enable flag) trongthanh ghi CR4 đợc thiết lập, điểm vào bảng trang hay th mục trang chotrang đó không bị làm mất hiệu lực trong TLB khi thanh ghi CR3 đợc nạphay 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ânhay hệ điều hành khác hay mã chạy đợc) đợc đa ra khỏi TLB Chỉ phầnmề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 trangchỉ đến các bảng trang, cờ này đợc bỏ qua và những đặc tính chung củamộ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 đếnPentium II Với cả hai loại điểm vào bit 9,10, 11 đợc cung cấp cho phầnmề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àykhông đợc thiết lập về 0

9.Những điểm vào th mục trang và bảng trang không có mặt

Ngày đăng: 23/06/2016, 16:12

HÌNH ẢNH LIÊN QUAN

Hình 2: Sự chuyển đổi địa chỉ logic sang địa chỉ tuyến tính. - 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 2 Sự chuyển đổi địa chỉ logic sang địa chỉ tuyến tính (Trang 4)
Hình 3: Các thanh ghi điều khiển. - 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 3 Các thanh ghi điều khiển (Trang 5)
Bảng 1: Kích thớc trang và kích thớc địa chỉ vật lý. - Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM PC
Bảng 1 Kích thớc trang và kích thớc địa chỉ vật lý (Trang 7)
Hình 4 miêu tả  một th mục trang và  hệ thống đẳng cấp bảng trang  khi ánh xạ các địa chỉ tuyến tính đến các trang 4K-byte - 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 4 miêu tả một th mục trang và hệ thống đẳng cấp bảng trang khi ánh xạ các địa chỉ tuyến tính đến các trang 4K-byte (Trang 7)
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ấ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 (Trang 8)
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 - 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 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 (Trang 9)
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. - 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 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 (Trang 9)
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 - 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 (Trang 14)
Hình 11 :Chuyển đổi điạ chỉ tuyến tính với chế độ đánh điạ chỉ vật lý mở rộng đợc kích - 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 11 Chuyển đổi điạ chỉ tuyến tính với chế độ đánh điạ chỉ vật lý mở rộng đợc kích (Trang 15)
Hình 12: Cấu trúc của bảng con trỏ, th mục trang, và điểm vào bảng trang cho các trang - 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 12 Cấu trúc của bảng con trỏ, th mục trang, và điểm vào bảng trang cho các trang (Trang 16)
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 - 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 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 17)
Bảng 2: Các chế độ phân trang và kích thớc địa chỉ vật lý. - Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM PC
Bảng 2 Các chế độ phân trang và kích thớc địa chỉ vật lý (Trang 18)
Bảng sau chỉ ra kích thớc trang và kích thớc địa chỉ vật lý đạt đợc từ những thiết lập khác nhau của các cờ điều khiển trang cho các bộ xử lý họ P6 để hỗ trợ đặc tính - Cấu trúc dữ liệu phục vụ cho việc quản lý bộ nhớ phân trang trong IBM PC
Bảng sau chỉ ra kích thớc trang và kích thớc địa chỉ vật lý đạt đợc từ những thiết lập khác nhau của các cờ điều khiển trang cho các bộ xử lý họ P6 để hỗ trợ đặc tính (Trang 18)
Hình 16: Sự quy ớc quản lý bộ nhớ chỉ đến một bảng trang cho mỗi đoạn - 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 16 Sự quy ớc quản lý bộ nhớ chỉ đến một bảng trang cho mỗi đoạn (Trang 21)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w