[计算机组成原理]中央处理机原理+常见题目

中央处理器

CPU的功能和结构

CPU功能

在这里插入图片描述

  1. 指令控制

    完成取指令、分析指令、和执行指令的操作,即程序的顺序控制。

  2. 操作控制

    一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。

  3. 时间控制

    对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号

  4. 数据加工

    对数据进行算数和逻辑运算。

  5. 中断处理

    对计算机运行过程中出现的异常情况和特殊请求进行处理。

运算器的基本结构

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

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

  1. 算数逻辑单元:主要功能是进行算数/逻辑运算

  2. 通用寄存器组:如AX,BX,CX,DX,SP等,用于存放操作数(包括源操作数,目的操作数和中间结果)和各种地址信息。SP是堆栈指针,用于指示栈顶的地址。

  3. 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有的内容。

    两个操作数分别来自主存和R0,最后结果存回R0,那么从主存中取来的操作数直接放入暂存寄存器,就不会破坏运算前R0的内容

  4. 累加寄存器:是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。

  5. 程序状态字寄存器:保留由算数逻辑运算指令或测试指令的结果而建立的各种状态信息。如溢出标志(OP),符号标志(SF),零标志(ZF),进位标志(CF)等。

    PSW中这些参与并决定微操作的形成

  6. 移位器:对运算结果进行移位运算。

  7. 计数器:控制乘除运算的操作步数。

控制器基本结构

  1. 程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行,所以PC有自增功能。

  2. 指令寄存器:用于保存当前正在执行党的指令。

  3. 指令译码器:仅对操作码字段进行编译,向控制器提供特定的操作信号。

  4. 微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型。

  5. 时序系统:用于产生各种时序信号,他们都是由同一时钟(CLOCK)分频得到。

  6. 存储器地址寄存器:用于存放要访问的主存单元的地址

  7. 存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息。

在这里插入图片描述

CPU由ALU,CU,寄存器,中断系统构成
在这里插入图片描述

PPT

  1. 指令部件

    • 程序计数器PC

      由于PC可以指向主存中任一单元的地址,因此它的位数应能表示主存的最大容量并与主存地址寄存器MAR的位数相同。

      在CPU中可以单独设置程序计数器,也可以指定通用寄存器中的某一个作为PC使用。 程序顺序执行时的PC增量可以通过PC本身的计数逻辑实现,也可以由运算器的ALU实现。不同机器,实现方法可有所不同。

    • 指令寄存器IR

      指令寄存器用于存放当前正在执行的指令。

    • 指令译码器ID

    • 地址形成部件

  2. 时序控制部件

    • 时序控制部件

      用于产生一系列时序信号,为各个微操作定时,以保证各个微操作的执行顺序。
      从宏观(即程序控制)上看,计算机的解题过程实质上是指令序列即一条条指令的执行过程。
      从微观(即指令控制)上看,计算机的解题过程是微操作序列即一个个(或一组组)微操作的执行过程。

    • 微操作:机器最简单的基本操作

      一条指令的执行过程可以分解为若干微操作。这些微操作有着严格的时间顺序要求,不可随意颠倒。

    • 脉冲源

    • 启停电路

    • 时序信号发生器

  3. 微操作控制信号的形成部件

    根据指令部件提供的操作控制电位、时序部件所提供的各种时序信号以及有关的状态条件,产生机器所需要的各种微操作控制信号。

    不同的指令,完成不同的功能,需要不同的微操作控制信号序列。每条指令都有自己对应的微操作序列。控制器必须根据不同的指令,在不同的时间,产生并发出不同的微操作控制信号,控制有关部件协调工作,完成指令所规定的任务。

  4. 中断控制逻辑(中断机构)

    用于实现异常情况和特殊请求的处理

  5. 程序状态字寄存器PSW

  6. 控制台

总结

*管理多条通路:*多路选择器MUX与三态门

*用户可见的寄存器:*通用寄存器组,程序状态字寄存器PSW,程序计数器PC

*用户不可见的寄存器:*MAR,MDR,IR,暂存寄存器

