计算机组成原理——中央处理器(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 ...
随机推荐
- 09. Go 语言并发
Go 语言并发 并发指在同一时间内可以执行多个任务.并发编程含义比较广泛,包含多线程编程.多进程编程及分布式程序等.本章讲解的并发含义属于多线程编程. Go 语言通过编译器运行时(runtime),从 ...
- ubuntu 查看端口被占用并删除端口
做网络的同学,估计会经常用到这个功能,这里就做一个记录吧. 首先查看特定端口是占用了: sudo netstat -nplt 其次要删除特定端口并查看: kill -9 pid_num sudo ne ...
- 【algo&ds】9.拓扑排序、AOV&AOE、关键路径问题
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性 ...
- Windows10+texlive2018+texstudio
texlive2018+texstudio下载链接 链接: https://pan.baidu.com/s/1KjPJnw1kwMBCu3qGT9rIUg 提取码: g8ha 安装texlive 解压 ...
- go-爬图片
go语言爬取图片 注:动态加载出来的爬取不到,或怕取出来图片出错,代码中的网页是可以正常爬取的 package main import ( "fmt" "io" ...
- Selenium(十七):unittest单元测试框架(三) 脚本分析、编写Web用例
1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不 ...
- js相同的正则多次调用test()返回的值却不同
项目中文件上传需要验证文件的格式,第一次正常,第二次就验证不通过了.在验证的地方console.log()两遍,发现结果不一样 !!! 正则和文件名都没变,但是两次的验证结果不同. this.reg ...
- ebs oracle YTD期间费用
select PERIOD_NAME, SEGMENT3, SEGMENT3_DESC, sum(case when SEGMENT2 = '1011' then ACCOUNTED_ACCRUAL ...
- vue slot内容分发
当需要让组件组合使用,混合父组件的内容和子组件的模板的时候,就会用到slot.这个过程就叫内容分发. 最为常用的是两种slot:一种是匿名slot, 一种是具名slot. 匿名 很好理解: 就是默认, ...
- 简单快速上手Jackson使用
1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是哪种形式的转换,Jackson > Gson > Json-lib,而且Jackson的处理能力甚至高出Json-li ...