计算机组成原理-CPU-05

111

5.1

111

CPU的功能个基本结构和功能:

功能

  1. 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制:一条指令的功能往往是由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
  3. 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工:对数据进行算数和逻辑运算。
  5. 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。

运算器:

  • 对数据进行加工
    控制器:
  • 协调并控制计算机各种部件执行程序的指令序列,包含取指令,分析指令、执行指令
  • 取指令:自动形成指令地址:自动发出取指令的指令
  • 分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
  • 执行指令:根据分析指令得到的“操作指令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
  • 管理总线及输入输出:处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)

结构

111

运算器

进行算数逻辑运算。

通用寄存器组: 如AX、BX、CX、DX、SP等,用于存放操作数(包含源操作数、目的操作数及中间结果)和各种地址信息。
暂存寄存器: 用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否者会破坏其原有内容(如两个操作数分别来自主存和寄存器R0,结果也存回R0,那么从主存中取来的操作数直接放入暂存器中,就不会破坏前R0的内容)
累加寄存器: 他是一个通用寄存器,用于暂时存放ALU运算结果信息,用于实现加法运算。
程序状态字寄存器: 保留由算数逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP),符号标志(SF)、零标志(ZF)、进位标志(CF)等PSW中的这些位参与并决定微操作的形成。
移位器: 对运算结果进行移位操作。
计数器: 控制乘除运算的操作步数。

控制器

程序计数器: 用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的,因程序中指令(通常)是顺序执行的,所以PC由自增功能。
指令寄存器: 用于保存当前正在执行的那条指令。
指令译码器: 仅对操作码字段进行译码,向控制器提供特定的操作信号。
微操作信号发生器: 根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,产生控制整个计算机系统所需的各种控制信号,其结果有组合逻辑型和存储逻辑型两种。
时序系统: 用于产生各种时序信号,他们都是由统一时钟(CLOCK)分频得到,
存储器地址寄存器: 用于存放所要访问的主存单元的地址。
存储器数据寄存器: 用于存放向主存写入信息或从主存中读取信息。

在这里插入图片描述

5.2

指令周期的数据流

指令周期

