Thực hiện việc phân trang

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 106 - 111)

Một đòi hỏi cốt yếu của bộ nhớ ảo là phải có bộ nhớ phụ để chứa toàn bộ chương trình.

Một số quy ước:

• Bản copy của chương trình trong bộ nhớ phụ là bản gốc

• Phần của chương trình thỉnh thoảng được đưa vào bộ nhớ chính là các bản copy

Một công việc tự nhiên và quan trọng là cập nhật cho bản gốc, mọi thay đổi xảy ra với bản copy trong bộ nhớ chính, cuối cùng cần phải được phản ánh vào trong bản gốc. Không gian địa chỉ ảo được chia thành các trang có kích thước bằng nhau, nằm trong khoảng 512..4096. Không gian địa chỉ vật lý cũng được

chia thành các mảnh, được gọi là khung trang (page frame), có cùng kích thước với trang. Trong các thiết kế thực, bộ nhớ chính của các máy tính lớn có thể có hàng chục, hàng trăm hay thậm chí hàng nghìn khung trang.

Hình 6-3 một thí dụ minh hoạ:

• Không gian địa chỉ ảo 64K được chia thành các frame kích thước 4K. • Không gian địa chỉ vật lý 32K được chia thành các khung trang kích

thước 4K.

• Để triển khai thực hiện được bộ nhớ ảo ở mức 2, cần phải sử dụng page table có 16 word, để theo dõi trạng thái sử dụng 16 trang của bộ nhớ ảo.

Hình 6-28 Cách thức chia không gian địa chỉ

Trong hình Hình 6-4(a): Khi một chương trình truy cập bộ nhớ, đầu tiên nó sẽ sinh ra một địa chỉ 16 bit (= 3016H = 12310):

• 4 bit cao làm số trang ảo

• 12 bit thấp làm địa chỉ trong trang ảo đã được chọn 12310 là địa chỉ 22 của trang 3.

Hình 6-29 Ví dụ về địa chỉ ảo

Trong hình Hình 6-4( b): Mối liên hệ giữa trang và địa chỉ ảo. Nếu địa chỉ ảo 0 của trang 3 là tại địa chỉ vật lý 12288, thì địa chỉ ảo 22 của trang 3 phải là tại địa chỉ vật lý 12310.

• Với một địa chỉ ảo cần truy cập, sẽ tính được trang ảo, sau đó HĐH phải tìm ra được trang ảo đó nằm ở đâu:

• Có 9 khả năng xảy ra:

• 8: nằm ở một trong số 8 khung trang trong bộ nhớ chính

Hình 6-30 Ví dụ về một bảng phân trang

Cách tạo địa chỉ bộ nhớ chính (bộ nhớ vật lý) từ địa chỉ ảo:

Từ đ/c ảo tính được trang ảo (+ địa chỉ trong trang ảo). Từ trang ảo, kiểm tra page table sẽ biết trang ảo có trong bộ nhớ chính không. Giả sử có: trường khung trang 3 bit sẽ chỉ ra trang nằm ở đâu.

• 3 bit này sẽ được nạp vào 3 bit bên trái nhất của MAR • 12 bit thấp của MAR được nạp địa chỉ trong trang ảo.

Hình 6-31 Cách tạo ra địa chỉ bộ nhớ chính từ địa chỉ ảo

Minh hoạ ánh xạ từ không gian chỉ ảo lên không gian bộ nhớ chính (vật lý):

• Trang ảo số 0 nằm ở khung trang số 1. • Trang ảo số 1 nằm ở khung trang số 0.

Hình 6-32 Ánh xạ từ không gian địa chỉ ảo lên khung trang bộ nhớ chính có 8 khung trang

Nếu HĐH phải chuyển đổi mỗi địa chỉ ảo của chỉ thị máy mức 3 thành địa chỉ thực thì một máy mức 3 có bộ nhớ ảo có thể chạy chậm hơn một máy mức 3 không có bộ nhớ ảo rất nhiều lần và như vậy toàn bộ ý tưởng sẽ là không có ý nghĩa thực tế. Để tăng tốc độ việc chuyển đổi địa chỉ ảo thành địa chỉ vật lý, có 2 cách:

• Bảng phân trang thường được giữ trong các thanh ghi phần cứng đặc biệt, việc chuyển đổi được thực hiện trực tiếp bằng phần cứng. Cách này đòi hỏi các chi phí phần cứng.

• Bảng phân trang trong các thanh ghi tốc độ cao và dùng vi chương trình thực hiện chuyển đổi bằng lập trình trực tiếp đối với các thanh ghi. Tuỳ thuộc vào kiến trúc của mức vi chương trình, chuyển đổi bằng cách này có thể gần nhanh bằng cách chuyển đổi trực tiếp bằng phần cứng mà không đòi hỏi phải có các mạch điện đặc biệt.

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 106 - 111)