指令执行过程

指令周期

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

指令周期通常由若干机器周期来表示,机器周期又叫CPU周期

一个指令周期由多个机器周期完成。

在这里插入图片描述

指令周期>机器周期>时钟周期

时钟周期(节拍,T周期,或CPU时钟周期,它是CPU操作的最基本单位)
在这里插入图片描述

每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
在这里插入图片描述

指令周期流程

在这里插入图片描述

*提供触发器:*用于判断当前属于指令周期的哪个阶段
在这里插入图片描述

四个周期都有CPU访存操作,只是访存目的不同。

取值周期是为了取指令,间指周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存断点。

取指周期

功能:

根据指令地址(由PC提供),从存储器中取出所要执行的指令到IR中

操作流程

  1. 当前指令地址送至存储器地址寄存器,记作:(PC)->MAR

  2. CU发出控制信号,经控制总线传到主存,这里是读信号。记作:1->R

  3. 将MAR所指主存的内容经数据总线送入MDR,记作:M(MAR)->MDR

  4. 将MDR中的内容(此时为指令)送入IR,记作:(MDR)-> IR

  5. CU发出控制信号,形成下一条指令地址,记作:(PC)+1->PC
    在这里插入图片描述

间指周期

功能:

  1. 对取出的指令进行译码分析。确定指令应完成的操作,产生相应操作的控制电位,参与形成该指令功能所需要的全部控制命令(微操作控制信号)。
  2. 根据寻址方式的分析和指令功能要求,形成操作数的有效地址,并按此地址取出操作数据(运算型指令)或形成转移地址(转移类指令),以实现程序转移。
  1. 将指令的形式地址送入MAR,记作:Ad(IR)->MAR 或Ad(MDR)->MAR

  2. CU发出控制信号,启动主存做读操作,记作:1->R

  3. 将MAR所指主存中的内容经数据总线送入MDR,记作:M(MAR)->MDR

  4. 将有效地址送到指令的地址码字段,记作:MDR->Ad(IR)一般不写

在这里插入图片描述

执行周期

根据指令字的操作码和操作数进行相应的操作。

根据指令分析所产生的操作控制信号和形成的有效地址,按一定的算法形成指令操作控制序列,控制有关部件完成指令规定的功能。
一条指令执行结束,若没有异常情况和特殊请求,则按程序顺序,再去取出并执行下一条指令。

执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。

中断周期

保存断点,送中断向量,处理中断请求。

中断:暂停当前任务去完成其他任务。

为了能够恢复当前任务,需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶指针,假设SP指向栈顶元素,进栈操作是先修改指针,后存入数据

  1. CU控制将SP-1,修改后的地址送入MAR 主存中选地址,是从高地址向低地址进行操作

    记作:(SP)-1,(SP)->MAR

    本质上将断点存入某个存储单元,假设其地址为a,故可记作:a->MAR

  2. CU发出控制信号,启动主存做写操作,记作:1->W

  3. 将断点(PC内容)送入MDR,记作:(PC)->MDR

  4. CU控制将中断服务程序的入口地址(由向量地址形成部件产生)送入PC

    记作:向量地址->PC

在这里插入图片描述

指令执行方案

一个指令周期要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。

在这里插入图片描述

方案1:单指令周期

对所有指令都选用相同的执行时间来完成。统一成最长指令的时间

指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。

特点

  1. 对于本可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
  2. 设计简单。

在这里插入图片描述

方案2:多指令周期

对不同类型的指令选用不同的执行步骤来完成。

指令之间串行:可选用不同个数的时钟周期来完成不同指令的执行过程。

需要更加复杂的硬件设计。

在这里插入图片描述

方案3:流水线

一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。

数据通路的能和基本结构(单总线)

指令周期的数据流

数据通路:数据在功能部件之间传送的路径

CPU内部的数据通路通常是指运算器与寄存器之间的信息传输通道。

需要弄明白:信息从哪里开始,中间经过哪些部件,最后传到哪里。

控制方法:由控制部件产生的控制信号建立数据通路。