指令周期: CPU从主存中每取出并执行一条指令所需的全部时间。

  • 指令周期通常用若干个机器周期来表示,机器周期又叫CPU周期。
  • 一个机器周期又包含若干时钟周期(也称位节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。

在这里插入图片描述

  • 每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
    222

指令周期流程

12121

取址周期
  1. (PC)—> MAR (地址寄存器):当前指令地址送至存储器地址寄存器。
  2. 1(CU发出) —> R(读信号):CU发出控制信号,经控制总线传到主存,这里是读信号。
  3. M(MAR)—> MDR:将地址寄存器所指的内容经数据总线送入数据寄存器 MDR 中。
  4. (MDR) —> IR: 将MDR中的内容(此时是指令)送入指令寄存器IR中。
  5. (PC)+ 1 —> PC:CU发出控制信号,形成下一条指令地址。
间址周期
  1. Ad(IR) —> MAR:将指令的地址码送入MAR。或者Ad(MDR)—> MAR
  2. 1(CU发出) —> R(读信号):CU发出控制信号,经控制总线传到主存,这里是读信号。
  3. M(MAR)—> MDR:将地址寄存器所指的内容经数据总线送入数据寄存器 MDR 中。
  4. MDR —> Ad(IR):将有效位地址送至指令的地址码字段
执行周期
  • 执行周期的任务是根据地址寄存器(IR)中的指令字的操作码和操作数通过ALU操作产生执行结果。
  • 不同指令的执行周期操作不同,因此没有统一的数据流向。
中断周期
  • 暂停当前任务去完成其他任务。
  • 为了能够恢复当前任务,需要保存断点。一般使用堆栈来保存断点。
  1. a —> MAR:将断点放入储存单元。(SP)-1 —> SP,(SP)—>MAR :CU控制将SP减1,修改后的地址送入MAR。
  2. 1 —> W :CU发出控制信号,启动主存做写操作。
  3. (PC)—> MDR:将断点(PC内容)送入MDR。
  4. 向量地址 —> PC:CU控制将中断服务程序的入口地址(由向量地址形成部件产生)送入PC

指令执行方案

111

5.3

内部总线: 指同一部件,如CPU内部连接各种寄存器及运算部件之间的总线。
系统总线: 指同一台计算机系统的各部件,如CPU、内存、通道和各类I/O接口间相互连接的总线。

数据通路1–CPU内部单总线方式

Bus(CPU内部总线)

  1. 寄存器之间的数据传送:
  • 把PC内容送至MAR,实现传送操作的流程及控制信号为:
  • (PC)—> Bus :PCout有效,PC内容送总线
  • Bus —> MAR:MARin有效,总线内容送 MAR
  1. 主存与CPU之间的数据传送:
  • CPU从主存读取指令,实现传送操作的流程及控制信号为:
  • (PC)—> Bus —> MAR,PCont和MARin有效,现行指令地址 —> MAR。
  • 1 —> R :CU发读命令(通过控制总线发出)
  • MEM(MAR)—> MDR :MDRin有效。
  • MDR ----> Bus —> IR : MDRout和IRin有效,现行指令 —> IR
  1. 执行算数或逻辑运算:
  • 一条加法指令,微操作序列及控制信号为:
  • AD(IR) —> Bus —> MAR : MDRout和MARin有效
  • 1 ----> R :CU发出读命令
  • MEM(MAR)—> 数据线 —> MDR :MDRin有效
  • MDR —> Bus —> 暂存器Y :MDRout和 Yin有效,操作数 —> 暂存器Y
  • (ACC)+(暂存器Y)—> 暂存器Z:ACCout和ALUin有效,CU向ALU发送加指令。
  • 暂存器Z —> ACC:Zout和ACCin有效。结果 —> ACC

2323

数据通路2–专用数据通路

22

5.4

控制器的作用:

  1. 主存中取指令, 指出下一条指令在主存中的位置。
  2. 对指令进行译码和测试,产生相应的操作控制信号
  3. 指挥并控制CPU、主存、输入输出设备之间的数据流动。

控制器1–硬布线:(组合逻辑电路+触发器)

微操作控制信号由组合逻辑电路根据当前指令码,状态和时序,即时产生

控制单元的输入:

  1. 指令寄存器(IR):OP(IR)—> CU,控制信号的产生与操作码有关。
  2. 时钟:一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令。
  3. 标志:条件转移指令,根据相应的标志位决定下一操作。
  4. 外来信号:中断请求信号INTR,总线请求信号HRQ
    输出:
  5. CPU内部的控制信号:寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算。
  6. 到控制总线的控制信号:
  • 到存储器:访存控制信号、读命令、写命令
  • 到I/O设备:访问I/O设备的控制信号IO
  • 中断响应信号INTA、总线响应信号HLDA

CPU设计步骤:

  • 分析每个阶段的微操作序列
  • 选择CPU的控制方式
  • 安排微操作时序
  • 电路设计

CPU的控制方式: 产生不同微操作命令序列所用的时序控制方式。

  1. 同步控制方式:
    整个系统所有的控制信号来自一个统一的时钟信号
    优点:电路简单,缺点:运行速度慢。
  2. 异步控制方式:
    控制方式不存在基准时标信号。各个部件按自身固有的速度工作,通过应答方式进行联络。
    优点:速度快,缺点:控制电路复杂。
  3. 联合控制方式
    对各种不同的指令的微操作实行大部分采用同步控制,小部分采用异步控制。

安排微操作时序的原则:

  1. 微操作的先后顺序不得随意更改
  2. 被控对象不同的微操作,经量安排在一个节拍内完成
  3. 占用时间较短的微操作,尽量安排在一个节拍内完成并允许有先后顺序。

控制器2–微程序

事先把微操作控制信号存储在一个专门的存储器中,将一条机器指令编写成一个微程序,这些微程序可以存储到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令

111

相容性微命令: 可以同时产生、共同完成某一些微操作的微命令。
互斥性微命令: 在机器中不允许同时出现的微命令。

  • 一个机器指令对应一个微程序指令,每条指令取指周期的操作是相同的,所以将取指令的操作的微命令统一编成一个微程序,而每条机器指令所对应的具体操作再独立编写一个对应的微程序。

11111
微程序控制器的基本结构:

223
微指令的格式:

  1. 水平型微指令:一次能定义并执行多个并行操作。
    基本格式: 操作控制 + 顺序控制
    优点/缺点: 微程序短,执行速度快 // 微指令长,编写微程序较麻烦。

  2. 垂直型微指令:类似机器指令操作码的方式,由微操作码字段规定微指令功能。
    基本格式: 微操作码(uOP)+ 目的地址(Rd)+ 源地址(Rs)
    优点/缺点: 微指令短、简单、规整、便于编写程序 // 微程序长。执行速度慢,工作效率低。

  3. 混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作。
    优点 微指令短便于编写;微程序也不长,执行速度快。

微指令的编码方式:(控制方式)

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

直接编码(直接控制)方式
111
字段直接编码方式
222
优点/缺点: 可以缩短微指令字长 // 要通过译码电路后再发出微命令,因此比直接编码方式慢。

字段间接编码:
222

微指令的地址形成方式:

  1. 微指令的下地址字段指出:
  • 微指令格式中设置一个下地址字段,由微指令的下地址直接指出后继微指令的地址,也叫断定方式
  1. 根据机器指令的操作码形成:
  • 当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
  1. 增量计数法:(CMAR)+1 ----> CMAR
  2. 分支转移:
  • 转移方式:指明判别条件
  • 转移地址:指转移成功后的去向
    222
  1. 通过测试网络
  2. 由硬件产生微程序入口地址:
  • 第一条微指令地址:由专门硬件产生
  • 中断周期 由硬件产生中断周期微程序首地址。

2334

5.5

指令流水线的概念及性能指标

指令流水的定义:

一条指令的执行过程可以分成多个阶段(或过程)
222

  • 取指:根据PC内容访问主存储器,取出一条指令送到IR中。
  • 分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数。
  • 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。

指令流水执行方式

  1. 顺序执行方式:
    2121
  2. 一次重叠执行方式:
    3455
  3. 二次重叠执行方式:
    4567

流水线的表示方法:

  1. 指令执行过程图:
    222
  2. 时空图:
    235

流水线的性能指标:

  1. 吞吐率:
    单位时间内流水线所完成的任务数量,或输出结果的数量
    2222

  2. 加速比:
    完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
    23456

  3. 效率:
    流水线设备的利用率称为流水线的效率。

在时空图上,流水线的效率定义为:
(完成n个任务占用的时空区有效面积)/(n个任务所用的时间与k个流水段所用的时空区总面积)
23233

影响流水线的因素及分类

机器周期的设置

  • 流水线每一个功能部件后面都有一个缓冲寄存器,或称为锁存器,其作用是保留本流水段的执行结果,提供给下一流水段的使用。
  • 为了方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准

影响流水线的因素

结构相关(资源冲突)

由于多条指令在同一时刻争用同一资源而形成的冲突
解决办法:

  1. 后一相关指令暂停一周期。
  2. 资源重复配置:数据存储器 + 指令存储器
数据相关(数据冲突)

数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况。
解决办法:

  1. 把遇到数据相关的指令及后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入(NOP)两种方法。
  2. 数据旁路技术
  3. 编译优化:通过编译器调整指令顺序来解决数据相关

数据的基本操作:读(R),写(W)
冲突的基本类型:RAW、WAR、WAW

控制相关(控制冲突)

当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。

解决方法:

  1. 尽早判别转移是否发生,尽早生成转移目标地址。
  2. 预取转移成功和不成功两个控制流方向上的目标指令。
  3. 加快和提前形成条件码。
  4. 提高转移方向的猜准率。

流水线的分类:

  1. 部件功能级、处理机级、处理机间级流水线
    345
  2. 单功能流水线和多功能流水线
    2345
  3. 动态流水线和静态流水线:
    222
  4. 线性流水线和非线性流水线:
    789

流水线的多发技术:

  1. 超标量技术:
  • 每个时钟周期内可并发多条独立指令
  • 配置多个功能部件
  • 不能调整指令的执行顺序
  • 通过编译优化技术,把可并行执行的指令搭配起来
    23456
  1. 超流水技术:
  • 在一个时钟周期内再分段
  • 在一个时钟周期内一个功能部件使用多次
  • 不能调整指令的执行顺序
  • 靠编译程序解决优化问题
    356
  1. 超长指令字:
  • 由编译器程序挖掘出指令间潜在的并行性
  • 将多条能并行操作的指令组合成一条
  • 具有多个操作码字段的超长指令字(可达几百位)
    3456789
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值