计算机组成原理——中央处理器(CPU)考研题
(一) CPU的功能和基本结构
(二) 指令执行过程
(三) 数据通路的功能和基本结构
(四) 控制器的功能和工作原理
1. 硬布线控制器
2. 微程序控制器
微程序、微指令和微命令;
微指令的编码方式;
微地址的形式方式。
(五) 指令流水线
1. 指令流水线的基本概念
2. 指令流水线的基本实现
3. 超标量和动态流水线的基本概念
(六)多核处理器的基本概念
(2009)
18.某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之
间的 缓存时间)分别是 90ns、80ns、70ns 和 60ns,则该计算机的 CPU 时钟周期至少是
A.90ns B.80ns C.70ns D.60ns
答案:A
考点:指令流水线的阶段设置
为了充分发挥流水线的作用,CPU时钟周期应取各功能段时间的最大值,使得各功能段能在CPU的统一时钟控制下执行。这样,流水线的各功能段的执行时间才能相等,不会引起“堵塞”或“断流”现象,使得时间长的段成为整个流水线的“瓶颈”。
19.相对于微程序控制器,硬布线控制器的特点是
A.指令执行速度慢,指令功能的修改和扩展容易
B.指令执行速度慢,指令功能的修改和扩展难
C.指令执行速度快,指令功能的修改和扩展容易
D.指令执行速度快,指令功能的修改和扩展难
答案:D
考查硬布线控制器的特点。
硬布线控制:
由于控制器的速度取决于电路延迟,所以速度较快。
一旦设计完成,不可能通过其他的修改添加新功能。
微程序控制:
同硬布线控制器相比,具有规整性、灵活性、可维护性等一系列优点。
由于微程序控制器采用了存储程序原理,所以每条指令都要从控制存储器中取一次,
因此影响了速度。
(2010)
19.下列不会引起指令流水阻塞的是()
A.数据旁路
B.数据相关
C.条件转移
D.资源冲突
答案:A
考点:引起指令流水的原因。数据旁路的引入是为了解决指令流水阻塞的。
(2012)
18.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有 33 个微命令,构成 5 个互斥类,分别包含 7、3、12、5 和 6 个微命令,则操作控制字段至少有
A. 5 位 B. 6 位 C.15 D. 33 位
答案:C
考点:互斥的概念,由于还需要考虑一种不发命令的情况,所以每组还要加上1,所以有8,4,13,6,7个微命令,取对数取整后得到最少操作控制字段为3+2+4+3+3=15
(2013)
某 CPU 主频为 1.03 GHz,采用 4 级指令流水线,每个流水段的执行需要 1 个时钟周期。假定 CPU 执行了 100 条指令,在其执行过程中,没有发生任何流水线阻塞,此时流水线的吞吐率为
A. 0.25×109条指令/秒 B. 0.97×109条指令/秒
C. 1.0×109条指令/秒 D. 1.03 ×109条指令/秒
答案:C
解析:采用 4 级流水执行 100 条指令,在执行过程中共用4 +(100-1) =103 个时钟周期(k+(n-1))。
CPU 主频是1.03 GHz,即每秒1.03 G个时钟周期
那么流水时间为103/1.03Ghz=1*10-7s
流水线的吞吐率=指令条数n/流水时间=100/1*10-7=1.0×109条指令/秒
(2014)
18. 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下址字段法)确定下条微指令的地址,则微指令中下址字段的位数至少是:
A 5 B 6 C 8 D 9
答案:C
解析:
这里的32条指令是机器指令,一条机器指令对应一条微程序,那么就要有32条微程序,微指令条数=2+32*4=130,取一下对数可以得到需要8位二进制数才能用来表示这些微指令。
(2016)
19、已知无转发机制的五段基本流水线(取指、译码/读寄存器、运算、访存、写回寄存器)中,下列指令序列存在数据冒险的指令对是()
I1: add R1,R2,R3; (R2)+(R3)->R1
I2: add R5,R2,R4; (R2)+(R4)->R5
I3: add R4,R5,R3; (R3)+(R5)->R4
I4: add R5,R2,R6; (R2)+(R6)->R5
A、I1和I2 B、I2和I3 C、I2和I4 D、I3和I4
答案:B
解析:流水线包括3种冒险:结构冒险 、数据冒险 、控制冒险。这里的数据冒险,通俗点说就是前一条指令产生的后果是下一条指令的输入
流水线冒险
结构冒险
由于硬件资源的竞争,操作无法同时执行的冒险情况。如内存访问会造成构造冒险。IF阶段和MEM 阶段都要涉及内存访问。由于访问内存使用的总线是共享资源,无法同时进行操作。
数据冒险
当即将执行的指令依赖于还未处理完成的数据时,会导致指令无法立刻开始执行,引发数据冒险。直通(Forwarding):原本回写运算结果是在WB 阶段,直通是指在运算结果确定的EX 阶段,将数据直接传递给下一个指令。
控制冒险
程序存在跳转语句,如果程序的实际执行路径是要跳转到其他的地址去执行,那么流水线中已经做的这些取指和译码工作就白做了,这就是流水线的控制冒险。此时,处理器需要排空流水线,跳转到新的地址处重新进入流水线。
(2016)
2.静态流水线是指( )
A.只有一种功能的流水线
B.功能不能改变的流水线
C.同时只能完成一种功能的多功能流水线
D.可同时执行多种功能的流水线
答案:C
一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线。多功能流水线是指流水线的各段可以进行不同的连接,在不同时间内或同一时间内,通过不同的连接方式实现不同的功能。
在多功能流水线中,按照同一时间内是否能够连接成多种方式以同时执行多种功能,可以将其分为静态流水线和动态流水线。
所谓静态流水线,是指同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能,只有当按照该方式工作的所有任务都流出流水线之后,也就是流水线完全排空之后,多功能流水线才能重新进行连接,以实现另外的功能。
动态流水线是指同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能。当然,要同时实现多种连接方式是有条件的,即流水线中各个功能部件之间不能发生冲突。
1、以下说法不正确的是( )
A.线性流水线是单功能流水线
B.动态流水线是多功能流水线
C.静态流水线是多功能流水线
D.动态流水线只能是单功能流水线
答案:D
4. 在流水机器中,全局性相关是指( )
A.先写后读相关
B.先读后写相关
C.指令相关
D.由转移指令引起的相关
答案:D
5.流水机器对全局性相关的处理不包括( )
A.猜测法
B. 提前形成条件码
C.加快短循环程序的执行
D. 设置相关专用通路
答案:D
设置相关专用通道是为解决局部相关而产生的一种方法。
(2012)
44 某 16 位计算机中,带符号整数用补码表示,数据 Cache 和指令 Cache 分离。(下表给出了指令系统中部分指令格式,其中 Rs 和 Rd 表示寄存器,mem 表示存储单元地址,(x)表示寄存器 x 或存储单元 x 的内容。)
该计算机采用 5 段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。请回答:

