5-4中央处理器-控制器的功能和工作原理

Posted 卡__卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5-4中央处理器-控制器的功能和工作原理相关的知识,希望对你有一定的参考价值。

文章目录

一.控制器的结构和功能

1.结构
(1)运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
(2)输入设备和输出设备通过接口电路与总线相连接
(3)内存储器、输入设备和输出设备从地址总线接收地址信息,控制总线得到控制信号,通过数据总线与其他部件传送数据
(4)控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,向系统中的部件提供它们运行所需要的控制信号


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

根据产生微操作信号的方式不同,存在硬布线控制器和微程序控制器

二.硬布线控制器

根据指令操作码、目前的机器周期(取址、间址、执行、中断)、节拍信号、机器状态条件(标志)(如BAN指令中的A0),即可确定现在这个节拍下应该发出哪些“微命令”。硬布线控制器由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器。

特点:
①指令越多,设计和实现就越复杂,因此一般用于RISC
回顾:精简指令系统计算机RISC让复杂的指令功能由频度高的简单指令的组合来实现,减少了指令种类、简化了指令功能;采用优化的编译程序,生成代码较为高效;指令长度固定、指令格式种类少,寻址方式种类少
②如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难
③由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生

1.硬布线控制单元图

指令的操作码是决定控制单元发出不同操作命令(控制信号)的关键。为了简化控制单元的逻辑,将指令的操作码译码和节拍发生器从CU分离出来,便可得到简化的控制单元

CU的输入信号来源
(1)经指令译码器译码产生的指令信息。现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,因此指令的操作码字段是控制单元的输入信号,它与时钟配合产生不同的控制信号。
(2)时序系统产生的机器周期信号和节拍信号。为了使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,即一个时钟脉冲使控制单元发送一个操作命令,或发送一组需要同时执行的操作命令。
(3)来自执行单元的反馈信息(标志)。控制单元有时需依赖CPU当前所处的状态产生控制信号,如来自PSW、ACC的符号位等

2.微操作命令分析

控制单元具有发出各种操作命令(控制信号)序列的功能。这些命令与指令有关,而且必须按一定次序发出,才能使机器有序地工作。执行程序的过程中,对于不同的指令,控制单元需发出各种不同的微操作命令。一条指令分为3个工作周期:取指周期、间址周期和执行周期。

3.CPU的控制方式

控制单元控制一条指令执行的过程,实质上是依次执行一个确定的微操作序列的过程。由于不同指令所对应的微操作数及复杂程度不同,因此每条指令和每个微操作数所需的执行时间也不同。主要有以下3种控制方式

(1)同步控制方式

系统有一个统一的时钟,所有的控制信号均来自这个统一的时钟信号。通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令。实现简单,速度慢。

(2)异步控制方式

各部件按自身固有的速度工作,通过应答方式进行联络。运行速度快,控制电路复杂

(3)联合控制方式

联合控制方式是介于同步、异步之间的一种折中。对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法

4.硬布线控制单元的设计步骤

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

即取值、间址、执行、中断四个阶段

①取址(含分析)
PC→MAR
1→R (读命令)
M(MAR)→MDR
(MDR)→IR
OP(IR)→CU
(PC)+1→PC

②间址周期
Ad(IR)→MAR
1→R
M(MAR)→MDR
MDR→Ad(IR)

③执行周期


访存指令可能有间址周期


对于BAN X
ACC为负,A0为1,Ad(IR)→PC
ACC为正,A0为0,PC不变

(2)选择CPU的控制方式

即同步、异步、联合控制方式。确定采用定长机器周期还是不定长机器周期,每个机器周期安排几个节拍。

(3)安排微操作时序

安排原则:
①微操作的先后顺序不得随意更改
②被控对象不同的微操作尽量安排在一个节拍内完成(防止违背“空闲让进”,如(PC)→MAR和1→R操作对象分别为寄存器和主存,二者可同时进行)
③占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序(CPU内部寄存器各部件数据流通很快。如MDR→IR和OP(IR)→ID可以放在一个节拍)

(4)电路设计

确定每个微操作命令的逻辑表达式,并用电路实现。

操作步骤:
①列出操作时间表
FE取址、IND间址、EX执行、INT中断
标注1表示可能或一定用到,未标注表示一定用不到

可能存在多级间接寻址,当IND=1,即IND反=0时表示完成了间接寻址,可进入执行阶段


