计算机组成原理-第五章 中央处理器【期末复习|考研复习】

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下计算机组成原理中的重点概念,以供大家期末复习和考研复习的时候使用。

参考资料是王道的计算机组成原理和西电的计算机组成原理。


计算机组成原理系列文章传送门:
第一/二章 概述和数据的表示和运算
第三章 存储系统
第四章 指令系统
第五章 中央处理器
第六章 总线
第七章 输入/输出系统


文章目录

  • 前言
  • [第五章 中央处理器及指令](#第五章 中央处理器及指令)
    • [5.1 CPU的功能和基本结构](#5.1 CPU的功能和基本结构)
      • [5.1.1 CPU功能](#5.1.1 CPU功能)
    • [5.2 指令执行过程](#5.2 指令执行过程)
      • [5.2.1 取指周期](#5.2.1 取指周期)
      • [5.2.2 间址周期](#5.2.2 间址周期)
      • [5.2.3 执行周期](#5.2.3 执行周期)
      • [5.2.4 中断周期](#5.2.4 中断周期)
    • [5.3 指令执行方案](#5.3 指令执行方案)
    • [5.4 数据通路](#5.4 数据通路)
      • [5.4.1 数据通路基本结构](#5.4.1 数据通路基本结构)
    • [5.5 控制器](#5.5 控制器)
      • [5.5.1 CPU控制方式和功能](#5.5.1 CPU控制方式和功能)
      • [5.5.2 硬布线控制器](#5.5.2 硬布线控制器)
      • [5.5.3 微程序控制器](#5.5.3 微程序控制器)
      • [5.5.4 微指令的编码方式](#5.5.4 微指令的编码方式)
      • [5.5.5 微指令的格式](#5.5.5 微指令的格式)
      • [5.5.6 取指操作不同控制器流程](#5.5.6 取指操作不同控制器流程)
      • [5.5.7 微程序控制器和硬布线控制器](#5.5.7 微程序控制器和硬布线控制器)
    • [5.6 指令流水线](#5.6 指令流水线)
      • [5.6.1 流水线](#5.6.1 流水线)
      • [5.6.2 影响流水线的因素](#5.6.2 影响流水线的因素)
  • [6 练手题](#6 练手题)
  • 下一章传送门
  • 总结

第五章 中央处理器及指令

5.1 CPU的功能和基本结构

5.1.1 CPU功能

CPU由运算器和控制器组成。

运算器由ACC累加器,MQ乘商寄存器,X通用寄存器,ALU算术逻辑单元构成。

控制器由PC程序计数器,IR指令寄存器,CU控制单元构成

5.2 指令执行过程

CPU从主存中取出并执行一条指令所需的全部时间称为指令周期 ,也就是CPU完成一条指令的时间。

一个指令周期通常包含若干机器周期,一个机器周期又包含若干时钟周期。一个完整的指令周期应包括取指、间址、执行和中断四个机器周期。

中断周期中进栈操作是将SP减1,和传统意义上的进栈操作相反,因为计算机的堆栈中都是向低地址增加,所以进栈操作是减1,不是加1。

5.2.1 取指周期

是根据PC中的内容从主存中取出指令代码并存放在指令寄存器IR中,取指令的同时,PC加1。

数据流向:

1、PC->MAR->地址总线->主存。

2、CU发出控制信号->控制总线->主存。

3、主存->数据总线->MDR->IR(存放指令)。

4、CU发出读命令->PC+1

5.2.2 间址周期

在有些需要间接寻址的情况下,取操作数有效地址。

数据流向:

1、Ad(IR)->MAR->地址总线->主存。

2、CU发出读命令->控制总线->主存。

3、主存->数据总线->MDR(存放有效地址)。

5.2.3 执行周期

是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。

5.2.4 中断周期

在有处理中断请求的时候,假设程序断点存入堆栈中,并用SP表示栈顶地址,而且进栈操作是先修改栈顶指针,后存入数据。

数据流向:

1、CU发送控制信号->SP-1->SP->MAR->地址总线->主存。

2、CU发送读命令->控制总线->主存。

3、PC->MDR->数据总线->主存(程序断点存入主存)。

4、CU发送读命令(中断服务程序的入口地址)->PC

5.3 指令执行方案

1、单指令周期 :对所有指令都选用相同的时间来完成,指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。

2、多指令周期 :指令之间串行执行,不再要求所有指令占用相同的执行时间。

3、流水线方案 :指令之间并行执行,尽量让多条指令同时执行,但各自处在不同的执行步骤中。

5.4 数据通路

数据在功能部件之间传送的路径称为 数据通路 ,其功能是 实现CPU内部的运算器和寄存器以及寄存器之间的数据交换 。

寄存器之间:PC->Bus->MAR

主存与CPU之间:

1、PC->Bus->MAR

2、CU发出读命令 1->R

3、MEM(MAR)->MDR

4、MDR->Bus->IR

执行算术或逻辑运算:(ALU必须在两个输入端同时有效的情况下才可以工作):

1、Ad(IR)->Bus->MAR

2、1->R

3、MEM(MAR)->数据线->MDR

4 、MDR->Bus->Y

5、(ACC)+(Y)->Z

6、Z->ACC

5.4.1 数据通路基本结构

1) CPU内部单总线方式:所有寄存器的输入端和输出端都连接到一条公共的通路上。结构简单,但数据传输中存在较多冲突现象,性能较低。

2)CPU内部三总线方式:所有寄存器的输入端和输出端都连接到多条公共的通路上。效率CPU内部单总线方式相对有所提高。

3)专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线。性能较高,但硬件量大。前两者为内部总线,第三个为专用数据总线

5.5 控制器

5.5.1 CPU控制方式和功能

CPU的控制方式

控制器的主要功能有:

1)从主存中取出一条指令,并指出下一条指令在主存中的位置。

2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。

3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

5.5.2 硬布线控制器

硬布线控制器由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器。

5.5.3 微程序控制器

微程序控制器采用存储逻辑实现 ,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中, 微操作控制信号由微指令产生。微指令是若干微命令的集合,存放微指令的控制存储器的单元地址称为微地址。若指令系统中具有n种机器指令,则控制存储器中的微程序数至少是n+1个(1为公共的取指微程序)。微命令(控制序列的最小单位),微操作(最小操作,微命令和微操作一一对应),微指令(若干微命令的集合),微周期(读取并执行微指令的时间),微程序(微指令的有序集合)

5.5.4 微指令的编码方式

微指令的编码方式又称为微指令的控制方式 ,指如何对微指令的控制字段进行编码,以形成控制信号。目标是在保证速度的情况下,尽量缩短微指令字长。

1)直接编码(直接控制)方式。

2)字段直接编码方式:将微指令的微命令字段分成若干个小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同的字段中。

3)字段间接编码方式,又称隐式编码。

5.5.5 微指令的格式

1)水平型微指令:指令字中的一位对应一个控制信号,有输出时为1,否则为0。一条水平型微指令定义并执行几种并行的基本操作。优点是微程序短,执行速度快;缺点是微指令长,编写微程序较麻烦。

2)垂直型微指令:类似机器指令操作码的方式,设置微操作码字段,由微操作码规定微指令的功能。一条垂直型微指令只能定义并执行一种基本操作。优点是微指令短、简单、规整,便于编写微程序;缺点是微程序长,执行速度慢,工作效率低。

3)混合型微指令

5.5.6 取指操作不同控制器流程

硬布线控制器:

微程序控制器:

5.5.7 微程序控制器和硬布线控制器


5.6 指令流水线

一条指令的执行过程:

1、取指 :根据PC内容访问主存储器,取出一条指令送到IR中。

2、分析 :对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。

3、执行 :根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。

指令处理方式:

1、顺序执行方式:前一条指令执行完后,才启动下一条指令,T=3nt。

2、流水线执行方式:把取第k+1条指令提前到分析第k条指令的期间完成,而将分析第k+1条指令与执行第k条指令同时进行,T=(2+n)t

5.6.1 流水线


5.6.2 影响流水线的因素

1)结构相关(资源冲突):由于多条指令在同一时刻争用同一资源而形成的冲突

解决办法:

a. 前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期。

b. 单独设置数据存储器和指令存储器,使两项操作各自在不同的存储器中进行,这属于资源重复配置。

2)数据相关(数据冲突,数据冒险):必须等前一条指令执行完才能执行后一条指令的情况---->主要情况

a. 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,可分为硬件阻塞(stall)和软件插入"NOP"指令两种方法。

b. 设置相关专用通路,即不等前一条指令把计算结果返回寄存器组,下一条指令也不再读寄存器组,而是直接把前一条指令的ALU的计算结果作为自己的输入数据开始计算过程,使本来需要暂停的操作可以继续执行,称为数据旁路技术。

c. 通过编译器对数据相关的指令编译优化的方法,调整指令顺序来解决数据相关。

3)控制相关(控制冲突,控制冒险):遇到转移指令和其他改变PC值得指令而造成断流

a. 对转移指令进行分支预测,分为简单(静态)预测和动态预测,静态预测总是预测条件不满足,即继续执行后续指令;动态预测根据程序执行的历史情况,进行动态预测调整。

b. 预取转移成功和不成功两个控制流方向上的目标指令。

c. 加快和提前形成条件码。

d. 提高转移方向的猜准率。

6 练手题

去年并没有相关的考点,但是大家学过计组,都知道这里算是非常重要的,我也不敢轻易断言今年不考,我就找几个期末试题里的大家练练手。

难度是不是一下就上来了,加油!

6.1


6.2


6.3


6.4

微指令也来上几道练练手感

6.5


6.6

6.7


下一章传送门

第六章 总线

总结

相信这一章干货也是满满,有问题打在评论区哦

相关推荐
A懿轩A6 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
小C哈哈哈2 天前
C哈的刷题计划之杨辉三角形(5)
c++·考研·少儿编程·数据结构与算法·计算机考研·csp·信息学奥赛
GISer_Jing2 天前
2025考研加油!Jing也加油哦!
前端·考研·面试
Kusunoki_D3 天前
2009 ~ 2019 年 408【计算机网络】大题解析
计算机网络·考研·408·大题
Nydia.J3 天前
【学习笔记】数据结构(八)
数据结构·考研
Kusunoki_D3 天前
2009 ~ 2019 年 408【数据结构】大题解析
数据结构·考研·408·大题
linux-hzh3 天前
计算机网络之王道考研读书笔记-2
计算机网络·期末复习·王道考研
羊小猪~~5 天前
数据结构C语言描述7(图文结合)--串的实现与BP算法、KMP算法讲解与模版提供
c语言·数据结构·c++·vscode·考研·算法·visual studio
所幸你是例外5 天前
如何在繁忙的生活中找到自己的节奏?
经验分享·笔记·学习·考研·职场和发展·生活·学习方法
一个通信老学姐5 天前
专业125+总分400+南京理工大学818考研经验南理工电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节