(1)若 int 型变量 x 的值为-513,存放在寄存器 R1 中,则执行“SHR R1”后,R1 的内容是多少?(用十六进制表示)
答:
X=-513=-(512+1)=(-00000010 00000001)2
X补=(11111101 11111111)2
右移 1 位后位 1111 1110 1111 1111,
即指令执行后(R1)=FEFFH。
(2)若在某个时间段中,有连续的 4 条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这 4 条指令所需的时钟周期数为多少?
答:执行这4条指令所需的时钟周期数=5+(4-1)=8
3)若高级语言程序中某赋值语句为 x=a+b,x、a 和 b 均为 int 型,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流中的执行过程如图所示。则这 4 条指令执行过程中 I3 的 ID 段和 I4 的 IF 段被阻塞的原因各是什么?
I1 LOAD R1,[a]
I2 LOAD R2,[b]
I3 ADD R1,R2
I4 STORE R2,[x]
答:
I3 的 ID 段被阻塞的原因: I3 与 I1 和 I2 都存在数据相关,需等到 I1 和 I2 将结果写回寄存器后,I3 才能读寄存器内容。
I4 的 IF 段被阻塞的原因: I4与I3存在结构相关,I3占用了IF部件,需等I3进入ID部件后I4才能进入IF部件.
(4)若高级语言程序中某赋值语句为 x=x*2+a,x 和 a 均为 unsigned int 类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿(3)题图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。
答:语句为 x=x*2+a对应的指令序列为:
I1 LOAD R1,[x]
I2 LOAD R2,[a]
I3 SHL R1 //或者 ADD R1,R1
I4 ADD R1,R2
I5 STORE R2,[x]
故执行 x=x*2+a 语句最少需要 17 个时钟周期。
(2009)
44.
某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如下图,图中所有控制信号为1时表示有效,为0表示无效,例控制信号MDRinE为1表允许数据从DB打入MDR,MDRin为1表允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。
加法指令“ADD (R1),R0”的功能为(R0)+((R1))→(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。
下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。
答案:

这里对这几个时钟周期的功能进行一下说明:
C1:MAR←(PC) 将PC中的内容送到MAR(存储器地址寄存器)中,取指令的地址
PCout,MARin PC寄存器要流出数据,MAR要流入数据
C2: MDR←M(MAR) PC←(PC)+1
将MAR中的内容(指令的地址)送到MDR(寄存器数据寄存器中),PC+1以便读取下一条指令
MemR,MDRinE,
PC+1
存储器允许读数据,允许数据从DB打入MDR
C3: IR←(MDR) 将取得指令存放到IR(指令寄存器中)
MDRout,IRin
MDR流出数据,指令寄存器流入数据
C4: 指令译码
无
C5: MAR←(R1) 取操作数R1的内容(即所指向主存单元的地址)。
R1out,MARin
R1流出数据,MAR流入数据
C6: MDR←M(MAR) A←(R0) 取得R1所指向主存单元的内容,取操作数R0的内容存放到寄存器A中
MemR,MDRinE
R0out,Ain
存储器允许读数据,允许数据从DB打入MDR
R0流出数据,A流入数据
C7: AC←(MDR)+(A) 加法运算,结果保存到AC寄存器中
MDRout,Add,ACin
MDR流出数据,加法运算,A流入数据
C8: MDR←(AC) 送到MDR
ACout,MDRin
A流出数据,MDR流入数据
C9: M(MAR)←(MDR) 写回到R1
MDRoutE,MemW
允许数据从MDR打入DB,存储器允许读数据
计算机组成原理——中央处理器(CPU)考研题的更多相关文章
- 计算机组成原理 及CPU,硬盘,内存三者的关系
前面提到了,电脑之父——冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器. 我们看一下现在我们电脑的: 键盘鼠标.显示器.机箱.音响等等. 这里显示器为比较老的CRT显示器 ...
- 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器
计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...
- 计算机组成原理 — CPU 中央处理器
目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...
- 计算机组成原理实验之CPU组成与指令周期实验
(实验五 CPU组成与指令周期实验) 课程 计算机组成原理实验 实验日期 2015 年 12 月 8 日 一.实验目的 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机. 2. ...
- day01-编程与计算机组成原理
什么是编程 编程语言:是人与计算机沟通交流的介质,通过标准化的规则传递信息 编程:就是为了使计算机能够理解人的意图,通过编程语言写出一个个文件,这堆文件完成相应的目的 编程的目的:用计算机取代人完成工 ...
- 重学计算机组成原理(五)- "旋转跳跃"的指令实现
CPU执行的也不只是一条指令,一般一个程序包含很多条指令 因为有if-else.for这样的条件和循环存在,这些指令也不会一路平直执行下去. 一个计算机程序是怎么被分解成一条条指令来执行的呢 1 CP ...
- 计算机组成原理(电脑硬件&语言分类)
计算机组成原理 一.电脑硬件配置 CPU :中央处理器(人类的大脑) -飞机 内存:存放一些临时数据(人类的短暂记忆-右脑) -高铁 硬盘:存储永久数据(左脑-长期记忆) - 汽车 输入输出:键盘鼠标 ...
- linux的系统组成和计算机组成原理,linux常用操作
Linux入门 linux简介 学习目的:linux服务器操作系统稳定长期运行,python,pycharm装于linux上 linux系统组成 应用软件:调用系统软件接口 linux操作系统分两 ...
- 计算机中的CPU
今天写一下计算机中最核心的一部分,就是计算机的大脑---CPU.CPU也就是中央处理器(Central Processing Unit).中央处理器是一块超大规模的集成电路,是一台计算机的运算核心(C ...
随机推荐
- 数据库语言-SQL
SQL语言的功能概述 DDL语句引导词:Create(建立),Alter(修改),Drop(撤销) DML语句引导词:Insert,Delete,Update,Select DCL语句引导词:Gran ...
- 使用admin的步骤、必知必会13条、单表的双下划线、外键的操作、多对多的操作:
MVC M: model 模型 与数据库交互 V: view 视图 HTML C:controller 控制器 流程 和 业务逻辑 MTV M:model ORM T:template 模板 HTML ...
- Java之属性集(Properties类)
Properties概述 java.util.Properties类 继承于 Hashtable ,来表示一个持久的属性集.它使用键值结构存储数据,每个键及其对应值都是一个字符串.该类也被许多Java ...
- DEBUG的基本命令的使用[MASM]
DEBUG的基本命令的使用 DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段. DEBUG的命令都是一个字母,后跟一个或多个参数:字母 ...
- Java描述设计模式(11):观察者模式
本文源码:GitHub·点这里 || GitEE·点这里 一.观察者模式 1.概念描述 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.观察者模式定义了一种一对多 ...
- Ant Design Pro 改变默认启动端口号
找到package.json文件,找到图位置加--port即可.
- 一起学SpringMVC之Json
本文主要以一个简单的小例子,简述SpringMVC开发中,Json的相关应用,仅供学习分享使用,如有不足之处,还请指正. 什么是Json ? JSON 指的是 JavaScript 对象表示法(Jav ...
- [WPF 自定义控件]使用WindowChrome自定义RibbonWindow
1. 为什么要自定义RibbonWindow 自定义Window有可能是设计或功能上的要求,可以是非必要的,而自定义RibbonWindow则不一样: 如果程序使用了自定义样式的Window,为了统一 ...
- python爬虫网页解析之parsel模块
08.06自我总结 python爬虫网页解析之parsel模块 一.parsel模块安装 官网链接https://pypi.org/project/parsel/1.0.2/ pip install ...
- SSH框架之Struts2第二篇
1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一 ...