搜档网
当前位置:搜档网 › 计算机组织与系统结构 (A-1 卷)

计算机组织与系统结构 (A-1 卷)

计算机组织与系统结构 (A-1 卷)
计算机组织与系统结构 (A-1 卷)

考试科目名称 计算机组织与系统结构 (A-1卷)2007——2008学年第 2 学期 教师 袁春风/窦万春考试方式:闭卷系(专业) 计算机科学与技术年级 2006班级

学号 姓名 成绩

题号一二三四五六

分数

一、填空题(本大题共15小题,每空1分,共20分)

得分

1. 二进制指令代码的符号化表示被称为汇编语言源程序。必须通过相应的翻译程序把它转

换为机器语言程序才能被计算机执行。

2. 通常用一个寄存器来存放当前执行指令的地址,MIPS结构中将该寄存器简写为PC。由于历史的原

因,PC寄存器通常被称为程序计数器(或Program Counter)。

3. 在MIPS中,分支指令的转移目标地址是由分支指令的下条指令地址加上一个位移量决定的。通常

把这种方式称为(PC)相对寻址方式。

4. 假定寄存器$s1中存放二进制信息为0000 0000 0000 0000 0000 0000 1101 1000,则在屏幕上用

16进制显示为0x 0000 00D8。若该信息是一个无符号整数,则表示的值为

216。

5. 过程调用时,涉及到调用过程和被调用过程之间的数据交换和程序切换,所以要有相应的存储空间

来存放调用参数、返回数据和返回地址等信息。这种用于过程调用的存储空间被称为堆栈Stack (或栈帧Stack Frame)。

6. 衡量CPU性能好坏的一个重要指标是CPU执行时间。它与程序包含的指令条数和每条指令的平均

时钟数以及时钟周期有关。通常用英文缩写CPI 来表示每条指令的平均时钟数。有时也用基准程序来测试处理器的性能,“基准程序”对应的英文单词是Benchmark。

7. 进行基本加/减等算术运算和与/或/非等逻辑运算的部件被称为算术逻辑部件。用英文缩写表示为

ALU。

8. 由于Cache数据是主存数据的副本,所以Cache和主存之间存在一致性问题,可以采用两种不同的

写策略来解决。这两种写策略是Write Back(或写回法/一次性写)和Write Through(或写通过法)。

9. 在流水线中,如果多条指令同时需要用到同一个功能部件,就发生了流水线冒险,会引起流水线的

阻塞。通常把这种流水线冒险称为结构(或资源冲突)冒险。

10. 可以用一个特殊的Cache来记录最近使用页的页表项,因为页表项主要用于地址转换,所以把这种

特殊的Cache称为转换后援缓冲器,简称快表(或TLB) 。

11. I/O带宽(或 I/O Bandwidth)是指单位时间内入/出系统的数据量或所完成的

I/O操作次数,也称为吞吐率(Throughput)。

12. 为了保证在中断断点和中断现场等保护过程中不被打断,必须使处理器处于关中断(或禁止中断)

状态,通常通过设置中断允许位来实现,若该位为0,则所有中断都不被响应。

13. DMA传送过程大致可分为三个阶段:DMA初始化、数据传送和DMA结束后处理。

14. 计算机存储器系统采用分层结构,最低层由光盘库和磁带库之类的大容量存储器构成,被称为海

量(或后备、后援、备份)存储器,主要用于存储大量存档的文件信息。

15. 现代计算机的主存大多采用字节(Byte)编址方式。所以,假定一个分页虚拟存储器系统

的虚拟地址位数为32位,则逻辑地址空间大小应为 4GB。若页面大小为512KB,则一个程序最多可以有213(或8192 或 8K)个页面。

得分

二、选择题(本大题共30小题,计30分)

1. 以下哪种程序属于应用软件?( D )

A. Java解释程序

B. C语言编译程序

XP D.

金山词霸

C.

Windows

2. 下面有关指令集体系结构的说法中,错误的是( C )。

A. 指令集体系结构位于计算机软件和硬件的交界面上

B. 指令集体系结构是指低级语言程序员所看到的概念结构和功能特性

C. 程序员可见寄存器的长度、功能与编号不属于指令集体系结构的内容

D. 指令集体系结构的英文缩写是ISA

3. 假设A是一个含有100个字的数组,编译器把变量f分配给MIPS寄存器$s1,数组A的首地址存

放在$s3中。则C语句f = A[10]编译后生成的MIPS汇编代码为( D )。

A. l b $s1, 10($s3)

B. lb $s1, 40($s3)

C. lw $s1, 10($s3)

D. lw $s1, 40($s3)

4. 程序控制类指令可改变程序执行顺序。以下( C )不属于程序控制类指令。

A. 调用指令