数据通路基本结构

  1. CPU内部单总线方式 有一个公共通路
  2. CPU内部多总线方式 有多个公共通路
  3. 专用数据通路方式 在需要交流的部件之间有连线

单总线方式分析

在这里插入图片描述

*内部总线:*是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线

*系统总线:*是指同一台计算机系统的各部件,如内存,CPU,通道和各类I/O接口间互相连接的总线。
在这里插入图片描述
在这里插入图片描述

数据通路分类
  1. 寄存器之间数据传送

    比如把PC内容送至MAR,实现传送操作的流程及控制信号为:

    (PC)->Bus PCout有效,PC内容送总线

    BUS->MAR MARin有效,总线内容送MAR

在这里插入图片描述

  1. 主存与CPU之间的数据传送

    比如CPU从主存读取指令,实现传送操作的流程及控制信号为:

    (PC)->BUS->MAR PCout和MARin有效,现行指令地址->MAR

    1->R CU发读命令(通过控制总线发出,图中未画出)

    M(MAR)->MDR MDRin有效

    MDR->BUS->IR

在这里插入图片描述

  1. 执行算数或逻辑运算

    比如一条加法指令,微操作序列及控制信号为:

    Ad(IR)->BUS->MAR MDRout和MARin有效 MDR和IR存放的都为当前地址

    M(MAR)->数据线->MDR MDRin有效

    (MDR)->BUS->Y MDRout和Yin有效,操作数->Y

    (ACC)+(Y)->Z ACCout和ALUin有效。CU向ALU发送加命令

    Z->ACC Zout和ACCin有效,结果->ACC

在这里插入图片描述

例题

加()的为目的操作数

在这里插入图片描述

取指周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KMitlVhh-1597109022538)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200720221745376.png)]

PC+1 归到第二步原因:自增不干扰其他指令执行

间址周期

在这里插入图片描述

执行周期

在这里插入图片描述

ALU在单总线下需要暂存器

数据通路的功能和基本机构(专用通路)

在这里插入图片描述

以取指周期为例分析

在这里插入图片描述

例题

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

控制器的功能和工作原理

在这里插入图片描述

控制器的主要功能

控制器是计算机系统的指挥中心,控制器的主要功能有:

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

控制单元的输入和输出

  1. 输入

    • 指令寄存器 OP®->CU 控制信号的产生和操作码有关

    • 时钟 一个时钟脉冲发一个操作命令或一组需要同时执行的操作,命令

    • 标志 如条件转移指令,根据相应的标志位决定下一步操作

    • 外来信号 如:中断请求信号INTR,总线请求信号HRQ

在这里插入图片描述

  1. 输出

    • CPU内部的控制信号 如:寄存器之间的数据传输,PC的修改,控制

    • 到控制总线的控制信号 到存储器:访存控制信号MREQ,读命令RD,写命令WR

      ​ 到I/O设备: 访问I/O设备的控制信号 IO

      ​ 中断响应信号INTA,总线响应信号HLDA

硬布线控制器设计

组合逻辑+触发器

机器周期:机器周期可看作所有指令执行过程中的一个基准时间。

​ 通常以存取周期作为基准时间,即机器周期。在存储字长等于指令字长前提下,取指周期也可看作机器 周期。

在这里插入图片描述

设计步骤
  1. 分析每个阶段的微操作序列
  2. 选择CPU的控制方式
  3. 安排微操作时序
  4. 电路设计
CPU的控制方式

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

  1. 同步控制方式

    整个系统所有的控制信号均来自一个统一的时钟信号

    通常以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令

    特点:

    1. 控制电路简单
    2. 运行速度慢
      在这里插入图片描述
  2. 异步控制方式

不存在基准时标信号

各部件按自身固有的速度工作,通过应答方式进行联络

特点:

  1. 运行速度快

  2. 控制电路比较复杂

  3. 联合控制方式

对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

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

在这里插入图片描述

间指周期

在这里插入图片描述

执行周期

在这里插入图片描述

中断周期

中断周期完成的任务:保存断点,关中断,形成入口地址

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

