2010年全国硕士研究生入学统一考试

计算机专业计算机组成原理课程试题

一、单项选择题：1～40小题，每小题2分，共80分。在每小题给出的四个选项中，请选出一项最符合题目要求的。

12. 下列选项中，能缩短程序执行时间的措施是

Ⅰ. 提高CPU时钟频率，Ⅱ. 优化数据通路结构，Ⅲ. 对程序进行编译优化

A. 仅Ⅰ和Ⅱ, B. 仅Ⅰ和Ⅲ, C. 仅Ⅱ和Ⅲ, D. Ⅰ、Ⅱ和Ⅲ

13. 假定有4个整数用8位补码分别表示为r1=FEH，r2=F2H，r3=90H，r4=F8H，若将运算结果存放在一个8位寄存器中，则下列运算会发生溢出的是

A. r1× r2 B. r2× r3 C. r1× r4 D. r2× r4

14. 假定变量i、f和d的数据类型分别为int、float和double（int用补码表示，float和double分别用IEEE754单精度和双精度浮点数据格式表示）， 已知i=785，f=1.5678e3，d=1.5 e100。若在32位机器中执行下列关系表达式，则结果为“真”的是

（Ⅰ）i==（int）（float）i （Ⅱ）f==（float）（int）f

（Ⅲ）f==（float）（double）f （Ⅳ）(d+f)-d== f

A. 仅Ⅰ和Ⅱ B. 仅Ⅰ和Ⅲ C. 仅Ⅱ和Ⅲ D. 仅Ⅲ和Ⅳ

15. 假定用若干个2k×4位芯片组成一个8 k×8位的存储器，则地址0B1FH所在芯片的最小地址是

A. 0000H B. 0600H C. 0700H D. 0800H

16. 下列有关RAM和ROM的叙述中，正确的是

Ⅰ RAM是易失性存储器，ROM是非易失性存储器

Ⅱ RAM和ROM都采用随机存取方式进行信息访问

Ⅲ RAM和ROM都可用作Cache

Ⅳ RAM和ROM都需要进行刷新

A. 仅Ⅰ和Ⅱ B. 仅Ⅱ和Ⅲ C. 仅Ⅰ，Ⅱ，Ⅲ D. 仅Ⅱ，Ⅲ，Ⅳ

17. 下列命令组合情况中，一次访存过程中不可能发生的是

A. TLB未命中，Cache未命中，Page未命中

B. TLB未命中，Cache命中，Page命中

C. TLB命中，Cache未命中，Page命中

D. TLB命中，Cache命中，Page未命中

18. 下列寄存器中，汇编语言程序员可见的是

A. 存储器地址寄存器（MAR） B. 程序计数器（PC）

C. 存储器数据寄存器（MDR） D. 指令寄存器（IR）

19. 下列不会引起指令流水阻塞的是

A. 数据旁路（转发） B. 数据相关 C. 条件转移 D. 资源冲突

20. 下列选项中的英文缩写均为总线标准的是

A. PCI、CRT、USB、EISA B. ISA、CPI、VESA、EISA

C. ISA、SCSI、RAM、MIPS D. ISA、EISA、PCI、PCI-Express

21. 单级中断系统中，中断服务程序执行顺序是

Ⅰ. 保护现场 Ⅱ. 开中断 Ⅲ. 关中断 Ⅳ. 保存断点

Ⅴ 中断事件处理 Ⅵ 恢复现场 Ⅶ 中断返回

A. Ⅰ→Ⅴ→Ⅵ→Ⅱ→Ⅶ B. Ⅲ→Ⅰ→Ⅴ→Ⅶ

C. Ⅲ→Ⅳ→Ⅴ→Ⅵ→Ⅶ D. Ⅳ→Ⅰ→Ⅴ→Ⅵ→Ⅶ

22. 假定一台计算机的显示存储器用DRAM芯片实现，若要求显示分辨率为1600×1200,颜色深度为24位，帧频为85HZ,显存总带宽的50%用来刷新屏幕，则需要的显存总带宽至少约为

A. 245Mbps B. 979 Mbps C. 1958 Mbps D. 7834 Mbps

二、综合应用题

43、（11分）某计算机字长为16位，主存地址空间大小为128KB，按字编址，采用单字长指令格式，指令各字段定义如下：

15 12	11	6	5	0
OP	Ms	Rs	Md	Rd

源操作数 目的操作数

转移指令采用相对寻址方式，相对偏移是用补码表示。寻址方式定义如下：

Ms/Md	寻址方式	助记符	含义
000B	寄存器直接	Rn	操作数=（Rn）
001B	寄存器间接	（Rn）	操作数=((Rn))
010B	寄存器间接、自增	（Rn）+	操作数=((Rn)),（Rn）+1→Rn
011B	相对	D（Rn）	转移目标地址=（ＰＣ）＋（Rn）

注：（x）表示存储蓄地址x或寄存器x的内容。

请回答下列问题：

（1）、该指令系统最多可有多少条指令？该计算机最多有多少个通用寄存器？存储器地址寄存器（MAR）和存储器数据寄存器（MDR）至少各需多少位？

（2）、转移指令的目标地址范围是多少？

（3）、若操作码0010Ｂ表示加法操作（助记符为add），寄存器R4和R5的编号分别为100Ｂ和101Ｂ，R4的内容为1234H，R5的内容为5678H，地址1234H中的内容为5678H，地址5678H中的内容为1234H，则汇编语句为“add (R4), (R5)+”（逗号前为源操作数，逗号后为目的操作数）对应的机器码是什么（用十六进制表示）？该指令执行后，哪些寄存器和存储单元的内容会改变？改变后的内容是什么？

44、（12分）某计算机的主存地址空间大小为256MB，按字节编址。指令Cache和数据Cache分离，均有8个Cache行，每个Cache行大小为64Ｂ，数据Cache采用直接映射方式。现有两个功能相同的程序Ａ和Ｂ，其伪代码如下所示：

程序Ｂ： int a[256][256]； ……… int sum_array2（） ｛ int i,j,sum = 0； for ( j=0;j<256;j++ ) for ( i=0;i<256;i++ ) sum+=a[i][j]； return sum； ｝ 程序Ａ： int a[256][256]； ……… int sum_array1（） ｛ int i,j,sum = 0； for ( i=0;i<256;i++ ) for ( j=0;j<256;j++ ) sum+=a[i][j]； return sum； ｝

假定int类型数据用32位补码表示，程序编译时i, j, sum均分配在寄存器中，数组a 按行优先方式存放，其首地址为320（十进制数）。请回答下列问题，要求说明理由或给出计算过程。

（1）、若不考虑用于Cache一致性维护和替换算法的控制位，则数据Cache的总容量为多少？

（2）、数组元素a[0] [31]和a[1] [1]各自所在的主存块对应的Cache行号分别是多少（Cache行号从0开始）？

（3）、程序A和B的数据访问命令中率各是多少？哪个程序的执行时间更短？