【考研计算机组成原理】课堂笔记5 第五章 中央处理器CPU Central Processing Unit

文章目录:

一:.CPU的功能和基本结构

1.CPU的功能

2.CPU的基本结构

二:指令执行过程

1.指令周期

2.指令周期的数据流

3.指令执行方案

三;数据通路的功能和基本结构

1.数据通路的功能

2.数据通路的基本结构

四:控制器的功能和工作原理

1.控制器的结构和功能

2.硬布线控制器

3.微程序控制器

4.硬布线和微程序控制器的特点

五:指令流水线

1.指令流水线的基本概念

2.流水线的分类

3.影响流水线的因素

六:指令周期执行模板

1.取指令周期

2.间址周期

3.指令执行周期

七:五段式指令流水线

 1.运算类指令的执行过

 2.LOAD指令的执行过程

 3.STORE指令的执行过程

 4.条件转移指令的执行过程

 5.无条件转移指令的执行过程


一:.CPU的功能和基本结构

1.CPU的功能

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


2.具体功能
    指令控制︰完成取指令、分析指令和执行指令的操作,即程序的顺序控制
    操作控制:一条指令的功能往往由若干操作信号的组合来实现,CPU可以管理这些信号
    时间控制︰对各种操作加以时间上的控制,时间控制要为每条指令按时间顺序提供应有的控制信号。
    数据加工∶对数据进行算术和逻辑运算
    中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。

2.CPU的基本结构

1.运算器
    算术逻辑单元:主要功能是进行算术/逻辑运算。
    暂存寄存器:用于暂存从主存读来的数据。暂存寄存器对应用程序员是透明的。
    累加寄存器∶它是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端。通            
    用寄存器组:用于存放操作数(源、目的操作数及中间结果)和各种地址信息等。
    程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息
        例如︰溢出标志(OF )、符号标志( SF)、零标志(ZF )、进位标志(CF)
    移位器:对操作数和运算结果进行移位运算
    计数器∶控制乘除运算的操作步数


2.控制器
    程序计数器(pc):用于指出下一条指令在主存中的存放地址。指令寄存器∶用于保存当前正在执行的指令
    指令译码器∶仅对操作码字段进行译码,向控制器提供特定的操作信号
    存储器地址寄存器:用于存放所要访问的主存单元的地址
    存储器数据寄存器︰用于存放向主存写入的信息或者从主存中读出的信息
    时序系统︰用于产生各种时序信号,他们由统一时钟(CLOCK)分频得到
    微操作信号发生器︰根据IR的内容(指令)、PSW的内容以及时序信号,产生控制整个计算机系统所需要的信号


3.如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据
    解决方法1.使用多路选择器根据控制信号选择一路输出
    解决方法2.使用三态门可以控制每一路是否输出


4.数据通路的基本结构:专用通路、内部总线


5.可见和不可见的寄存器
    用户可见的寄存器:通用寄存器组、程序状态字寄存器PSW、程序计数器PC
    用户不可见的寄存器:MAR、MDR、IR、暂存寄存器

二:指令执行过程

1.指令周期

1.概念
    CPU从主存中每取出一条指令所需要的全部时间称为指令周期,即CPU完成一条指令的时间
    一个指令周期包含多个机器周期,一个机器周期包含若干个时钟周期,是CPU操作的基本单位
    每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数可以不等


2.基本组成
    取指周期:取出指令
    间址周期:取出有效地址
    执行周期:取出操作数
    中断周期︰保存程序断点


3.不同指令的指令周期
    无条件转移指令,不需要访存,所以只有取指周期、执行周期
    对于间接寻址的指令,首先要进行访存,取出有效地址,根据有效地址取出操作数,所以其具有间址周期
    当CPU采用中断方式实现主机和I/O设备的信息交换的时候,CPU在每次指令执行结束前都要发出中断查询信号,所以需要中断周期

2.指令周期的数据流

1.取指周期:根据PC中的内容取出指令代码并存放在IR中
    CU发出控制信号--->控制总线----->主存
    主存--->数据总线---->MDR---->IR(存放指令)
    CU发出读命令-->PC内容加1


2.间址周期:根据IR中指令地址码取操作数有效地址
    Ad ( IR )(或MDR ) ---->MAR---->地址总线---->主存
    CU发出读命令--->控制总线--->主存
    主存---->数据总线--->MDR(存放有效地址)