②写出微操作命令的最简表达式
如:M(MAR)→MDR

③画出逻辑图

三.微程序控制器

(一)基本概念

微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。

对应关系
程序=n机器指令
机器指令=微程序
微程序=n微指令
微指令=n微命令=n微操作

1.基本术语

(1)微命令与微操作
微操作:一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。

微命令:在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。微命令有相容性和互斥性之分。相容性微命令是指那些可以同时产生、共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。相容和互斥都是相对的,一个微命令可以和一些微命令相容,和另一些微命令互斥。

微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。在组合逻辑控制器(硬布线控制器)中也存在微命令与微操作这两个概念

(2)微指令与微周期
微指令是若干微命令的集合。存放微指令的控制存储器的单元地址称为微地址。一条微指令通常至少包含两大部分信息:①操作控制字段/微操作码字段:用于产生某一步操作所需的各种操作控制信号。②顺序控制字段/微地址码字段,用于控制产生下一条要执行的微指令地址

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

(3)主存存储器与控制存储器
主存储器用于存放程序和数据,在CPU外部,用RAM实现

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

(4)程序和微程序
程序是指令的有序集合,用于完成特定的功能。程序最终由机器指令组成,是由软件设计人员事先编制好并存放在主存或辅存中的。

微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。微程序实是由计算机设计者事先编制好并存放在控制存储器中的,对程序员透明。

(5)地址寄存器与微地址寄存器
①地址寄存器MAR:用于存放主存的读/写地址
②微地址寄存器CMAR:用于存放控制存储器的读/写微指令的地址

(6)指令寄存器与微指令寄存器
①指令寄存器IR:用于存放从主存中读出的指令
②微指令寄存器(CMDR/μIR):用于存放从控制存储器中读出的微指令

2.微程序控制器的基本组成

(1)控制存储器CM
微程序控制器的核心部件存放各指令对应的微程序,由ROM构成
(2)微指令寄存器CMDR/μIR
存放从CM中取出的微指令,它的位数与微指令字长相等
(3)微地址形成部件
用于产生初始微地址和后继微地址,以保证微指令的连续执行
(4)微地址寄存器CMAR/μPC
接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。

3.微程序控制器的工作过程

把指令的操作码OP送微地址形成部件,用来确定该指令对应的微指令序列的起始地址。根据顺序逻辑的标志等信息确定接下来要执行微指令的存放地址,将微指令地址放入CMAR。经过地址译码器的译码,选中CMAR指向的微指令,从CM中读出相应的微指令送入CMDR

一条微指令需要包含(控制信号,下一条指令的地址)