电路设计(几乎不考)

设计步骤:

  1. 列出操作时间表
  2. 写出微操作命令的最简表达式
  3. 画出逻辑图
取指周期

在这里插入图片描述

间指周期

在这里插入图片描述

执行周期

在这里插入图片描述

*微操作:*式子表示出的过程

*微操作命令:*产生微操作需要的控制信号

微操作信号综合

在这里插入图片描述

画电路

在这里插入图片描述

微程序控制器设计

用程序设计的思想方法来组织操作控制逻辑,用规整的存储逻辑代替繁杂的组合逻辑。

事先微程序控制信号存储在一个专门的存储器(控制存储器)中,

将每条机器指令编写成一个微程序,这些微程序可以存到一个控制寄存器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。

基本思想

微操作: 是微命令从执行过程。

微操作命令: 微命令 控制过程完成的信号。

*相容性微命令:*可以同时产生、共同完成某一些微操作的微命令。

*互斥性微命令:*在机器中不允许同时出现的微命令。

一条机器指令对应一个微程序

多个微操作命令组成微指令,多个微指令构成微程序,组成机器指令

在这里插入图片描述

取值周期一般统一成一个微程序,而每条机器指令所对应的具体操作再单独编写一个对应的微程序
在这里插入图片描述

基本结构

CM:用于存放各指令对应的微程序,控制存储器可用只读存储器ROM构成。

地址译码:将地址码转化为存储单元控制信号

CMAR:微地址寄存器,接收微地址形成部件送来的微地址,为在CM中读取微指令做准备。

CMDR:用于存放从CM中取出的微指令,它的位数同微指令字长相等。

微地址形成部件:产生初始微地址和后继微地址,以保证微指令的连续执行

在这里插入图片描述

CM控制存储器

在这里插入图片描述

默认取指周期是公共的,故若某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个

间址和执行,不一定是公共的,故如果这台计算机指令系统中有n条机器指令,则CM中微程序的个数为n+3个

微指令格式
  1. 水平型微指令 一次能定义并执行多个并行微指令

在这里插入图片描述

  • 特点

    微程序短,执行速度快;

    微指令长,编写微程序比较麻烦。

  1. 垂直型微指令 类似于机器指令操作码的方式,由操作码字段规定微指令的功能

在这里插入图片描述

  • 特点

    微指令短,简单,规整,便于编写微程序;

    微程序长,执行速度慢,工作效率低。

  1. 混合型微指令

    在垂直型的基础上增加一些不太复杂的并行操作。

    • 特点

      微指令短,仍便于编写;

      微程序不长,执行速度加快。

微指令编码方式

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

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

在微指令的操作控制字段中,每一位代表一个微操作命令

某位为1表示该控制信号有效

  • 特点
    1. 简单,直观,执行速度快,操作并行性好。
    2. 微指令字长过长,n个微命令就要求微指令操作字段有n为,造成控存容量极大。

在这里插入图片描述

字段直接编码方式

将微指令的控制字段分成若干,每段经过译码后发出控制信号

微指令字段分段要求:

  1. 互斥性微命令分在同一段相容性微命令分在不同段内

  2. 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间

  3. 一般每段要流出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

在这里插入图片描述

特点

  1. 可以缩短微指令字长
  2. 要通过译码电路后再发出微命令,因此比直接编码方式慢。

例题
在这里插入图片描述

字段间接编码方式

一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。

在这里插入图片描述

特点

  1. 可进一步缩短微指令字长。
  2. 削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
微指令地址形成方式
微指令的下地址字段指出

微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,又称为断定方式

在这里插入图片描述

根据机器指令的操作码形成

当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成

增量计数法

在这里插入图片描述

分支转移

转移方式:指明判别条件;转移地址:指明转移成功后的去向。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7UrBZjo-1597109022560)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200721225901030.png)]

通过测试网络
由硬件产生微程序入口地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DjwCnOV9-1597109022561)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200721225956621.png)]

微程序概念总结