3.执行周期:根据指令字的操作码和操作数进行相应的操作
    执行周期根据IR中的数据和ALU操作的产生执行结果,不同指令的执行过程不同


4.中断周期:保存断点,送中断向量,处理中断请求
    CU控制将SP减1,SP--->MAR--->地址总线--->主存
    CU发出写命令--->控制总线--->主存
    PC--->MDR--->数据总线--->主存(程序断点存入主存)
    CU(中断服务程序的入口地址) ---->PC

 

 

3.指令执行方案

1.单指令周期:所有指令选用相同的执行时间,指令间串行
    指令串行执行,指令周期取决于最长指令执行时间
    降低了系统整体运行速度


2.多指令周期:不同类型指令选用不同的执行步骤,指令间串行
    指令串行执行,对于不同指令分配不同的周期


3.流水线方案:隔一段时间启动一条指令,多条指令处于不同阶段,同时运行
        cisc可以通过优化实现流水线 risc必须要实现流水线
    指令之间并行,将每个时钟周期都利用起来
    尽量让多个指令并行运行

三;数据通路的功能和基本结构

1.数据通路的功能

概念︰数据在功能部件之间传送的路径


功能:实现CPU内部的运算器与寄存器之间的数据交换

2.数据通路的基本结构

1.基本机构分类
    1.1 CPU内部单总线方式实现简单,往往会伴随有性能低下或者其他问题
        将所有寄存器的输入输出端连接在同一条公共通路上
        优点:结构简单
        缺点:存在冲突现象,性能较低
    1.2 CPU内部三总线方式:性能的提高,往往会伴随着复杂的实现
        将所有寄存器的输入输出端连接在多个公共通路上
        优点:执行效率高
        缺点:实现复杂
    1.3 专用数据通路方式:性能的提高,往往会伴随着复杂的实现
        减少使用共享线路,专线专用
        优点︰性能高
        缺点:实现复杂,硬件量大


2.数据传输
    寄存器之间的数据传送:寄存器之间的数据传送可以通过CPU内部总线完成
    主存与CPU之间的数据传送:主存与CPU之间的数据传送也需要借助CPU内部总线完成
    执行算数或逻辑运算:由于ALU本身没有内部存储功能的组合电路,所以相加的操作数,必须在ALU两端同时有效

四:控制器的功能和工作原理

1.控制器的结构和功能

1.结构
    运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
    输入设备和输出设备通过接口电路与总线相连接
    内存储器、输入设备和输出设备从地址总线接收地址信息,控制总线得控制信号,数据总线与其他部件传送数据


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


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

2.硬布线控制器

1.根据指令要求、当前的时序以及外部和内部的状态,按照时间的顺序发送一些微操作控制信号,又称为组合逻辑控制器


2.控制单元(CU)信号来源
    指令译码器产生的信息
    时序系统产生的机器周期信号和节拍信号
    来自执行单元的反馈标志
    注意:控制单元还接收来自系统总线的控制信号∶中断请求dma请求


3.硬布线控制器的时序系统及微操作
    3.1 时钟周期︰用时钟信号控制节拍发生器,每个节拍内机器可以完成或几个需要同时执行的操作
    3.2 机器周期∶机器周期可视为所有指令执行过程中的一个基准时间
        通常我们以存取周期作为基准时间,即从内存中读取一个指令字的最短时间作为机器周期
        在存储字长等于指令字长的前提下,取指周期可以作为机器周期
    3.3 指令周期:取指周期,间址周期,执行周期,中断周期
    3.4 微操作命令分析:控制单元发出各种操作序列,这些命令必须要按照一定的次序才能使得机器有序的工作


4.CPU控制方式
    4.1 同步控制
        使用统一的时钟
        优点:控制电路简单
        缺点∶运行速度慢
    4.2 异步控制
        不存在基准时标信号,每个部件按照自身的速度工作
        优点:速度快
        缺点︰电路复杂
    4.3 联合控制
        同步和异步结合
        大部分部件同步,小部分由异步


5.硬布线控制器设计
    列出微操作命令时间表
    对微操作信号综合
    画出微操作命令的逻辑图    


