计算机考研 | 2011年 | 计算机组成原理真题

【计算机组成原理2011年真题43题-11分】

在这里插入图片描述

(1)执行上述程序段后,寄存器R1、R5和R6的内容分别是什么?(用十六进制表示)

(2)执行上述程序段后,变量m和 k1的值分别是多少?(用十进制表示)

(3)上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器及辅助电路实现?简述理由。

(4)计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?

【第一步:信息提取】

unsigned:无符号数

int:有符号数

【第二步:具体解答】

第一小题:

(1)执行上述程序段后,寄存器R1、R5和R6的内容分别是什么?(用十六进制表示)

134=128+6=1000 0110B,所以x的机器数为1000 0110B,故R1的内容为86H。

246= 255-9=1111 0110B,所以y的机器数为11110110B。

x- y:1000 0110+0000 1010=(0)1001 0000,括弧中为加法器的进位,故R5的内容为90H。

x+y:1000 0110+1111 0110=(1)0111 1100,括弧中为加法器的进位,故R6的内容为7CH。

第二小题:

(1)执行上述程序段后,变量m和 k1的值分别是多少?(用十进制表示)

m 的机器数与x的机器数相同,皆为86H = 1000 0110B,解释为带符号整数m(用补码表示)时,

其值为-111 1010B=-122。

m-n的机器数与x-y的机器数相同,皆为90H = 10010000B,解释为带符号整数k1(用补码表示)时,

其值为-111 0000B = -112。

第三小题:

(1)上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种运算能否利用同一个加法器及辅助电路实现?简述理由。

能。n位加法器实现的是模2"无符号整数加法运算。

对于无符号整数α和 b,a + b u以直接用加法器实现,而a-b可用a加 b的补数实现,即 a − b = a + [ − b ] 补 a-b= a+ [-b]_补 ab=a+[b](mod 2 n 2^n 2n),所以n位无符号整数加/减运算都可在n位加法器中实现。

由于带符号整数用补码表示,补码加/减运算公式为 [ a + b ] 补 = [ a ] 补 + [ b ] 补 [a+ b]_补=[a]_补 + [b]_补 [a+b]=[a]+[b](mod 2 n 2^n 2n)

[ a − b ] 补 = [ a ] 补 + [ − b ] 补 [a-b]_补=[a]_补 +[-b]_补 [ab]=[a]+[b](mod 2 n 2^n 2n),所以n位带符号整数加/减运算都可在n位加法器中实现。

第四小题:

(1)计算机内部如何判断带符号整数加/减运算的结果是否发生溢出?

带符号整数加/减运算的溢出判断规则为:若加法器的两个输入端(加法)的符号相同,且不同于输出端(和)的符号,则结果溢出,或加法器完成加法操作时,若次高位的进位和最高位的进位不同,则结果溢出。

(2)上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出?

最后一条语句执行时会发生溢出。因为1000 0110+1111 0110 =(1)0111 1100,括弧中为加法器的进位,根据上述溢出判断规则,可知结果溢出。或因为⒉个带符号整数均为负数,它们相加之后,结果小于8位二进制所能表示的最小负数。

【计算机组成原理2011年真题44题-12分】

某计算机存储器按字节编址,虚拟(逻辑)地址空间大小为16MB,主存(物理)地址空间大小为1MB,页面大小为4KB;Cache采用直接映射方式,共8行;主存与Cache之间交换的块大小为32B。系统运行到某一时刻时,页表的部分内容和Cache的部分内容分别如题44a图、题44b图所示,图中页框号及标记字段的内容为十六进制形式。

在这里插入图片描述

在这里插入图片描述

请回答下列问题:

(1)虚拟地址共有几位,哪几位表示虚页号﹖物理地址共有几位,哪几位表示页框号(物理页号)?

(2)使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。

(3)虚拟地址001C60H所在的页面是否在主存中?若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。

(4)假定为该机配置一个4路组相连的TLB,该TLB共可存放8个页表项,若其当前内容(十六进制)如题44c图所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。

【第一步:信息提取】

按字节编址:字节编址

虚拟(逻辑)地址空间大小为16MB:24位

主存(物理)地址空间大小为1MB:20位

页面大小为4KB:12位

主存与Cache之间交换的块大小为32B:5位

【第二步:具体解答】

第一小题:

(1)虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示页框号(物理页号)?

存储器按字节编址,虚拟地址空间大小为16MB= 2 24 2^{24} 224B,故虚拟地址为24位;

页面大小为4KB= 2 12 2^{12} 212B,故高12位为虚页号。

主存地址空间大小为1MB= 2 20 2^{20} 220B,故物理地址为20位;

由于页内地址为12位,故高8位为页框号。

第二小题:

(1)使用物理地址访问Cache时,物理地址应划分成哪几个字段?要求说明每个字段的位数及在物理地址中的位置。

由于Cache采用直接映射方式,所以物理地址各字段的划分如下。

主存字块标记+Cache字块标记+字块内地址

由于块大小为32B,故字块内地址占5位

Cache共 8行,故Cache字块标记占3位

主存字块标记占20-5-3 =12位。

第三小题:

(1)虚拟地址001C60H所在的页面是否在主存中?

虚拟地址001C60H 的前12位为虚页号,即001H,查看001H处的页表项,其对应的有效位为1,故虚拟地址001C60H所在的页面在主存中。

(2)若在主存中,则该虚拟地址对应的物理地址是什么?访问该地址时是否Cache命中?要求说明理由。

页表001H处的页框号为04H,与页内偏移(虚拟地址后12位)拼接成物理地址为04C60H。物理地址04C60H =00000100 1100 0110 0000B,主存块只能映射到Cache的第3行(第011B行),由于该行的有效位=1,标记(值为105H)≠04CH(物理地址高12位),故不命中。

第四小题:

(1)假定为该机配置一个4路组相连的TLB,该TLB共可存放8个页表项,若其当前内容(十六进制)如题44c图所示,则此时虚拟地址024BACH所在的页面是否在主存中?要求说明理由。

由于TLB采用四路组相联,故TLB被分为8/4=2个组,因此虚页号中高11位为TLB标记、最低1位为TLB组号。虚拟地址024BACH = 0000 0010 0100 1011 1010 1100B,虚页号为0000 0010 0100B,TLB标记为0000 0010 010B(即012H),TLB组号为0B,因此,该虚拟地址所对应物理页面只可能映射到TLB的第0组。组0中存在有效位=1、标记=012H的项,因此访问TLB命中,即虚拟地址024BACH所在的页面在主存中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_之桐_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值