頁式虛擬存儲練習(xí)
頁表信息字
A.實頁號
B.裝入位(有效位)P
C.修改位
D.替換控制位:反映該頁在主存中的活躍程度
E.其它:訪問權(quán)限控制等.
把頁表中最活躍部分放在高速存儲器中,組成一快表(用硬件),以減少開銷.

編輯切換為居中
例: 一個存儲系統(tǒng)有32位程序地址空間,頁面容量為1KB,主存的容量為8MB,問: (1) 頁表將有多少行? (2) 頁表的每一行有多少位?頁表的容量有多少字節(jié)?
解:
(1) 頁表的長度為222 =4M行
?(2) 主存的容量為8MB=223B
主存中頁框架的數(shù)量有223 / 210 = 213個。頁表中主存頁號字段是13位長,加上其它信息將超過16位。
設(shè)頁表的每一項至少為16位(每個頁表項2字節(jié)) , 則頁表的容量為4M×2 = 8MB。
例: 一個虛擬存儲器有8個頁面,頁面大小為1024字,內(nèi)存有4個頁面框架。頁表的內(nèi)容為: 虛頁號 實頁號 0 3 1 1 2 - 3 - 4 2 5 - 6 0 7 - 對應(yīng)于虛擬地址4098的主存地址是什么?

編輯切換為居中
解:4098÷1024 = 4......2,所以虛頁號為4,頁內(nèi)地址為2。從表中查得實頁號為2,實際地址為2×1024 + 2 = 2050。
思考:某計算機的頁式虛存管理中采用長度為32字的頁面。頁表內(nèi)容如下表所示,求當(dāng)CPU程序按下列2進制虛擬字地址訪存時產(chǎn)生的實際字地址。(1) 00001101(2) 10000000(3) 00101000
答:頁面長度為32字,則頁內(nèi)地址5位,8位地址碼中的高3位為虛頁號,從表中查出2位實頁號,與頁內(nèi)地址合并構(gòu)成7位實際物理內(nèi)存的地址。(1) 虛頁號為000,查得實頁號01,與頁內(nèi)地址01101合并,得0101101。(2) 虛頁號為100,查得實頁號10,與頁內(nèi)地址00000合并,得1000000。(3) 虛頁號為001,查得該頁未裝入內(nèi)存,沒有相應(yīng)的內(nèi)存地址。

編輯切換為居中
CISC:復(fù)雜指令系統(tǒng)計算機
RISC:精簡指令系統(tǒng)計算機
指令字長度指一個指令字中包含二進制代碼的位數(shù)
機器字長是指計算機能處理的二進制數(shù)據(jù)的位數(shù)
機器字長通常與主存單元的位數(shù)一致
例1 設(shè)某臺計算機有100條指令,(1) 采用固定長度操作碼編碼,試設(shè)計其操作碼的編碼。(2) 假如這100條指令中有10條指令的使用概率達到90%,其余90條指令的使用概率為10%。試采用不等長編碼設(shè)計操作碼。
解:
(1) 采用固定長度操作碼編碼時,需要7位操作碼。取其中的100個代碼作為指令操作碼,可以用0000000到1100011之間的代碼代表100條指令,即
0000000 指令0的操作碼
0000001 指令1的操作碼
…
1100011 指令99的操作碼
剩下從1100100到1111111共28個代碼可用于增加新指令,每條指令的操作碼的長度都是7。
(2) 用4位代碼對10條常用指令進行編碼,用8位代碼對90條不常用代碼進行編碼,即
0000 ?指令0的操作碼

編輯
0001 ?指令1的操作碼
…
1000 ?指令8的操作碼
1001 ?指令9的操作碼
10100000 指令10的操作碼
10100001 指令11的操作碼
…
11111001 指令99的操作碼
指令操作碼的平均長度為
4×90% + 8×10% = 4.4位。
例2 若某計算機要求有如下形式的指令:三地址指令12條,二地址指令60條,零地址指令16條(不要求有單地址指令)。設(shè)指令字長為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。