6.设计步骤:
    1.分析每个阶段的微操作序列2.选择CPU的控制方式
    3.安排微操作时序4.电路设计
        (1)列出操作时间表
        (2)写出微操作命令的最简表达式(3)画出逻辑图


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

3.微程序控制器

1.基本概念
    1.1 采用存储逻辑实现,将微操作信号代码化,控制存储器存储微程序,微操作控制信号由微指令产生
    1.2 微命令与微操作
        机器指令分解微操作序列
        控制部件向执行部件发出的控制命令称为微命令,是构成控制序列的最小单位
        微命令具有相容和相斥性
        操作控制字段︰用于产生某一步操作需要的各种操作控制信号顺序控制字段:控制产生下一条要执行的微指令地址
    1.3 主存储器与控制存储器
        主存储器︰存储程序和数据,RAM组成
        控制存储器:存放微程序,ROM组成
    1.4 程序和微程序:一条指令的功能由一段微程序来实现
        程序:指令的有序集合
        微程序,微命令的有序集合
    1.5 微地址寄存器(CMAR):用于存放控制存储器读/写微指令的地址
    1.6 微指令寄存器(CMDR或者uIR):用于存放从控制存储器中读出的微指令
    1.7 指令周期:从主存取出并执行一条机器指令所需的时间
    1.8 微周期(微指令周期)∶从控制器存储器取出一条微指令并执行相应微操作所需的时间


2.CU的结构
    2.1 微地址形成部件
        微地址即微指令在CM中的存放地址
        通过指令操作码形成对应微程序的第一条微指令的存放地址
    2.2 顺序逻辑:根据某些机器标志和时序信息确定下一条微指令的存放地址
    2.3 CMAR (uPc):指明接下来要执行的微指令的存放地址
    2.4 地址译码器:将CMAR内的地址信息译码为电信号,控制CM读出微指令
    2.5 控制存储器CM
        存放所有机器指令对应的微程序(微指令序列)
        用ROM实现,按地址寻访。通常在CPU出厂时就把所有微程序写入
    2.6 CMDR(ulR):微指令寄存器,用于存放当前要执行的微指令。CM(uPC)—>ulR


3.微程序控制器组成和工作过程
    3.1 基本组成
        控制存储器∶存放指令对应的微程序,ROM构成
        微指令寄存器:存放微指令
        微地址形成部件∶产生初始微地址和后继微地址
        微地址寄存器︰接收微地址
    3.2 工作过程
        取微指令
            微程序入口自动送入CMAR
            CM中读出微指令送入CMDR
        机器指令操作码字段通过微地址形成部件产生微程序的入口地址,并将其送入CMAR从CM中逐条取出对应的微指令并执行执行完后,继续从头循环往复
    3.3 工作原理
        指令周期=取值周器一>间址周期一>执行周期一>中断周期。其中间址、中断周期可有可无
        处理取指周期、间址周期、中断周期的微指令序列通常是公用的。执行周期的微指令序列各不相同
        取指周期的微指令序列固定从#开始存放。执行周期的微指令序列的存放根据指令操作码确定


4.微指令编码方式
    4.1 直接编码法:控制码的每个bit对应一个微命令,微指令执行速度最快
        优点:简单直观不需要译码,速度快,操作并行性好
        缺点∶对控制存储器容量有要求
    4.2 字段直接编码法
        优点:缩短指令的字长
        缺点:需要进行译码
        互斥的指令放在相同段内,相容指令放在不同段内
            将互斥性的微命令分在同一个段内,相容的分在不同的段,
            每个段留出一个状态表示“不操作”微指令操作码需要经过译码电路处理,因此执行速度更慢
    4.3 字段间接编码法
        一个字段的微指令由另一个字段中的微指令解释
        优点∶进一步缩短指令字长
        缺点︰削弱了并行控制能力,该方法只是作为辅助手段
            一个字段的微命令需要用另一个字段的微命令解释,可能需要多级译码电路处理,执行速度最慢


5.微指令地址形成方式
    直接由微指令的下地址字段给出
    根据机器指令的操作码形成


