2018年西安交通大学能源与动力工程学院814计算机基础综合之计算机组成原理考研核心题库
● 摘要
一、名词解释
1. 时间并行
【答案】时间并行即时间重叠。让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以 加快硬件周转而赢得处理速度。其实质就是把一件工作按功能分割为若干个相互联系的部分,每一部分指定专门 的部件完成,各部分执行过程在时间上重叠起来,使所有部件依次分工合作完成完整的工作。典型应用就是流水 线技术。
2. 空间并行
【答案】空间并行即资源重复。在并行性概念中引入空间因素,以数量取胜,通过重复设置硬件资源,大幅度提高计 算机系统的性能。随着硬件价格的降低,资源重复在单处理机中通过部件冗余、多存储体等方式被广泛应用,而多处理机本身就是实施“资源重复”原理的结果。
二、简答题
3. 总线中三种桥的名称是什么? 它们的功能是什么?
【答案】(1)总线体系结构中的三种桥,即桥、总线桥、 桥。(2)桥连接两条总线,使彼此间相互通信。桥又是一个总线转换部件,可以把一条总线的地址空间映射到 另一条总线的地址空间上,从而使系统中的任意一个总线主设备都能看到通向的一份地址表。
4. 某机器中有16个通用寄存器,运行某中断处理程序时仅用到其中2个寄存器,请问响应中断而进入该中断处理程序时是否要将通用寄存器内容保存到主存中去? 需保存几个寄存器?
【答案】(1)要将通用寄存器内容保存到主存中去。
(2)中断服务程序中要使用的通用寄存器原内容保存到存储器中,中断服务程序要动用哪个寄存器,就保存哪个,所以需要保存2个。
5. “计算机应用”与“应用计算机”在概念上等价吗? 用学科角度和计算机系统的层次结构来说明你的观点。
【答案】“计算机应用”与“应用计算机”在概念上等价不等价,原因如下:
(1)计算机应用是一个学科的名词,它包含计算机网络、信息管理、数据库技术、人工智能、计算机辅助设计等多个领域;
(2)应用计算机,从计算机层次结构的角度来看,不同的应用者,应用的方法和目标是不同的,如CPU 的设计者是在微程序级应用计算机,目的是为后面的应用者提供功能强大的指令系统;而操作系统的设计者是在汇编语言级应用计算机,目的是扩展硬件功能,为后面的应用者提供良好的操作环境和手段。
6. 现代计算机系统如何进行多级划分? 这种分级观点对计算机设计会产生什么影响?
【答案】(1)现代计算机系统可分为五个层次
① 第一级是微程序设计级或逻辑电路级,是一个实在的硬件级,由硬件直接执行;② ② 第二级是一般机器级,称为机器语言级,也是硬件级,它由微程序解释机器指令系统; ③ 第三级是操作系统级,它由操作系统程序实现;
④第四级是汇编语言级,由汇编程序支持和执行,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性;
⑤第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的。
(2)对计算机设计产生的影响
①用这种用一系列的级来组成计算机的概念和技术,对了解计算机如何组成提供了一种好的结构和体制;
②而且用这种分级的观点来设计计算机,对保证产生一个良好的系统结构也是很有帮助的。
7. 指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?
【答案】(1)取指周期中从内存读出的信息流是指令流,它流向控制器;
(1)执行器周期中从内存读出的信息流是数据流,它流向运算器。
三、计算题
8. 某异构多核处理机由
需的时间分别为
以下两种方案分配计算任务:
方案1:
整数;
方案2:计算48个整数,计算128个整数,计算80个整数、执行其他任务(不参与计算)。
忽略访存延迟的影响。
(1)求两种方案下完成任务所需的时间。
(2)若定义各个处理机核不空闲的时间总和与各个处理机核总执行时间总和之比为处理机的利用率,求该处理机执行以上任务时的利用率。
【答案】(1)完成任务所需的时间为各个核运行时间的最大值。
方案1完成任务所需的时间为
四个核组成,四个核各自完成一次平方运算所现需计算一个256个整数的数组的每个整数的平方值,分别按计算32个整数,计算128个整数,计算64个整数、计算32个
方案2完成任务所需的时间为
(2)处理机的利用率:
方案1处理机的利用率为
方案2
处理机的利用率为(
不计算在内):
四、综合应用题
9. 已知一个整数序列其中则称x 为A 的主元素。例如若存在
且,则称5为主元素;又如
A=(0, 5, 5, 3, 5,l ,5, 7)则A 中没有主元素。假设A 中的n 个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A 的主元素。若存在主元素,则输出该元素;否则输出-1。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C 或C++或Java 语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
【答案】
(1)算法的策略是从前向后扫描数组元素,标记出一个可能成为主元素的元素Num 。然后重新计数,确认Num 是否是主元素。
算法可分为以下两步:
①选取候选的主元素:依次扫描所给数组中的每个整数,将第一个遇到的整数Num 保存到c 中,记录Num 的出现次数为1; 若遇到的下一个整数仍等于Num ,则计数加1否则计数减1; 当计数减到0时,将遇到的下一个整数保存到c 中,计数重新记为1,开始新一轮计数,即从当前位置开始重复上述过程,直到扫描完全部数组元素。
②判断c 中元素是否是真正的主元素,再次扫描该数组,统计c 中元素出现的次数,若大于n/2, 则为主元素;否则,序列中不存在主元素。
(2)算法实现如下:
不是候选主元素的情况