B. 分支指令

C. 访存指令

D. 无条件转移指令

5. 寄存器中的值有时是数据,有时是指针(即:内存地址),它们在形式上没有差别,只有通过( C )

才能识别它是数据还是地址。

A. 寄存器的编号

B. 判断程序

C. 指令的操作码

D. 时序信号

6. 16位字长的定点数,采用补码形式表示,其一个字所能表示的整数范围是( A )。

A. -215 ~ +(215 -1)

B. -(215 –1)~ +(215 –1)

C. -(215 +1)~ +215

D. -215 ~ +215

7. 假定某数采用IEEE754单精度浮点数格式表示为45100000H,则该数的值是( B )。

(+1.125)10×211

A. (+1.125)10×210

B.

(+0.125)10×210

C. (+0.125)10×211

D.

8. 若某个基准测试程序在机器A上运行时需要200ms,而在机器B上的运行时间是0.16s,则如下

给出的结论中哪个是正确的?( B )

A. 所有程序在机器A上都比在机器B上运行速度慢

B. 机器B的速度大约是机器A的1.25倍

C. 机器A的速度大约是机器B的1.25倍

D. 机器A比机器B大约慢1.25倍

9. 以下有关计算机运算速度衡量指标的描述中,错误的是( B )。

A. 计算机的主频与CPU速度有关

B. MIPS数大的机器一定比MIPS小的机器快

C. IPC是指每个时钟周期内平均执行的指令条数

D. 一个用户程序执行过程中可能会插入运行其他程序,所以通常观测到的用户程序执

行时间不是其真正的CPU执行时间

10. 假定某程序在计算机A上运行需要10秒钟,计算机A的时钟频率为1GHz。现在硬件设计人员想

设计计算机B,希望该程序在B上的运行时间缩短为8秒钟,而使用新技术可以使时钟频率大幅度提高,但在B上运行该程序所需的时钟周期数为A上的1.5倍。那么,机器B的时钟频率至少应为多少,才能达到希望的要求?( C )

1.2GHz C. 1.25GHz D. 1.875GHz

A.

533MHz B.

11. 下面有关CPU时钟的叙述中,错误的是( B )。

A. 边沿触发定时是指状态单元总是在时钟的上升沿或下降沿进行状态的改变

B. 处理器总是每来一个时钟就开始执行一条新的指令

C. 时钟周期以相邻状态单元之间最长组合逻辑延迟为基准设计

D. 主频是指CPU时钟周期的倒数

12. 假定采用单周期数据通路处理器有以下几类MIPS指令:R型运算指令、I型运算指令、分支指令

Beq、J型跳转指令。若数据通路中多路复用器、控制单元、PC、扩展单元和传输线路都不考虑延迟,其它各主要功能单元的操作时间如下:指令存储器和数据存储器:3ns;ALU和加法器:2ns;

寄存器堆:1ns。则该CPU时钟周期为( A )。

9ns D.

6ns

C.

A.

7ns

B.

10ns

13. 程序控制类指令可改变程序执行顺序。以下是有关分支冒险和分支预测的叙述:

① 程序控制类指令可能由于控制(分支)冒险而产生阻塞

② 采用简单(静态)预测时,每次的预测结果总是一样

③ 根据分支指令历史记录进行动态预测能达90%的预测成功率

④ 预测错误时必须把已取到流水线中的错取指令从流水线中排出

以上叙述中,正确的有( D )。

A. 仅①和②和④

B. 仅①和②和③

C. 仅①和③和④

D. 全部

14. 下面是一段指令序列:

lui $t1, 20

15($t2)

lw $t3,

$t2

$t1,

addu $t1,

以上指令序列中,第三条指令发生数据相关。假定采用“取指、译码/取数、执行、访存、写回”这种五段流水线方式。假定不采用“转发”,那么,为了使这段程序的执行不被阻塞,需要在第三条指令前加入几条nop指令?( B )

A. 1

B. 2

C. 3

D. 4

15. 对于与上题(14题)同样的情况,假定采用“转发”,那么,为了使这段程序的执行不被阻塞,需

要在第三条指令前加入几条nop指令?( A )

A. 0

B. 1

C. 2

D. 3

16. 以下各类存储器中,哪种是易失性存储器?( B )

A. Flash

B. Cache

C. RAID

D. CD-ROM

17. 假定主存地址位数为32位,按字节编址,主存和Cache之间采用直接映射方式,每个主存块的大

小为4个字,每字32位,Cache的数据区大小为512KB,则标志应该有几位?( B )

A. 12

B. 13

C. 14

D. 15

18. 假定Cache采用2-way组相联映射方式,共有16个槽(第0槽到第15槽),每个主存块为32字

节,主存按字节编址。请问主存第1022号单元所在的主存块可以放到以下哪个槽中?( D )

