当前位置: 首页 > news >正文

计算机组成原理---中央处理器

文章目录

  • 1. 回忆过去
  • 2. CPU的功能和基本结构
    • 2.1 运算器的基本结构
      • 2.1.1 专用数据通路方式
      • 2.1.2 内部单总线方式
    • 2.2 控制器基本结构
    • 2.3 CPU基本结构
  • 3. 指令执行过程
  • 4. 数据通路的功能和基本结构
    • 4.1 单总线方式
    • 4.2 专用数据通路
  • 5. 控制器的功能和工作原理
    • 5.1 硬布线控制器
      • 5.1.1 硬布线控制器的设计分析(略)
      • 5.1.2 具体电路设计(略)
      • 5.1.3 总结特点
    • 5.2 微程序控制器
      • 5.2.1 微程序控制器的基本原理
      • 5.2.2 微指令的设计
      • 5.2.3 微程序控制单元的设计
  • 6. 指令流水线
    • 6.1 基本概念 & 性能指标
    • 6.2 指令流水线影响因素分类
      • 6.2.1 影响流水线因素
      • 6.2.2 流水线的分类(略)
      • 6.2.3 流水线的多发技术(略)
    • 6.3 补充:五段式指令流水线
  • 7. 多处理器的基本概念(简要了解)
    • 7.1 SISD、SIMD、MIMD、向量处理器的基本概念
    • 7.2 硬件多线程
    • 7.3 总结

1. 回忆过去

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. CPU的功能和基本结构

在这里插入图片描述

CPU的功能是:指令控制、操作控制、时间控制、数据加工、中断处理

在这里插入图片描述

2.1 运算器的基本结构

2.1.1 专用数据通路方式

专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。

在这里插入图片描述

专用数据通路方式的特点是:性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。

2.1.2 内部单总线方式

CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。

在这里插入图片描述

CPU内部单总线方式的特点是:结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。

2.2 控制器基本结构

在这里插入图片描述

控制器基本结构:

    1. 程序计数器(PC):用于指出下一条指令在主存中的存放地址
    1. 指令寄存器(IR):用于保存当前正在执行的那条指令
    1. 指令译码器(ID):仅对操作码字段进行译码,向控制器提供特定的操作信号
    1. 微操作信号发生器:根据IR、PSW及时序信号,产生控制整个计算机系统所需的各种控制信号
    1. 时序系统:用于产生各种时序信号
    1. 存储器地址寄存器(MAR):用于存放所要访问的主存单元的地址
    1. 存储器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息

2.3 CPU基本结构

在这里插入图片描述

  • 可编程寄存器有:程序状态字寄存器PSW、一系列通用寄存器组、指令寄存器PC。PC可见是因为汇编可用jmp指令对其值进行修改
  • 不可编程寄存器有:MAR、MDR、IR、暂存寄存器

在这里插入图片描述

小结:

在这里插入图片描述

3. 指令执行过程

在这里插入图片描述

  • 指令周期:CPU从主存中每取出并执行一条指令所需的全部时间
  • 指令周期常常包含若干机器周期,而机器周期又常常包含若干时钟周期。CPU时钟周期是CPU操作的最基本单位
  • 定长机器周期:每个机器周期内的时钟周期数相等
  • 不定长机器周期:每个机器周期内的时钟周期数不相等
  • 每个指令周期内机器周期数可以不等,每个机器周期内的时钟周期数也可以不等
  • 完整的指令周期包括:取指周期、间址周期、执行周期、中断周期

在这里插入图片描述

在这里插入图片描述
取指周期:(PC)->MAR;1->R;M(MAR)->MDR;(MDR)->IR;(PC)+1->PC

在这里插入图片描述
间址周期:Ad(IR)->MAR;1->R;M(MAR)->MDR。有些计算机底层设计会有上述的第4步,即把此时MDR的内容(有效地址EA)给拼接成IR的新地址码

在这里插入图片描述
各个指令的执行周期所做的任务操作不同,因此没有统一的数据流向

在这里插入图片描述

中断周期:(SP)-1->SP,(SP)->MAR;1->W;(PC)->MDR,(MDR)->M(MAR);向量地址->PC

在这里插入图片描述
各个指令执行方案的CPI分析:

    1. 单周期处理器CPI=1
    1. 多周期处理器CPI>1
    1. 流水线方案CPI=1(理想情况下)

值得注意的是,单周期处理器是让所有指令都选用相同的执行时间来完成(短指令还需迎合长指令的执行时间),即每条指令都在一个时钟周期内完成,统一了时间执行标准,其CPI=1其实是一种从数量上来进行衡定,但质量上并没有变化,反倒还降低了整个系统的运行速度。而流水线方案是利用了每条指令在不同机器周期内所占用的硬件部件不同,从而实现指令间的并行执行,是真正意义上的CPI=1(理想条件下)

