页表信息字
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。