虛擬頁式存儲算法(頁式虛擬存儲練習)
2023-04-14 13:44:56 1
頁表信息字
A.實頁號
B.裝入位(有效位)P
C.修改位
D.替換控制位:反映該頁在主存中的活躍程度
E.其它:訪問權限控制等.
把頁表中最活躍部分放在高速存儲器中,組成一快表(用硬體),以減少開銷.
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
例: 一個存儲系統有32位程序地址空間,頁面容量為1KB,主存的容量為8MB,問: (1) 頁表將有多少行? (2) 頁表的每一行有多少位?頁表的容量有多少字節?
解:
(1) 頁表的長度為222 =4M行
(2) 主存的容量為8MB=223B
主存中頁框架的數量有223 / 210 = 213個。頁表中主存頁號欄位是13位長,加上其它信息將超過16位。
設頁表的每一項至少為16位(每個頁表項2位元組) , 則頁表的容量為4M×2 = 8MB。
例: 一個虛擬存儲器有8個頁面,頁面大小為1024字,內存有4個頁面框架。頁表的內容為: 虛頁號 實頁號 0 3 1 1 2 - 3 - 4 2 5 - 6 0 7 - 對應於虛擬地址4098的主存地址是什麼?
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
解:4098÷1024 = 4......2,所以虛頁號為4,頁內地址為2。從表中查得實頁號為2,實際地址為2×1024 2 = 2050。
思考:某計算機的頁式虛存管理中採用長度為32字的頁面。頁表內容如下表所示,求當CPU程序按下列2進位虛擬字地址訪存時產生的實際字地址。 (1) 00001101 (2) 10000000 (3) 00101000
答:頁面長度為32字,則頁內地址5位,8位地址碼中的高3位為虛頁號,從表中查出2位實頁號,與頁內地址合併構成7位實際物理內存的地址。 (1) 虛頁號為000,查得實頁號01,與頁內地址01101合併,得0101101。 (2) 虛頁號為100,查得實頁號10,與頁內地址00000合併,得1000000。 (3) 虛頁號為001,查得該頁未裝入內存,沒有相應的內存地址。
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
CISC:複雜指令系統計算機
RISC:精簡指令系統計算機
指令字長度指一個指令字中包含二進位代碼的位數
機器字長是指計算機能處理的二進位數據的位數
機器字長通常與主存單元的位數一致
例1 設某臺計算機有100條指令, (1) 採用固定長度操作碼編碼,試設計其操作碼的編碼。 (2) 假如這100條指令中有10條指令的使用概率達到90%,其餘90條指令的使用概率為10%。試採用不等長編碼設計操作碼。
解:
(1) 採用固定長度操作碼編碼時,需要7位操作碼。取其中的100個代碼作為指令操作碼,可以用0000000到1100011之間的代碼代表100條指令,即
0000000 指令0的操作碼
0000001 指令1的操作碼
…
1100011 指令99的操作碼
剩下從1100100到1111111共28個代碼可用於增加新指令,每條指令的操作碼的長度都是7。
(2) 用4位代碼對10條常用指令進行編碼,用8位代碼對90條不常用代碼進行編碼,即
0000 指令0的操作碼
編輯
添加圖片注釋,不超過 140 字(可選)
0001 指令1的操作碼
…
1000 指令8的操作碼
1001 指令9的操作碼
10100000 指令10的操作碼
10100001 指令11的操作碼
…
11111001 指令99的操作碼
指令操作碼的平均長度為
4×90% 8×10% = 4.4位。
例2 若某計算機要求有如下形式的指令:三地址指令12條,二地址指令60條,零地址指令16條(不要求有單地址指令)。設指令字長為16位,每個地址碼長為4位,試用擴展操作碼為其編碼。
解:三個地址碼欄位佔12位。剩下4位作為操作碼,12條指令的操作碼分別為0000、0001、0010、…、1011。
n 在雙地址指令中,操作碼擴展到8位。取其中6位,可以有64個編碼,取60個,即1100 0000~1111 1011。
n 零地址指令中,全部16位指令代碼都是操作碼,取其前16個編碼,即1111 1100 0000 0000~1111 1100 0000 1111。
,