2010年6月 计算机组织与系统结构 期终考试试卷
考试科目名称 计算机组织与系统结构 (A卷)
2010——2011学年第 1 学期 教师 袁春风/杨若瑜 考试方式:闭卷 系(专业) 计算机科学与技术 年级 2009 班级 学号 姓名 成绩
题号 分数
一 二 三 四 五 得分 一、选择题(每小题2分,共36分)
1. -1022的32位补码用十六进制表示为( D )。
A. 0000 03FEH B. 0000 FC02H
C. FFFF 03FEH D. FFFF FC02H
2. 假定变量f的数据类型为float,f=-4.093e3,则变量f的机器数表示为( B )。
A. 457F D000H B. C57F D000H
C. C5FF D000H D. C67F E800H
3. 某8位计算机中,假定带符号整数变量x和y的机器数用补码表示,[x]补=F5H,[y]补=7EH,则x–y
的值及其相应的溢出标志OF分别是( D )。 A. 115、0
B. 119、0
C. 115、1
D. 119、1
4. 考虑以下C语言代码:
short si= –8196; int i=si;
执行上述程序段后,i的机器数表示为( D )。 A. 0000 9FFCH
B. 0000 DFFCH
C. FFFF 9FFCH
D. FFFF DFFCH
5. 以下几种存储结构中,采用相联存取方式访问信息的是( C )。
A.堆栈
B.直接映射cache
C. 分支历史记录表 D. 主存页表
6. 假定用若干个16K×8位的存储器芯片组成一个64K×8位的存储器,按字节编址,芯片内各单元交叉
编址,则地址BFFFH所在的芯片的最小地址为( D )。 A. 0000H
B. 0001H
C. 0002H
D. 0003H
7. 假定主存地址位数为32位,按字节编址,主存和cache之间采用全相联映射方式,主存块大小为一
个字,每字32位,采用回写(Write Back)方式和随机替换策略,则能存放32K字数据的cache的总容量至少应有多少位?( D ) A. 1536K
B. 1568K
C. 2016K
D. 2048K
8. 某计算机按字节编址,采用小端方式存储信息。其中,某指令的一个操作数为16位,该操作数采用
基址寻址方式,指令中形式地址(用补码表示)为FF00H,当前基址寄存器的内容为C000 0000H,则该操作数的LSB存放的地址是( A )。 A. BFFF FF00H B. BFFF FF01H
C. C000 FF00H
D. C000 FF01H
第 1 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
9. 通常将在部件之间进行数据传送的指令称为传送指令。以下有关各类传送指令功能的叙述中,错误
的是( D )。
A. 出/入栈指令(push/pop)完成CPU和栈顶之间的数据传送 B. 访存指令(load/store)完成CPU和存储单元之间的数据传送 C. I/O指令(in/out)完成CPU和I / O端口之间的数据传送 D. 寄存器传送指令(move)完成CPU和寄存器之间的数据传送
10. 执行完当前指令后,PC中存放的是后继指令的地址,因此PC的位数和( C )的位数相同。 A. 指令寄存器
B. 程序状态字寄存器 C. 主存地址寄存器
D. 指令译码器
11. 下列有关指令和微指令之间关系的描述中,正确的是( B )。
A.一条指令的功能通过执行一条微指令来实现 B.一条指令的功能通过执行一个微程序来实现 C.一条微指令的功能通过执行一条指令来实现 D.一条微指令的功能通过执行一个微程序来实现
12. 以下给出的事件中, 无需异常处理程序进行处理的是( D )。
A.除数为0
B. 地址越界
C.缺页故障
D. cache缺失
13. 以下给定的情况中,可能不会引起指令流水线阻塞的是( A )。
A.跳转指令执行 B. TLB缺失
C. 结果溢出
D. cache缺失
14. 假定一个同步总线的工作频率为33MHz,总线中有32位数据线,每个总线时钟传输一次数据,则
该总线的最大数据传输率为( B )。 A. 66MB/s
B. 132MB/s
C. 528MB/s
D. 1056MB/s
15. 在计数器定时查询方式下,若每次计数都从0开始,则 ( A )。
A. 设备号小的设备优先级高 C. 每个设备的优先级均等
B. 设备号大的设备优先级高 D. 每个设备的优先级随机变化
16. 假定计算机系统中连接主存和磁盘的I/O总线的带宽是68.8MB/s,磁盘的最大数据传输率是5MB/s。
如果允许磁盘输入/输出占用100%的总线和主存带宽,那么总线上可同时接入的磁盘个数最多是( A )。 A. 13
B. 14
C. 15
D. 16
17. 以下给出的部件中,不包含在外设控制接口电路中的是( A )。 A. 标志寄存器
B. 数据缓存器
C. 命令(控制)寄存器 D. 状态寄存器
18. 以下有关CPU响应外部中断请求的叙述中,错误的是( A )。
A. 每条指令结束后,CPU都会转到―中断响应‖周期进行中断响应处理 B. 在‖中断响应‖周期,CPU先将中断允许触发器清0,以使CPU关中断 C. 在‖中断响应‖周期,CPU把后继指令地址作为返回地址保存在固定地方 D. 在‖中断响应‖周期,CPU把取得的中断服务程序的入口地址送PC
第 2 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
得分 二、简单解释以下英文术语的含义。(每个2分,共10分)
1. CPI (略) 2. ALU (略) 3. RISC (略) 4. RAID (略) 5. VLIW (略) 得分 三、分析设计题(共38分,答案写在答题纸上)
1. (8分)假设某计算机按字节编址,L1 data cache的数据区大小为128B,采用直接映射方式,主存和cache交换的块的大小为16B,cache初始为空。以下是对矩阵进行转置的程序段:
typedef int array[4][4]; void transpose(array dst, array src) { }
若sizeof(int)=4,数组dst从地址0000 C000H开始存放,数组src从地址0000 C040H开始存放。仿照col=0,row=0栏目中的形式填写表1,说明数组元素src[row][col]和dst[row][col]各自映射到cache哪一行,其访问是命中(hit)还是缺失(miss)。
int i, j;
for (i = 0; i < 4; i++)
for (j = 0; j < 4; j++)
dst[j][i] = src[i][j];
第 3 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
表1 题1中的src数组和dst数组
row=0 row=1 row=2 row=3
【分析解答】
col=0 0/miss src数组 col=1 col=2 col=3 col=0 dst数组 col=1 col=2 col=3 从程序来看,数组访问过程如下:
src[0] [0]、dst[0] [0]、src[0] [1]、dst[1] [0]、src[0] [2]、dst[2] [0]、src[0] [3]、dst[3] [0] src[1] [0]、dst[0] [1]、src[1] [1]、dst[1] [1]、src[1] [2]、dst[2] [1]、src[1] [3]、dst[3] [1] src[2] [0]、dst[0] [2]、src[2] [1]、dst[1] [2]、src[2] [2]、dst[2] [2]、src[2] [3]、dst[3] [2] src[3] [0]、dst[0] [3]、src[3] [1]、dst[1] [3]、src[3] [2]、dst[2] [3]、src[3] [3]、dst[3] [3]
因为块大小为16B,每个数组元素有4个字节,所以4个数组元素占一个主存块,因此每次总是调入4个数组元素到cache的一行。
当数据区容量为128B时,L1 data cache中共有8行。数组元素dst[0][i]、dst[1][i] 、dst[2][i]、dst[3][i]、src[0][i]、src[1][i]、src[2][i]、src[3][i] (i=0~3) 分别映射到cache第0、1、2、3、4、5、6、7行。因此,不会发生数组元素的替换。每次总是第一个数组元素不命中,后面三个数组元素都命中。如下表所示。
表1 题1中的src数组和dst数组的命中情况
row=0 row=1 row=2 row=3 col=0 4/miss 5/miss 6/miss 7/miss src数组 col=1 4/hit 5/hit 6/hit 7/hit col=2 4/hit 5/hit 6/hit 7/hit col=3 4/hit 5/hit 6/hit 7/hit col=0 0/miss 1/miss 2/miss 3/miss dst数组 col=1 0/hit 1/hit 2/hit 3/hit col=2 0/hit 1/hit 2/hit 3/hit col=3 0/hit 1/hit 2/hit 3/hit
2.(20分)某高级语言源程序实现“找到save数组中第一个不等于k的元素”功能,其核心循环语句如下:“ while (save[i] = = k ) { i += 1;} ”。若对其编译时,编译器将i和k分别分配在寄存器$s3和$s5中,数组save的基址存放在$s6中,则生成的MIPS汇编代码段如下。
loop: sll $t1, $s3, 2
#R[$t1]←R[$s3]<<2,即R[$t1]=i×4
#R[$t1]←R[$t1]+R[$s6],即R[$t1]=Address of save[i]
add $t1, $t1, $s6
lw $t0, 0($t1) #R[$t0]←M[R[$t1]+0],即R[$t0]=save[i] bne $t0, $s5, exit #if R[$t0]≠R[$s5] then goto exit
第 4 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
addi $s3, $s3, 1 j loop
exit:
# R[$s3]←R[$s3]+1,即i=i+1 #goto loop
假设从loop处开始的指令存放在内存8 0000处,则上述循环对应的MIPS机器码如图1所示。
80000 80004 80008 80012 80016 80020 80024
6位 0 0 35 5 8 2 …… 5位 0 9 9 8 19 5位 19 22 8 21 21 20000 5位 9 9 5位 2 0 0 2 1 6位 0 32 图1 题2中的MIPS机器码
根据上述叙述,回答下列问题,要求说明理由或给出计算过程。 .............(1)数组save每个元素占几个字节? (2)MIPS中有多少个通用寄存器? (3)addi指令的操作码是多少?
(4)标号exit的值是多少?如何根据bne指令计算得到?
(5)标号loop的值是多少?如何根据jump指令计算出得到?MIPS中跳转指令的跳转范围是多少? (6)假定如图2所示的单周期数据通路和如图3所示的多周期数据通路中各主要功能单元的操作时间为:存储器─200ps;ALU和加法器─100ps;寄存器堆读或写─50ps。在不考虑多路选择器、控制单元、PC、扩展器和线路等延迟的情况下,单周期和多周期处理器的时钟周期最小各为多少?若上述程序段共循环执行10次,则在单周期数据通路和多周期数据通路中执行各需要多少时间?
图2 单周期数据通路
第 5 页
共 9 页