在这里插入图片描述

  1. 微命令与微操作

    微命令是若干微指令的集合

    微操作是执行微命令的执行过程

  2. 微指令与微周期

    微指令是若干微命令的集合

    微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需要的时间

  3. 主存储器与控制存储器

    主存储器用于存放程序和数据,在CPU外部,用RAM实现;

    控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。

  4. 程序与微程序

    程序是指令的有序集合,用于完成特定的功能;

    微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。

微程序控制单元设计(不重要)

设计步骤

  1. 分析每个阶段的微操作序列

  2. 写出对应机器指令的微操作命令以及节拍安排
    在这里插入图片描述

  3. 确定微指令格式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mVDybs5S-1597109022562)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200721231427849.png)]

  4. 编写微指令码点

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TgHbjwBi-1597109022563)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200721231440169.png)]

取指周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NRy2zJJw-1597109022564)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200721231305075.png)]

微程序设计分类
  1. 静态微程序设计和动态微程序设计

    静态 微程序无需改变,采用 ROM

    动态 通过改变微指令微程序 改变机器指令

    ​ 有利于仿真,采用EPROM

  2. 毫微程序

    毫微程序设计的基本概念

    微程序设计微程序解释机器指令

    毫微程序设计毫微程序结束微程序

    毫微指令与微指令 的关系好比 微指令与机器指令的关系

微程序控制方式特点
  1. 用规整的存储逻辑代替了复杂的、不规整的硬连逻辑,简化了硬件结构,有利于设计自动化。

  2. 适宜作系列机的控制器,可以用比较简单的硬件结构实现较复杂的指令系统。

    对组合逻辑控制器来说,随着指令系统功能的增加,其价格将迅速增加,控制逻辑也变得复杂。微程序控制的计算机在同一系列内,功能的增加主要表现为微程序的增加,即控制存储器容量的增加,其他硬件增加不多,所以性能/价格比相对较高。

  3. 易于修改和扩充,灵活性、通用性强。在数据通路结构不变的前提下,可以通过修改微程序,修改指令功能或增加新的指令。

  4. 可靠性高,易于诊断与维护。这是因为微程序控制结构简单、规整,易于采用诊断技术。

  5. 速度慢,因为增加了从控制存储器中读取微指令的时间。

  6. 由于一条微指令的操作比一条机器指令所能定义的操作简单,因而可能会降低并行操作能力,影响执行效率。

硬布线与微程序的比较

在这里插入图片描述

指令流水线

基本概念

定义

一条指令的执行过程可分为多个阶段(或过程)。根据计算机的不同,具体分法也不同。

流水线稳定工作后,每个时钟周期都有一条指令的执行结果从流水线流出。

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

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

特点:每个阶段用到的硬件不一样

执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
在这里插入图片描述

几种执行方式

设取指,分析,执行3个阶段的时间都相等,用t表示,按以下几种执行方式

  1. 顺序执行方式

    c传统冯·诺依曼采用顺序执行方式,又称串行执行方式。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5lQZ7Dkf-1597109022566)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200722201603747.png)]

    总耗时T=nX3t = 3nt

    优点:控制简单,硬件代价小。

    缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。

  2. 一次重叠执行方式

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OC1OoABU-1597109022567)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200722202114017.png)]

    总耗时T=3t+(n-1)X2t = (1+2n)t

    优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。

    缺点:需要付出硬件上较大的开销,控制过程也比顺序执行复杂

  3. 二次重叠方式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7hBgWtH-1597109022567)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200722203142070.png)]

    总耗时 T = 3t+(n-1)Xt = (2+n)t

    注:可以把每条指令的执行过程分为4-5个阶段,5个阶段比较常见

流水线表示方法
  1. 指令执行过程图

    主要用于分析指令执行过程以及影响流水线的因素
    在这里插入图片描述

  2. 时空图
    在这里插入图片描述

