南京大学 计算机组成原理2010冬试题-A-答案
更新时间:2024-04-29 22:35:01 阅读量: 综合文库 文档下载
- 南京大学推荐度:
- 相关推荐
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 页
2010年6月 计算机组织与系统结构 期终考试试卷
图3 多周期数据通路
(7)若采用转发技术,并控制寄存器堆在前半周期写数据在后半周期读数据,则哪些指令之间的数据相关能够被消除,哪些指令之间的数据相关不能被消除?假定在如图4所示的采用―转发+阻塞‖技术的流水线处理器中执行上述程序,同时对分支冒险采用―一位动态预测‖(初始预测为转移)方式,条件检测和分支目标地址的修改都在“执行(Ex)”阶段进行,jump指令在“译码(ID)”阶段进行跳转目标地址修改,则执行10次循环所用的时间为多少?这种情况下,流水线处理器的执行速度大约各是单周期处理器和多周期处理器的多少倍?
第 6 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
【分析解答】
(1)Save数组的每个元素占4个字节。因为每次循环取数组元素时,其下标地址都要乘以4。 (2)MIPS中有32个通用寄存器,因为寄存器的编号是5位。
(3)“addi”指令的操作码是001000B,因为其OP字段为8,相当于6位二进制编码001000。 (4)标号exit的值是80024,其含义是循环结束时跳出循环后执行的首条指令的地址。它由当前分支指令(条件转移指令)的地址80012加上4得到下条指令的地址,然后再加上相对位移量2×4得到,即80012+4+2×4=80024。
(5)标号loop的值为80000,是循环入口处首条指令的地址,由跳转指令j的32位地址80020的高4位(0000B),与指令中给出的低26位(20000)拼接成30位地址,然后再在低位添两个0(相当于×4)得到,即20000×4=80000。因为跳转指令的地址与其跳转到的目标指令地址的高4位一样,所以,如果将4GB的主存空间分割成16个256MB的子空间,那么跳转到的目标指令总是和跳转指令在同一个子空间,不可能跳出它本身所在的256MB的子空间,所以跳转目标地址范围的大小是256M,也即,假定跳转指令地址的高4位为X,则跳转目标地址范围是X000 0000H~XFFF FFFCH。
(6)单周期处理器的时钟周期最小为200+50+100+200+50=600ps;多周期处理器的时钟周期最小为200ps。对于单周期数据通路中的10次循环执行,第1~4条指令执行了10次,第5~6条指令执行了9次,因此,共用了(4×10+2×9)×600=34800ps=34.8ns。对于多周期数据通路中的10次循环执行,sll、add和addi指令都需要4个时钟周期,bne和j指令需要3个时钟周期,lw指令需要5个时钟周期,因此,一共用了(4+4+5+3)×10×200+(4+3)×9×200=44600ps=44.6ns。
(7)第1和2、2和3、5和1条指令之间的数据相关可以被消除,但不能消除第3和4条指令之间的load-use冒险。
10次循环共有10个时钟的load-use阻塞;此外,对于bne控制(分支)冒险,第1次和最后1次
第 7 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
预测错误,所以有2次需要对预取执行的指令进行冲刷。因为条件检测和转移目标地址修改都在“执行(Ex)”阶段进行,因此,分支延迟损失时间片(分支延迟槽)为2,也即每次冲刷掉2条指令。因此,2次共被冲刷掉4条指令,使流水线阻塞了4个时钟周期;对于最后一条jump指令,因为在“译码(ID)”阶段进行跳转目标地址修改,所以每次有一个时钟阻塞,10次循环jump指令共执行了9次,因而有9个时钟周期的阻塞。综上可知,10次循环总共有10+4+9=23次阻塞,且第1~4条指令各执行了10次,第5~6条指令各执行了9次,因此,10次循环所用的时钟周期数为4×10+2×9+23=81,总时间为81×200ps=16.2ns。执行上述程序段时,流水线处理器的速度大约是单周期处理器速度的34.8/16.2=2.15倍;大约是多周期处理器速度的44.6/16.2=2.75倍。
3.(10分)某计算机CPU主频为1GHz,所连接的某外设的最大数据传输率为40kBps,该外设接口中有一个32位的数据缓存器,相应的中断服务程序的执行时间为500个时钟周期。请回答下列问题:
(1)是否可用中断方式进行该外设的输入输出?若能的话,在该设备持续工作期间,CPU用于该设备进行输入/输出的时间占整个CPU时间的百分比大约为多少?
(2)若该外设的最大数据传输率提高到4MBps,则可否用中断方式进行输入输出?若此时采用周期挪用DMA方式进行输入/输出,每挪用一个周期传送一个32位数据,一次DMA传送完成1000字节的数据传送,DMA初始化和后处理的时间为2000个时钟周期,不考虑访存冲突,则CPU用于该设备进行输入/输出的时间占整个CPU时间的百分比大约为多少?
参考答案:
(1)因为该外设接口中有一个32位数据缓存器,所以,若用中断方式进行输入/输出的话,可以每32位数据进行一次中断请求,因此,中断请求的时间间隔为106×4B/40kB=100μs。
对应的中断服务程序的执行时间为(1/1GHz)×500×106=0.5μs,因为中断响应过程就是执行一条隐指令的过程,所用时间相对于中断处理时间(即执行中断服务程序的时间)而言,几乎可以忽略不计,因而整个中断响应并处理的时间大约1μs多一点,远远小于中断请求的间隔时间。因此,可以用中断方式进行该外设的输入输出。
若用中断方式进行该设备的输入/输出,则该设备持续工作期间,CPU用于该设备进行输入/输出的时间占整个CPU时间的百分比大约为0.5/100=0.5%(也可以通过考察1秒钟内500M个时钟周期中有多少时钟周期用于中断来计算百分比,其计算公式为(106/100×500)/500M=1%)。
(2)若外设的最大传输率为4MBps,则中断请求的时间间隔为106×4B/4MB=1μs。而整个中断响应并处理的时间大约0.5μs多一点,中断请求的间隔时间和中断响应处理时间太接近,虽然可以用中断方式进行该外设的输入输出,但不太合适
若用周期挪用DMA方式,则一秒钟内产生的DMA次数为4MB/1000B=4000;每次DMA传送前都需要2000个时钟周期进行DMA初始化和DMA结束处理,所以,CPU用于DMA处理的总开销为4000?2000=8000000=8M个时钟周期;而CPU的时钟频率为1GHz,即CPU每秒钟内产生1000M个时钟周期,故CPU用于该外设I/O的时间占整个CPU时间的百分比8M/1000M=0.8%(也可通过考察相邻
第 8 页
共 9 页
2010年6月 计算机组织与系统结构 期终考试试卷
两次DMA请求间隔时间内CPU用于该外设I/O的时间来计算,即(2000×1/1GHz)/(1000B/4MB)=0.8%)。 得分 五、简答题(共16分,答案写在答题纸上)
1. 假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么?(3分)
2. 为什么要考虑cache的一致性问题?读操作时是否要考虑cache的一致性问题?为什么?(3分)
3. 简述虚拟地址到物理地址的转换过程。(2分)
4. 微程序控制器的特点是什么?适合于实现哪种类型的指令?(3分)
5. 各流水段寄存器的宽度是否一样?为什么?(2分)
6. 什么是I/O端口?有哪两种I/O端口编址方式?(3分)
第 9 页
共 9 页
正在阅读:
2017-2018学年黑龙江省哈尔滨三十二中高三(上)期末数学试卷(理科)01-13
信任作文600字07-03
陈庄村2008年党风廉政建设工作计划05-07
汽车电器件项目可行性研究报告评审方案设计(2013年发改委标准案例范文)05-02
期货标准文本(60配300)09-21
CSY2001B传感器04-15
一位班主任写的:与家长共勉之03-25
红外 波普分析 - 图文03-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 南京大学
- 试题
- 组成
- 原理
- 答案
- 计算机
- 2010