执行CMDR中的微指令:硬件电路根据微指令的控制码部分向CPU内部的其他部件或系统总线发出控制信号(如MARin

执行完该条微指令后,将下一条指令的地址的信息送顺序逻辑,顺序逻辑结合标志等信息,确定下一条要执行微指令的地址,将下一条微指令的地址送CMAR…

一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此可将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出并送至指令寄存器。此外,也可编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等共用的微程序数。通常,若指令系统中具有n种机器指令,则控制存储器中的微程序(段)数至少是n+1(1为公共的取指微程序,间址和中断可有可无)

(二)微指令的设计

1.微指令编码/控制方式

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

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

直接编码法无须进行译码,微指令的微命令字段中每位都代表一个微命令

优点:简单、直观,执行速度快,操作并行性好
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大

设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0即可。每个微命令对应并控制数据通路中的一个微操作,如第一位表示(PC)→MAR

(2)字段直接编码方式

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

从属于一个段的微操作是互斥的,因此将互斥性微命令组合在同一字段中,相容性微命令组合在不同字段中。

每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关。

每个小段包含的信息位不能太多。一般每个小段还要留出一个状态,表示本字段不发出任何微命令。


[例] 某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?

解:第1个互斥类有7个微命令,为留出1个状态表示本字段不发出任何微命令,所以需要8种不同的状态,即3个二进制位
同样3→2,12→4,5→3,6→3
故操作控制字段的总位数=3+2+4+3+3=15位

若采用直接编码法控制字段共需要33位,因此字段直接编码法可以缩短微指令字长。但字段直接编码要通过译码电路后再发出微命令,因此比直接编码方式慢。

(3)字段间接编码方式/隐式编码

一个字段的某些微命令由另一个字段中的某些微命令来解释,即可能经过两次译码。

优点:可进一步缩短微指令字长
缺点:因削弱了微指令的并行控制能力,因此通常作为字段直接编码方式的一种辅助手段。

2.微指令的地址形成方式

如何确定下一条微指令的存放地址(即下址/后继微地址)

(1)直接由微指令的下地址字段指出,即断定方式。微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址

(2)根据机器指令的操作码形成。机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成
(3)增量计数器法,即(CMAR)+1→CMAR,适用于后继微指令的地址连续的情况
(4)根据各种标志决定微指令分支转移的地址

(5) 通过测试网络形成,即测试逻辑

(6)由硬件直接产生微程序入口地址。如第一条微指令的地址由硬件给出,由硬件产生中断周期微程序首地址

[例] 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是多少位?

解:32条指令,每条指令对应的微程序平均由4条微指令组成,因此一共有32×4=128条微指令。加上公共的取指令微程序包含的2条微指令,即总共需要存储130条微指令,下地址字段的位数至少为8位

3.微指令的格式

(1)水平型微指令(“胖”)

一条水平型微指令定义并执行多个并行的基本操作
优点:微程序短,执行速度快
缺点:微指令长,编写微程序较麻烦

从编码方式看,直接编码、字段直接编码、字段间接编码和混合编码都属于水平型微指令。指令字中的一位对应一个控制信号,有输出时为1,否则为0。

(2)垂直型微指令(“瘦”)

一条垂直型微指令只能定义并执行一种基本操作
优点:微指令短、简单、规整,便于编写微程序
缺点:微程序长,执行速度慢,工作效率低


采用类似机器指令操作码的方式,在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。

(3)混合型微指令

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

水平型指令和垂直型微指令比较:
①水平型微指令并行操作能力强、效率高、灵活性强;垂直型微指令则较差
②水平型微指令执行一条指令的时间短;垂直型微指令执行的世界长
③由水平型微指令解释指令的微程序,微指令字较长但微程序短;垂直型微指令则与之相反,其微指令字较短而微程序长
④水平型微指令用户难以掌握,而垂直型微指令与指令相似,相对容易掌握

(三)微程序控制单元的设计

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

第一条要执行的微指令地址由硬件给出,当前执行微指令的下址字段指明下一条要执行微指令的地址。硬件电路根据微指令的控制码部分向CPU内部的其他部件或系统总线发出控制信号(如MARin)。

执行完该条微指令后,将下一条指令的地址的信息送顺序逻辑,顺序逻辑结合标志等信息,确定下一条要执行微指令的地址,将下一条微指令的地址送CMAR。即Ad(CMDR)→CMAR

取值周期完成后进入执行周期。为确定如何转入到下一个机器周期,根据当前指令的操作码确定指令对应微程序的起始地址。即OP(IR)→微地址形成部件→CMAR

即:指令a执行完,将下地址放CMAR。指令b执行完后同样。指令c完成后,把微地址形成部件所指明的当前指令执行周期对应的首地址放入CMAR



显然,微程序控制器的速度比硬布线控制器的速度慢

2.写出对应机器指令的微操作命令及节拍安排

(1)写出每个周期所需要的微操作(与硬布线相同)
(2)与硬布线不同
①取指周期
a.每条微指令执行结束后,都需要Ad(CMDR)→CMAR
b.在取指周期的最后一条微指令后,要根据指令操作码确定其执行周期的微程序首地址。即OP(IR)→微地址形成部件→CMAR
②执行周期
a.每条微指令执行结束后,都需要Ad(CMDR)→CMAR
b.在执行周期的最后一条微指令后,会根据当前微指令的下地址找到下一个待执行的微指令

3.确定微指令格式

根据微操作个数决定采用何种编码方式(直接编码、字段直接编码、字段间接编码),以确定微指令的操作控制字段的位数。根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

4.编写微指令码点

根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点(1还是0)。

(四)微程序设计分类

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

(1)静态微程序设计:微程序无法改变,采用ROM
(2)动态微程序设计:通过改变微指令和微程序改变机器指令。有利于仿真,采用EPROM

回顾:可擦除可编程只读存储器EPROM(Erasable Programmable Read-Only Memory)可写入,可多次改写。修改时要先擦除全部内容,然后再编程。分为紫外线擦除UVEPROM(可擦除全部信息)和电擦除EEPROM(可擦除特定的字)。EPROM编程次数有限,写入时间过长,无法取代RAM

2.毫微程序设计

微程序设计用微程序解释机器指令,毫微程序设计用毫微程序解释微程序

(五)硬布线与微程序比较

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

1)CPU功能和基本结构