A. 1

B. 6

C.9

D. 15

19. 假定有一个计算机系统,其DRAM存储器的访问时间为:发送地址1个时钟,每次访问的初始化需

要16个时钟,每发送1个数据字需要1个时钟。若主存块为4个字,DRAM的存取宽度为1个字。

问该系统中Cache的一次失靶损失至少为多少时钟?( D )

A. 18

B. 21

C. 34

D. 69

20. 以下( A )情况出现时,CPU会自动查询有无中断请求,进而可能进入中断响应周期。

A. 一条指令执行结束

B. 一次 I/O 操作结束

C. 机器内部发生故障

D. 一次DMA 操作结束

三、判断下列叙述是否正确。(20分)

得分

1. 随着流水段个数的增加,流水段之间缓冲开销的比例增大。(√)

2. 每个流水段之间的流水段寄存器的位数一定相同。(X)

3. 利用旁路技术可以解决所有数据冒险。(X)

4. 超标量技术是指采用更多流水段个数的流水线技术。(X)

5. 动态流水线中一定有多个不同的指令执行单元。(√)

6. 在计算机中引入Cache后,CPU所能访问的地址空间变大了。(X)

7. 在引入了Cache的系统中,store指令的处理比load指令的处理更复杂。(√)

8. CPU在执行一条load/store指令过程中至少要访问主存一次。(X)

9. ROM和RAM共同组成主存,它们的访问方式一样,都是随机存取存储器。(√)

10. 不可能出现“Cache命中但缺页”和“TLB命中但缺页”的情况。(√)

11. “Cache缺失”和“页面缺失”都是由软件来处理的。(X)

12. RAID3采用小条区方式,因而适用于视频点播之类的吞吐量高的多媒体应用系统。(√)

13. 同步总线采用应答(握手)信号控制信息的传送。(X)

14. 一个I/O控制器中只能有一个I/O地址。(X)

15. 程序查询I/O方式和程序中断I/O方式下,外设数据直接和CPU中寄存器交换。(√)

16. 程序中断I/O方式下,外设只要申请中断就可以马上得到响应。(X)

17. 磁盘的柱面号就是磁道号。(√)

18. I/O控制器主机侧传输的数据宽度与设备侧传输的数据宽度总是一样。(X)

19. 在I/O独立编址方式下,CPU可以通过执行I/O指令来访问DMA控制器。(√)

20. DMA方式用于键盘和鼠标器的数据输入。(X)

四、分析设计题(共30分)

得分

1.以下是用C语言写的一个传统的While语句:while (save[i] == k ) i += 1;

假设i和k对应于寄存器$s3和$s5,数组save的基址存放在$s6中,对应的MIPS汇编代码为:

假定loop的开始位置在内存80000处,则上述循环的MIPS机器码为:

根据上述给出的叙述,回答下列问题。

(1) 上述给出的MIPS机器码中有一处错误,你能找出来吗? (1分)

答:第一条指令中的倒数第二个字段的值应该是2,而不是4,表示左移的位数。

(2) MIPS内存空间的编址单位是多少? (1分)

答:字节。从上图可看出,每条指令32位,占4个地址,所以一个地址中有8位。

(3) 解释为什么指令“sll $t1, $s3, 2”能实现4*i的功能。(1分)

答:因为这是左移指令,左移2位,相当于乘22=4。

(4) 该循环中哪些是R-型指令? 哪些是I-型指令? (1分)

答:从上图可看出,第1-2条为R-型,第3-5条为I-型。

(5) $t0和$s6的编号各为多少? (1分)

答:从第3和4条指令,可看出$t0的编号为8,第2条指令看出$s6的编号为22。

(6) Exit的值是多少?要求说明其含义和计算过程。(2分)

答:Exit的值是80024,其含义是循环结束时跳出循环后执行的首条指令的地址,由当前条件转移指令(分支指令)的地址80012,加上4得到下条指令的地址,然后再加上相对位移量2*4得到。80012+4+2*4=80024。(如果答Exit为2也算对,此时其含义就是转移到的目标指令相对于当前条件转移指令的指令条数,所以计算时,需要将指令条数转换为地址位移量,所以要乘以4。)

(7) 指令“j 20000”的操作码是什么(用二进位表示)? (1分)

答:其操作码为“000010”。

(8) MIPS中分支指令和跳转指令的跳转范围分别是什么? (2分)

答:因为分支指令(条件转移指令)的相对位移量的范围为:-215到+(215-1),但这是相对于分支指令的下条指令而言的,所以,相对于当前分支指令而言,转移范围为:-(215-1)到+215条指令。即:往前跳,最多跳到第32767条指令(相当于32767x4=131068个单元),往后跳,最多跳到第32768条指令(相当于32768x4=131072个单元)。