6.微指令格式
    6.1 水平型微指令:每条微指令能定义多个可并行的微命令
        优点︰微程序短,执行速度快,并行能力强,灵活性高
        缺点︰微指令长,编写微程序麻烦
    6.2 垂直型微指令:每条微指令只能定义一个微命令,由微操作码指明
        优点︰微指令短,简单,规整,便于编写微程序
        缺点︰微程序长,执行速度慢,效率低下
    6.3 混合型指令:结合二者优点不长不短,在垂直型微指令的基础上加上一些简单的并行操作
        在垂直型的基础上增加一些不太复杂的并行操作
        微指令较短,仍便于编写:微程序也不长,执行速度加炔


7.动态微程序设计和毫微程序设计
    动态微程序设计:根据用户要求改变微程序、采用EPROM
    毫微程序设计:主存的每条指令都是放在控制存储器中的微程序解释执行的,通过控制线对硬件进行直接控制


8.下一条微指令的形成方式
    断定法(下地址法)︰根据当前执行的微指令下地址找到下一条微指令
    计数器法:uPC+1顺序找到下一条微指令
    根据指令操作码确定执行周期微程序首地址
    由专门的硬件指明取指/中断周期的徽程序首地址


9.微程序控制单元的设计
    分析每个阶段的微操作序列
    写出对应机器指令的微操作命令及节拍安排
    确定微指令格式
    编写微指令码点


10.改程序设计
    静态微程序设计和动态微程序设计
        静态:微程序无需改变,采用 ROM
        动态:通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM
    毫微程序设计
        毫微程序设计的基本概念
        微程序设计用微程序解释机器指令
        毫微程序设计用毫微程序解释微程序
        毫微指令与微指令的关系好比微指令与机器指令的关系

4.硬布线和微程序控制器的特点

硬布线
    优点:速度快
    缺点:不够灵活
    RISC CPU


微程序
    优点:规整灵活可维护性好
    缺点:速度慢
    CISC CPU

五:指令流水线

1.指令流水线的基本概念

1.概念∶把一个重复的过程分解成若干个子过程,每个子过程可以与其他子过程并行执行
2.优点∶只需要增加少量的硬件就能把计算机的运算速度提高几倍


3.指令流水的定义
    3.1 —条指令的执行可以分为多个阶段
        取指∶根据PC从主存中取出指令送入IR
        分析︰对指令操作码进行译码,按照寻址方式和地址段内容形成有效地址EA,并从有效地址中取出操作数
        执行:根据操作码字段,完成指令规定功能,将运算结果写到通用寄存器或者主存中
    3.2 多条指令的处理方式
        3.2.1 顺序执行方式
            总耗时T=n×3t = 3nt
            一条接一条指令执行,传统冯诺依曼机顺序执行方式T=3nt
            优点︰控制简单,硬件代价小
            缺点︰执行指令速度慢,各功能部件的利用率很低
        3.2.2 一次重叠执行方式
            总耗时T= 3t +(n-1)×2t=(1+2n)t
            第k条指令的执行阶段和k+1条指令的取指阶段并行T=(1+2nt)
            优点:程序执行时间缩短了1/3,各功能部件利用率提高了
            缺点:硬件开销代价较大,控制过程也比顺序执行复杂
        3.2.3 二次重叠执行方式
            总耗时T= 3t +(n-1)xt=(2+n)t
            k+1条指令提前到分析第k条指令的期间完成,而将分析第k+1条指令与执行第k条指令同时进行            
            优点:时间更短了,利用率更高了
            缺点:硬件开销更大了,控制过程更复杂了


4.流水线的执行方式
        流水线最重要的是一定要流动起来,如果经常出现断流情况,那么就无法体现流水线的优越性
    顺序执行方式
    一次重叠执行方式
    二次重叠执行方式


5.表示方法
    指令流程图:主要用于分析影响流水线的因素
    时空图:主要用于分析流水线的性能


6.性能指标:吞吐量TP、加速度S、效率E


7.流水线方式的特点
    一个任务分解成多个子任务
    每个功能部件后面都要有个锁存器,用于保存本流水段的结果
    流水线中的各功能段的时间应尽量相等,否则将会堵塞、断流
    流水线需要装入时间和排空时间
        装入时间∶第一个任务进入流水线到输出流水线的时间
        排空时间:最后一个任务进入流水线到输出流水线的时间             

 

 

2.流水线的分类

