文章目录:
一:.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指令的执行过程