小结:

在这里插入图片描述

4. 数据通路的功能和基本结构

在这里插入图片描述
数据通路的基本结构:

    1. CPU内部单总线方式
    1. CPU内部多总线方式
    1. 专用数据通路方式

4.1 单总线方式

在这里插入图片描述
例题:

在这里插入图片描述

在这里插入图片描述

小结:

在这里插入图片描述
为什么单总线方式下ALU需要配合暂存器使用?

  • 因为单总线一个时钟周期内只能允许一个部件的数据进行流通,多个部件的数据进行流通会造成数据混乱,而ALU又是需要两个操作数才能进行运算,所以需要提前将一个操作数存入暂存器中,这样避免了多数据的流通混乱。多总线方式就不必这么麻烦了,因为设计了多条内部总线,也就意味着每个时钟周期可以允许有多个数据进行流通。

4.2 专用数据通路

专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接电路,避免使用共享的总线,性能较高,但硬件量大。一般使用三态门,根据控制信号,控制硬件部件的数据输出。

在这里插入图片描述

在这里插入图片描述

要特别关注各阶段的微操作序列及其对应的控制信号

在这里插入图片描述

小结:

在这里插入图片描述

5. 控制器的功能和工作原理

5.1 硬布线控制器

在这里插入图片描述

  • 采用硬布线控制器方式时:一条指令有若干机器周期,每个机器周期有若干CPU时钟周期,若干CPU时钟周期将微操作序列进行合理的划分,但并不是每个CPU时钟周期都有微操作。微命令和微操作是一一对应的。

在这里插入图片描述

那么这么复杂的电路是怎么设计出来,并保证其正确性的呢?以下作介绍,简要了解即可!

5.1.1 硬布线控制器的设计分析(略)

在这里插入图片描述

安排微操作时序的原则:

  • 原则一:微操作的先后顺序不得随意更改
  • 原则二:被控对象不同的微操作尽量安排在一个节拍内完成
  • 原则三:占用时间较短的微操作尽量安排在一个节拍内完成,并允许有先后顺序

在这里插入图片描述

5.1.2 具体电路设计(略)

在这里插入图片描述

5.1.3 总结特点

硬布线控制器的特点:

  • 指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统),如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生

5.2 微程序控制器

5.2.1 微程序控制器的基本原理

在这里插入图片描述

在这里插入图片描述

明确关系:

  • 程序由若干指令序列组成
  • 每一种指令对应一个微程序,而每一个微程序又由若干微指令组成,每一个微指令又由若干微操作组成
  • 指令是对程序执行步骤的描述,而微指令则是对指令执行步骤的描述。同时指令是对微指令功能的“封装”
  • 在微程序控制的计算机中,控制部件向执行部件发出的各种控制命令称为微命令,微命令是构成控制序列的最小单位。微命令和微操作是一一对应的

在这里插入图片描述
注意:

  • CMAR别名μPC,即微地址寄存器,接收微地址形成部件送来的微地址
  • CMDR别名μIR,即微指令寄存器,存放从CM中取出的微指令
  • 控制存储器(CM)用只读存储器ROM实现

在这里插入图片描述

一些CPU不提供间址周期和中断周期,但取指周期和执行周期是每个CPU都必须提供的

小结:

在这里插入图片描述

5.2.2 微指令的设计

在这里插入图片描述

在这里插入图片描述

  • 相容性微命令:可以并行完成的微命令
  • 互斥性微命令:不允许并行完成的微命令
  • 水平型微指令是水平上臃肿,即微指令长,微程序短,一条微指令能干更多的事,执行速度快,但编写微程序比较麻烦
  • 垂直型微指令是垂直上臃肿,即微指令短,微程序长,一条微指令只干一件事,执行速度慢,工作效率低,但容易编写微程序
  • 混合型微指令则是上述二者的折中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结:

在这里插入图片描述

5.2.3 微程序控制单元的设计

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结:

在这里插入图片描述

6. 指令流水线

6.1 基本概念 & 性能指标

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
性能指标:

    1. 吞吐率:单位时间内流水线所完成的任务数量,或是输出结果的数量。设n为任务数,处理n个任务所用时间为Tk,则 T P = n T k TP = \frac{n}{T_{k}} TP=Tkn
      其中Tk = (k+n-1)Δt,Δt = 一个时钟周期
    1. 加速比:完成同一批任务,不使用流水线所用时间与使用流水线所用时间之比。则 S = T 0 T k S = \frac{T_{0}}{T_{k}} S=TkT0
      其中T0 = nkΔt,Tk = (k+n-1)Δt
    1. 效率:在时空图上,流水线德效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间同k个流水段所围成的时空区总面积之比。则 E = T 0 k T k E = \frac{T_{0}}{kT_{k}} E=kTkT0
      其中T0 = nkΔt,Tk = (k+n-1)Δt