1. cpu功能

CPU由运算器控制器构成

  1. 运算器 对数据进行加工
  2. 控制器:协调控制计算机各部件执行程序的指令序列(取指令,分析指令,执行指令)

CPU具体功能:

  1. 指令控制
  2. 操作控制
  3. 时间控制
  4. 数据加工
  5. 中断处理

2. cpu基本结构

CPU由运算器控制器构成
运算器:

  1. 算数逻辑单元(ALU):进行算数/逻辑运算
  2. 暂存寄存器(程序员不可见):暂存主存读来的数据,该数据不能存放在通用寄存器中,否则会破环原有内容
  3. 累加寄存器(ACC):通用寄存器,用来暂存ALU运算的结果信息,可作为加法运算的一个输入端
  4. 通用寄存器组(AX,BX,CX,DX,SP... ...):存放操作数及各种地址信息
  5. 程序状态字寄存器(PSW) :溢出标志(OF)符号标志(SF)零标志(ZF)进位标志(CF)等,这些位参与并决定微操作的形成(也叫FR标志寄存器
  6. 移位器:进行移位操作
  7. 计数器(CT):控制乘除运算的操作步数
    … …

控制器:

  1. 程序计数器(PC):指出下一条指令在主存的存储地址(PC有自增功能)
  2. 指令寄存器(IR):保存当前正在执行的那条指令
  3. 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  4. 储存器地址寄存器(MAR):存放要访问的主存单元地址
  5. 储存器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息
  6. 时序系统:用于产生各种时序信号,由统一时钟分频得到
  7. 位操作信号发生器:根据IR,PSW产生控制整个计算机系统所需的各种控制信号(有组合逻辑型和储存逻辑型)

3. 注意点:

CPU内部寄存器:

  1. 用户可见:通用寄存器组 程序状态字寄存器 程序计数器PC
  2. 用户不可见:储存器地址寄存器 储存器数据寄存器 指令寄存器 暂存寄存器

n位CPU的n是指数据总线总数


复习
地址总线线数->可寻址范围->存储器最大容量
数据总线线数->一次可取的数据位数->MDR的位数->运算器一次处理的位数->运算器寄存器位数
控制总线线数->一次可并行传送的控制信息位数
I/O线数->与外设通信的并行程度


存储字长:存放在一个存储单元中二进制码位数
指令字长:一条指令的二进制位数
机器字长(计算机位数):计算机一次能处理的二进制位数,一般等于寄存器位数
操作系统位数:操作系统可寻址位数
地址码长度:存储器地址的二进制位数

指令译码是指对指令的操作码字段进行译码

p193 23 24题


2)指令执行过程

1. 指令周期

  1. 定长机器周期
    取指(FE=1) ----->间址(IND=1) ------>执行(EX=1)------> 中断(INT=1)
    在执行周期结束后会检查有无中断请求
  2. 不定长机器周期
    机器周期数可以不相等
    每个机器周期包含的节拍数可以为4个也可以为3个
    下图为无条件指令JMP X的指令周期

注意中断周期进栈操作是SP-1,计算机的堆栈都是向低地址增加的


2. 数据流

取指周期

  1. PC->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR->IR
  4. CU发出控制信号->PC+1

间址周期

  1. Ad(IR)(或MDR)->MAR->地址总线->主存
    Ad(IR)表示取出IR中存放的指令字的地址字段
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR

执行周期

  1. 无统一的数据流向

中断周期

  1. CU将控制信号将SP-1,SP->MAR->地址总线->主存
  2. CU发出写命令->控制总线->主存
  3. PC->MDR->数据总线->主存
  4. CU(中断服务程序的入口地址)->PC

3. 执行方案

单指令周期

多指令周期

流水线方案

4. 总结

5. 注意点

工作脉冲:控制器的最小时间单位,每个时钟周期有一个工作脉冲

解析指令结构

  1. 操作码译码:指令操作码译码结构
  2. 根据特征码判断寻址方式即:指令和数据的寻址方式

预取技术:每个指令周期都要取指令

存取周期:访存读/写