1.按照流水级别分类
    部件功能级流水线:将复杂的算术逻辑运算组成流水线的工作方式
    处理机级流水线:一条指令解释成多个子过程
    处理机间流水线︰是一种宏流水,每个处理机专门完成一个任务,各个处理机得到的结果存放在与下一个处理机共享的存储器中


2.按照功能分类
    单功能流水线:完成单一功能
    多功能流水线:各个流水段之间通过组合可以实现多种功能


3.按照连接方式分类
    静态流水线:同一时间内,流水线的各段只能按照同一种功能的连接方式工作
    动态流水线︰不同的段完成的运算可能不一样,可以提高效率,但是流水线控制变得很复杂


4.按照是否存在反馈信号分类
    线性流水线:不存在反馈回路
    非线性流水线∶存在反馈回路,非常适合线性递归运算

3.影响流水线的因素

1.结构相关(资源冲突)
    概念:同一时刻争抢统一资源
    解决办法
        冲突指令之间,插入暂停周期
        单独设置数据存储器和指令存储器,但是增加了资源消耗


2.数据相关(数据冲突)
    概念:一个指令的执行必须要等待前一个指令的结果
    解决方法:对数据相关的指令进行阻塞时钟周期
        硬件阻塞( stall )    软件插入NOP指令


3.控制相关(控制冲突)
    概念∶出现转移指令或者其他改变PC值得指令造成断流
    解决办法    
        对转移指令进行分支预测:简单(静态)预测、动态预测、准确率较高
        预取转移成功和不成功两个控制流方向上的目标指令
        加快和提前形成条件码
        提高转移方向的猜准率


4.流水线的性能指标
    吞吐量
        单位时间内流水线完成的任务数量
        TP=n/Tk:n是任务数,Tk是处理完n个任务的时间
        当连续输入的任务n趋向于无穷时,此时为最大吞吐率
    流水线的加速比:连续任务数n趋向于无穷,此时为最大加速比
    流水线效率:连续输入任务n趋向于无穷时,最高效率为1


5.超标量流水线的多发技术
    5.1 超标量流水线技术
        每个时钟周期内可以并发多条独立指令
        可以编译优化,把可并行执行的指令搭配起来,挖掘指令并行性
    5.2 超流水线技术
        在一个时钟周期内再分段,在一个时钟周期内一个功能部件使用多次
        编译程序解决优化问题
    5.3 超长指令字:使用多个功能部件,利用编译程序挖掘出指令之间的并行性,然后将并行指令组成超长指令字
    

 

六:指令周期执行模板

1.取指令周期

PC--->MAR    现行指令地址--->MAR
1-->R        命令存储器读
M(MAR)-->MDR 现行指令从存储器中读至MDR
MDR-->IR     现行指令-->IR
OP(IR)-->cu  指令的操作码-->CU译码
(PC)+1-->PC  形成下一条指令的地址

2.间址周期

Ad (IR)-->MAR    将指令字中的地址码(形式地址)-->MAR
1-->R            命令存储器读
M(MAR)-->MDR     将有效地址从存储器读至MDR

3.指令执行周期

1.非访存指令
    CLA    清ACC    0-->ACC
    COM    取反     Acc上划线-AcC
    SHR    算数右移  L(ACC)-->R(ACC)    ACCo-->ACCn
    CSL    循环左移  R(ACC)-->L(ACc)    ACCo-->ACCn
    STP    停机指令  O--->G


2.访存指令
    2.1 加法指令
        ADD X    加法指令    Ad(IR)-->MAR
        1->R
        M(MAR)-->MDR
        (ACC)+(MDR)-->ACC
    2.2 存数指令
        STA X    Ad(IR)-->MAR
        1-->w
        ACC-->MDR
        MDR-->M(MAR)
    2.3 取数指令
        LDA X    Ad(IR)-->MAR
        1-->R
        M(MAR)-->MDR
        MDR-->ACC
    2.4 转移指令
        JMP X    无条件转移        Ad(IR)-->PC
        BAN X    条件转移(负则转)  Ao*Ad(IR)+Ao*(PC)-->PC

七:五段式指令流水线

 1.运算类指令的执行过

 2.LOAD指令的执行过程

 3.STORE指令的执行过程

 

 4.条件转移指令的执行过程

 5.无条件转移指令的执行过程

猜你喜欢

转载自blog.csdn.net/liu17234050/article/details/124112590
今日推荐