流水线的性能指标

  1. 吞吐率

    吞吐率是指在单位时间内流水线所完成的任务数量,或是输出结果的数量

    设任务数为m;处理完成那个任务所用的时间为Tk

    在这里插入图片描述

    连续输入的任务n趋向无穷时,得最大吞吐率TPmax = 1/t

  2. 加速比

    完成同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
    在这里插入图片描述

  3. 效率

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

    在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积n个任务所用的时间与k个流水段所围成的时空区总面积之比。
    在这里插入图片描述

流水线影响因素

立项情况:

各阶段花费时间相同;

每个阶段结束后能立即进入下一个阶段

机器周期的设置

在这里插入图片描述

各个部件实际耗时都不同,为方便流水线设计,将每个阶段的耗时都取成一样,以最长耗时为准。即此处应将机器周期设置为100ns。

流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。

影响因素
  1. 结构相关(资源冲突)

    多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。硬件不够用

在这里插入图片描述

解决方法:

  1. 后一相关指令暂停一周期

  2. 资源重复配置

    ​ 数据存储器+指令存储器

  3. 数据相关(数据冲突)

    数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令情况,则这两条指令即数据相关。需要的数据有变动或未产生

    数据的基本操作:读®,写(W)

    冲突基本类型:RAW,WAR,WAW

    RAW

    按序发射,按序完成时,只可能出现RAW相关。
    在这里插入图片描述

    WAR

    乱序发射,编写程序的时候希望l1在l2前完成,

    但优化手段导致l2在l1前发射。
    在这里插入图片描述

    WAW

    存在多功能部件时,后一条指令可能比前一条指令先完成。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZF0wvMH-1597109022573)(D:\StudyData\Notes[其他]计算机通用知识\pics\image-20200722211756751.png)]
    在这里插入图片描述

    解决方法:

    1. 把遇到数据相关的指令及其后续指令都暂停一到几个时钟周期,知道数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入"NOP"两种方法。

    2. 数据旁路技术。数据产生之前调整到前面位置上

    3. 编译优化:通过编译器调整指令顺序来解决数据相关。

在这里插入图片描述

  1. 控制相关(控制冲突)

    当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。遇到转移指令
    在这里插入图片描述

    解决方法:

    1. 尽早判别转移是否发生,尽早生成转移目标指令

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

    3. 加快和提前形成条件码

    4. 提高转移方向的猜准率

例题

数据相关
在这里插入图片描述

分类

  1. 部件功能级别,处理机级和处理机间流水线

    根据流水线使用的级别不同

    部件功能级:将复杂的算数逻辑运算组成流水线,求浮点数变成对求阶差,对阶,尾数相加和规格化。

    处理机级:把一条指令解释分成多个子过程,取指,译码,执行,访存以及写回

    处理机间:

  2. 单流水线和多功能流水线

    按流水线可以完成的功能划分

    单功能流水线指只能实现一种固定的专门功能的流水线。

    多功能流水线指通过各段间的不太连接方式可以同时或不同时地实现多种功能的流水线。

  3. 动态流水线和静态流水线

    按同一时间内各段之间的连接方式

    静态流水线:同一时间内各段只能按同一种功能的连接方式工作

    动态流水线:同一时间内,某些段正在实现某种复杂运算时,另一些段正在进行另一种运算。提高流水线效率,但使流水线控制变得复杂。

  4. 线性流水线和非线性流水线

    按流水线的各个功能段之间是否有反馈信号

    线性流水线:从输入到输出,每个功能段只允许经过一次,不存在反馈回路

    非线性流水线:存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性非递归的运算。

流水线的多发技术

  1. 超标量技术

    每个时钟周期内可并发多条独立指令

    要配置多个功能部件

    不能调整指令的执行顺序

    通过编译优化技术,把可并行执行的指令搭配起来编译器做

在这里插入图片描述

  1. 超流水技术

    在个时钟周期内再分段(3段)

    在一个时钟周期内 一个功能部件使用多次(3次)

在这里插入图片描述

不能调整指令的执行顺序

靠编译程序优化问题

速度变为普通流水线的3倍

  1. 超长指令字

    编译程序挖掘出指令间潜在并行性

    多条并行操作的指令组合成一条

    具有多个操作码字段的超长指令字(几百位)

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fire-From

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值