计组习题

假定在一个8位字长的计算机中运行如下类C程序段:

unsigned int x = 134;

unsigned int y = 246;

int m = x;

int n = y;

unsigned int z1 = x - y;

unsigned int z2 = x + y;

int k1 = m - n;

int k2 = m + n;

若编译器编译时将8个8位寄存器R1~R8分别分配给变量x、y、m、n、z1、z2、k1、k2。请回答下列问题。(提示:带符号整数用补码表示)

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

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

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

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

 


 

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

虚页号

有效位

页框号

 

行号

有效位

标记

0

1

06

 

0

1

020

1

1

04

 

1

0

2

1

15

 

2

1

01D

3

1

02

 

3

1

105

4

0

 

4

1

064

5

1

2B

 

5

1

14D

6

0

 

6

0

7

1

32

 

7

1

27A

题44-a图 页表的部分内容               题44-b图 Cache的部分内容

请回答下列问题。

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

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

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

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

组号 有效位 标记 页框号 有效位 标记 页框号 有效位 标记 页框号 有效位 标记 页框号

0

0

1

001

15

0

1

012

1F

1

1

013

2D

0

1

008

7E

0

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值