一个指令周期可能只有取指,执行
也可能只有取指,执行,中断
取指,间址,执行
比如:

  1. 空指令NOP只有取指周期
  2. 加法指令ADD有取指周期和执行周期
  3. 乘法指令MUL有取指周期和执行周期(由多个ADD操作所以执行周期更长)

CPU区分指令和数据(都存在存储器中)
控制器可以根据指令周期的不同阶段对内存的访问判断从存储器取出的二进制代码是指令还是数据

一条无条件指令跳转指令周期内,PC的值被修改了2次 (自增,跳转)

间址可以一次间址,二次间址,各机器周期长度可变,间接寻址指令,他们的操作不一定相等


3)数据通路的功能和基本结构

1. 数据通路功能

数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号,正确控制指令执行的执行流程
功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换

2. 数据通路基本结构

  1. CPU内部单总线方式
    结构简单,数据传输存在较多的冲突现象,性能较低
  2. CPU内部三总线方式
    效率比单总线更高
  3. 专用数据通路方式
    性能较高,硬件量大

3. 流程及控制信号

1.寄存器之间数据传送

流程控制信号
PC->BusPCout有效,PC内容总线
Bus->MARMARin有效,总线内容送到MAR

2. 主存与CPU间的数据传送

流程控制信号
PC->Bus->MARPCout MARin有效,现行地址->MAR
1->RCU发出读命令
MEM(MAR)->MDRMDRin有效
MDR->Bus->IRMDRout IRin有效,现行地址->IR

3. 执行算术或逻辑运算

流程控制信号
Ad(IR)->Bus->MARMARin MDRout有效
1->RCU发出读命令
MEM->数据线->MDR操作数从储存器->数据线->MDR
MDR->Bus->YMDRout Yin有效,操作数->Y
(ACC)+(Y)->ZACCout ALUin有效,CU向ALU发命令,结果->Z
Z->ACCZoutACCin有效,结果->ACC

4.注意点

数据总线是双向的 CPU->内存,内存->CPU
地址总线是单向的 CPU->内存

1.数据传送主要有三种情况:

  1. 寄存器之间的数据传送。如本题MAR←(PC),由“PCout,MARin”在一个时钟周期内完成。
  2. 主存与CPU之间的数据传送。如本题“MAR←(PC); MDR←M(MAR); IR←(MDR)” ,由“PCout,MARin; MemR,MDRinE; MDRout,IRin" 分3个时钟周期内完成,效果是把M(MAR)送入IR。其中MDR←M(MAR)可与PC←(PC)+1放在同一时钟周期。
  3. 执行算术或逻辑运算。一般需要先把一个操作数送入暂存器,然后使用ALU的控制信号表示相应的运算。

2.控制信号

  1. 控制某个部件的输入输出。如PCin、 PCout。
  2. 控制某个多功能部件的具体操作。如ALU的控制信号,一般与汇编语言的助记符一一样。
  3. 控制三态门。决定某条线路的通断,一般1表示通,0表示断。
  4. 控制多路选择器MUX。如控制信号0表示把0号输入端的内容直送到输出端。

3.PC自增:

  1. 若直接在PC旁标注“+1”或“PC+1”等,一般指PC带有自增功能,不需使用ALU完成自增。
  2. 若无类似标注,一般需要由ALU完成PC自增,常有多路选择器MUX参与,见207页 第9题。
  3. 注意观察题目的描述,每个小问的问题都有可能是提示。

4)控制器功能和工作原理

硬布线控制器对比微指令控制器

硬布线控制器微指令控制器
工作原理微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生微操作控制信号以微程序的形式放在控制存储器中,执行指令时读出即可
执行速度
应用场合RISC CPUCISC CPU
工整性繁琐 较不工整较工整
易扩充性困难

1. 硬布线控制器

机器周期:内存中读取一个指令字的最短时间作为机器周期,在存储字长等于指令字长时,取指周期也可视为机器周期


CPU控制方式

  1. 同步控制方式
    优点:控制电路简单 缺点:运行速度慢
  2. 异步控制方式:
    优点:运行速度快 缺点:电路复杂
  3. 联合控制方式
    同步和异步的折中大部分使用同步,小部分异步

2. 微程序控制器


存放数据位置组成材料
主存程序数据CPU外部RAM
控制存储器微指令CPU内部ROM
水平型指令垂直型指令
指令长度
程序长度
执行速度
工整性较不工整较工整
并行性

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