小结:

在这里插入图片描述

6.2 指令流水线影响因素分类

在这里插入图片描述

6.2.1 影响流水线因素

在这里插入图片描述

小结:

在这里插入图片描述

6.2.2 流水线的分类(略)

在这里插入图片描述

6.2.3 流水线的多发技术(略)

在这里插入图片描述

小结:

在这里插入图片描述

6.3 补充:五段式指令流水线

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

补充 — — load-use数据冒险的处理:

  • 若load指令与其后紧邻的运算类指令存在数据相关问题,则无法通过转发技术来解决,通常把这种情况称为load-use数据冒险。对于下列两条指令,load指令只有在MEM段结束时才能得到主存中的结果,然后送MEM/WB流水段寄存器,在WB段的前半周期才能存入R2的新值,但随后的add指令在EX阶段就要取R2的值,因此,得到的是旧值。
I2		load r2,l2(r1)					# M[(r1) + l2] -> (r2)
I3		add r4,r3,r2					# (r3) + (r2) -> (r4)

解决:最简单做法是由编译器在add指令之前插入一条nop指令,这样在add指令的EX段就可以从MEM/WB流水段寄存器取出load指令的最新结果;最好的办法是在程序编译时进行优化,通过调整指令顺序以避免出现load-use现象

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7. 多处理器的基本概念(简要了解)

7.1 SISD、SIMD、MIMD、向量处理器的基本概念

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

王道书中举了个很好的例子:

  • 假设要将四颗圆石头滚到马路对面,滚动每颗石头平均需花费1分钟。串行处理器会逐一滚动每颗石头,花费四分钟。拥有两个核的多核处理器让两个人滚石头,即每人滚两颗,花费两分钟。向量处理器找到一根长木板,放在四颗石头后面,推动木板即可同时滚动四块石头,理论上只要力量够大,就需要一分钟。多核处理器相当于用于多名工人,而向量处理器拥有一种方法,可以同时对多件事进行相同的操作。

7.2 硬件多线程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.3 总结

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第五章最重要的就是CPU内部数据通路的数据流向,数据通路有单总线方式,多总线方式和专用通路方式,对于单总线方式,需要注意总线的数据冲突,对于专用通路方式需要注意各个部件之间数据流通时的控制信号。控制器重点掌握微程序控制器方式的一些概念,以及和硬布线控制器方式之间的对比。同时指令流水线也很重要。

参考:《王道计算机考研 计算机组成原理》
https://www.bilibili.com/video/BV1ps4y1d73V?t=0.5&p=2

http://www.dtcms.com/a/585410.html

相关文章:

  • 合肥建设学校官方网站网站栏目规划图
  • windows11配置wsl安装ubuntu20.04
  • Go语言中的函数
  • 建瓯市建设局网站国内团购网站做的最好的是
  • XMSRC4392_VC1:4通道192KHz ASRC及768KHz SSRC音频采样率转换器产品介绍
  • 来宾绍兴seo网站托管方案手机怎么弄微信公众号
  • C 标准库 - <ctype.h>
  • Xshell效率实战:SSH管理秘籍(二)
  • 克隆整个macOS系统到新磁盘
  • 详解【限流算法】:令牌桶、漏桶、计算器算法及Java实现
  • Spring Cloud Config
  • 河南卫生基层系统网站建设企业资质查询系统官网
  • 临沂网站改版购买商标去哪个网站
  • 模块化并行清洗工装:实现规模化清洗的增效方案
  • Vue项目实战《尚医通》,首页医院组件的搭建,笔记09
  • 《新概念英语青少年版》Unit1-4知识点
  • ParameterizedType
  • 订单流战争:AI、区块链与市场透明度的终极博弈
  • 阿里内推-11月新出HC
  • 使用讯飞星火 Spark X1-32K 打造本地知识助手
  • 学习笔记7
  • 广西水利工程建设管理网站网站建设项目费用报价
  • Rust 练习册 :Phone Number与电话号码处理
  • CUDA C++编程指南(3.2.5)——分布式共享内存
  • 华为路由器核心技术详解:数据包的智能导航系统
  • Go基础:字符串常用的系统函数及对应案例详解
  • redis查询速度快的原因?
  • 社区类网站开发网站怎么提升流量
  • 注册网站时手机号格式不正确容易做的html5的网站
  • 如何查询哪些服务器 IP 访问了 Google Cloud 的 Vertex AI API