因为无条件跳转指令的目标地址范围为:0到226-1(相对于下条指令),所以,相对于本条指令而言,其转移范围为:1到226条指令。即:相对于当前跳指令而言,最近就跳到下条指令,最远跳到后面的第226条指令。

(9) 数组save的每个元素占几个字节? (1分)

答:因为每次循环取数,其下标地址都要乘以4,所以是4个字节。

2.假定单周期、多周期和流水线处理器分别如图1、图2和图3所示,各主要功能单元的操作时间为:存储单元200ps;ALU和加法器:100ps;寄存器堆(读或写):50ps。

图1 单周期数据通路和控制器

图2 多周期数据通路和控制器

图3 流水线数据通路和控制器

在不考虑多路选择器、控制单元、PC访问、扩展器和线路等延迟的情况下,对于上述题1中给出的循环程序(假定循环为8次),回答下列问题。

(1)单周期、多周期和流水线处理器的最小时钟周期各为多少?(3分)

答:单周期为:200+50+100+200+50=600ps

多周期和流水线都为:200ps

(2)在单周期处理器和多周期处理器上执行8次循环所花的时间各是多少?(2分)答:单周期为:7*6*600ps+4*600=27600ps

多周期为:7*(3*4+5+2*3)*200ps+ (2*4+5+3)*200ps=35400ps

(3)在简化流水线图(图4)上画线,以表示循环体中指令的数据相关性。(2分)

图4 简化流水线图

(4)假定采用“数据转发”和“静态预测”(每次预测为不转移,条件检测在ID/RF阶段)技术,则在流水线处理器上执行8次循环所花的时间为多少?(要求说明原因)(4分)

参考答案:上图中的数据冒险,除了load-use数据冒险(红线表示)外,其他都可以通过转发实现;对于bne控制冒险,只有最后1次预测错误,所以前7次没有阻塞;对于J指令,每次都有一个阻塞。因此,前7次循环有2次阻塞,总共要有7*(6+2)=56个时钟周期,最后1次循环为6个时钟。总共时间为:(56+6)x200ps=12400ps

3. 某计算机系统中,假设处理器按500MHz的速度执行指令,硬盘以64位为单位进行传送,速率为4MB/Sec,要求没有任何数据传输被错过。(1)若用程序中断I/O方式,每次传送的开销(包括用于中断响应和处理的时间)是500个时钟周期。那么处理器用在硬盘I/O操作上所花的时间百分比为多少?(2)若用DMA方式,处理器花500个时钟进行DMA传送的初始化设置,并且在DMA 完成后的中断处理需要500个时钟。如果从硬盘发出的平均传输量为4KB(即每次DMA传送4KB 的数据块),那么处理器用在硬盘I/O操作上的时间百分比又为多少?(8分)

参考答案:(1)中断传送:硬盘要求每次中断以64位进行传送,为了保证没有任何数据传输被错过,传送的速率应达到每秒4MB/8B=500K次中断的速度;

每秒钟用于中断的周期数为500Kx500=250x106;

在一次传输中所消耗的处理器时间的百分比为:250x106/(500x106)=50%;

(2)DMA传送:每个DMA传送将花4KB/(4MB/Sec)=1x10-3秒;

一秒钟有1/(1x10-3 )=1000次DMA传送;

如果硬盘一直在传送数据的话,处理器必须每秒钟花 (500+500)x1000=106个时钟周期来为硬盘I/O 操作服务;在硬盘I/O操作上处理器花费的时间占:

106/500x106=1.5x10-3=0.2%

五、简答题(共10分)

得分

1.C语言中分别与IEEE754单精度和双精度表示对应的数据类型是什么?(2分)

答:分别为float和double型。

2. 简述虚拟地址到物理地址的转换过程。(3分)

答:虚拟地址中分虚页号和页内地址,首先根据虚页号找到对应的页表项,若其中的有效位为1,则说明对应页面在主存页框中,此时,取出页框号,然后和虚拟地址中的页内地址拼接起来构成物理地址;若有效位为0,则说明“缺页”,此时,调出“缺页”异常处理程序进行处理。

3. 为什么高速缓存Cache能提高CPU访问主存的速度?(3分)

答:Cache是高速小容量的存储器,介于CPU和主存之间。在程序执行过程中,总是把当前访问的内存单元所在的一个局部主存块调到Cache中。由于程序访问的局部性特点,在不久的将来会经常访问这个局部主存块,因此,就不需要再到主存去访问,而只要访问高速的Cache即可,因而,能提高访问速度。

4. 简述控制器的功能。(2分)

答:控制器通过对指令进行译码,得到每条指令执行所需要的控制信号来控制指令的执行。

相关主题