3. 注意点

在硬布线中,取指的通式:(注:ID是操作码译码电路)
T0: PC->MAR, 1->R
T1: M(MAR)->MDR,(PC)+1->PC
T2: MDR->IR,
T3: OP(IR)->ID

取指是控制器固有功能,不受指令控制但在微程序控制方式下取指操作是由某段微程序控制

如果指令系统中有n种机器指令 ,则控制存储器中的微程序数至少是n+1(1为公共的取指微程序)

微操作控制信号的形成指令译码信号时钟信号有关:

  1. 指令译码信号:经指令译码产生的指令信息
  2. 时钟信号:时序系统产生的机器周期信号和节拍信号
  3. 来自执行单元的反馈信息即标志(优化)

PC程序计数器决定指令执行顺序, uPC微程序计数器决定微指令执行顺序, 两者不能互相取代

在微程序控制器中,控制部件向执行部件发出的某个控制信号是微命令

直接编码方式的效率不能确定(空间效率低,时间效率高)

时钟周期也叫主频周期

MM(主存储器)和 CS(控制存储器)按地址访问,只有相联存储器是按内容访问


5)指令流水线

1. 五段式指令流水线


IF取指->②ID译码&取数->③EX 执行->④M访存->⑤WB写回寄存器
注意只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容


常见的5类指令

  1. 运算类指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:取出操作数至ID段锁存器
    EX:运算,将结果存入EX段锁存器
    M:空段
    WB:将运算结果写回指定寄存器

  1. LOAD指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
    EX:运算,得到有效地址
    M:从数据Cache中取数并放入锁存器
    WB:将取出的数写回寄存器

  1. STORE指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
    EX:运算,得到有效地址。并将锁存器B的内容放到锁存器 Store。
    M:写入数据Cache
    WB:空段

  1. 条件转移指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:进行比较的两个数放入锁存器A、B;偏移量放入 Imm
    EX:运算,比较两个数
    M:将目标PC值写回PC(左图没画全)
    WB:空段

  1. 无条件转移指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:偏移量放入 Imm
    EX:将目标PC值写回PC(左图没画全)
    M:空段
    WB:空段

例题

2. 流水线分类

3. 影响流水线的因素

  1. 资源冲突/冒险(结构相关)
    解决方案:
    1.后一相关指令暂停一周期
    2.资源重复配置:
    数据存储器+指令存储器
  2. 数据相关/冒险
    RAW(写后读)
    WAR(读后写)
    WAW(写后写)
    解决方案:
    1.后一相关指令暂停- -周期
    2.数据旁路
  3. 控制相关/冒险
    解决方案:
    1.尽早判别转移是否发生,尽早生成转移目标地址
    2.预取转移成功和不成功两个控制流方向上的目标指令
    3.加快和提前形成条件码
    4.提高转移方向的猜准率

4. 性能指标

流水线吞吐率:
TP=n/Tk(n:任务数 Tk是处理完n个任务所用的时间)
Tk=(k+n-1)*Δt(k是流水线段数 Δt=每个时钟周期需要的秒数)
主频:每秒钟时钟周期数


流水线加速比:
S=T0/Tk(T0表示不用流水线时间 Tk表示用流水线的时间)
S=kn/k+n-1


流水线效率:
E=T0/kTk(有效面积比总面积)


5. 超标量流水线

  1. 超标量流水线技术
  2. 超流水线技术
  3. 超长指令字
    编译程序挖掘指令潜在的并行性需要采用多个处理部件

6. 注意点

流水线按序流动时,在RAW. WAR和WAW中.只可能出现RAW相关

非流水线时空图

流水线时空图

空间并行:即资源重复,多个功能部件共同执行同一任务的不同部分
时间并行:即时间重叠,多个功能部件在时间上相互错开,轮流重叠执行不同任务的相同分
所有的RISC采用流水线技术,部分CISC也采用流水线技术
RISC-定采用流水线技术,采用流水线技术的不一定是RISC

空操作 万金油

以上是关于5-4中央处理器-控制器的功能和工作原理的主要内容,如果未能解决你的问题,请参考以下文章

中央处理器 5.4 控制器的功能和工作原理

WINDOWS操作系统工作原理?

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

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

计算机组成原理——中央处理器CPU 1

计算机组成原理笔记——中央处理器CPU