一、CPU的功能和结构
1.1 需要提供哪些功能?
- 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工。对数据进行算术和逻辑运算。
- 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。
1.2 对应这些功能需要有哪些结构?
1.2.1 运算器的基本结构
专用数据通路方式
专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
方法一:使用多路选择器根据控制信号选择一路输出
方法二:使用三态门可以控制每一路是否输出
专用数据通路方式的特点:性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
CPU内部单总线方式
CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。
CPU内部单总线方式的特点:结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。
1.2.2 控制器的基本结构
用户可见的寄存器(可编程):PC PSW ACC R0 R1 R2 R3
用户不可见的寄存器:IR MAR MDR 移位寄存器 暂存寄存器
接下来主要学习CU
二、指令执行过程
2.1 指令周期的概念:一条指令的执行分为不同的阶段
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期数可以不等(例如有些指令有取有效地址的间址周期,有些指令没有),每个机器周期内的节拍数也可以不等。
为了区别不同的工作周期,引入了标志触发器,哪个为“1”就表示现在处于哪个阶段
2.2 数据流:不同阶段要求依次访问的数据序列
取指周期数据流:
间址周期数据流:
执行周期数据流:执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
中断周期数据流:
2.3指令执行方案:如何安排多条指令的执行
方案1.单指令周期:
对所有指令都选用相同的执行时间来完成 。指令之间串行执行;指令周期取决于执行时间最
长的指令的执行时间。
缺点:对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期:
对不同类型的指令选用不同的执行步骤来完成 。指令之间串行执行;可选用不同个数的时钟周期
来完成不同指令的执行过程 。
缺点:需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中 。
指令之间并行执行。
三、数据通路的功能和基本结构
数据通路:数据在功能部件之间传送的路径。
数据通路的基本结构:
- CPU内部单总线方式。
- CPU内部多总线方式。
- 专用数据通路方式。
考题一般是给你一个汇编指令,然后要求分析数据流向
四、控制器的功能和工作原理
4.1 控制器的设计(硬布线、微程序)
硬布线控制器的设计
根据 指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”
微程序控制器的设计
程序:由指令序列组成
每个指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微命令,微操作与微命令一一对应
微程序控制器的基本结构
微程序控制器的工作原理
控制存储器内部如上图所示,其中的取值周期微程序、间址周期微程序、中断周期微程序所有指令可以共用,不同的只是各种指令的执行周期微程序。
严谨地说:若指令系统中具有n种机器指令,则控制存储器中的微程序段的个数至少是(n+1),(1为公共的取指微程序,n为各指令的执行周期微程序)
但也可以说微程序个数是n个,因为一条指令对应一个微程序。
小结:
微指令的设计
微指令的格式
1、水平型微指令,一条微指令能定义多个可并行的微命令
优点:微程序短,执行速度快
缺点:微指令长
2、垂直型微指令,一条微指令只能定义一个微命令
优点:微指令短、简单
缺点:微程序长,执行速度慢
3、混合型微指令,在垂直型的基础上增加一些不太复杂的并行操作
微指令短,微程序也不长
微指令的编码方式
1、直接编码方式,在操作控制字段中,每一位代表一个微操作命令。
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
2、字段直接编码方式
原则:①互斥性微命令分在同一段内,相容性微命令分在不同段内。② 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。③ 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
优点:可以缩短微指令字长 。
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
3、字段间接编码方式
优点:可进一步缩短微指令字长
缺点:削弱了微指令的并行控制能力
直接编码、字段直接编码、字段间接编码都属于水平型微指令
微指令的地址形成方式
微程序控制单元的设计
微指令之间都需要增加一条将微指令下地址字段送至CMAR的微操作(Ad ( CMDR ) -->CMAR)
取指周期的最后一条微指令完成后,要根据指令操作码确定其执行周期的微程序首地址
微程序设计分类
静态微程序设计采用ROM,动态微程序设计采用EPROM
毫微程序就是微程序再套娃
硬布线与微程序的比较
小结
五、指令流水线
5.1 指令流水线的基本概念和性能指标
可以从两方面提高处理机的并行性:
①时间上的并行技术,将一个任务分解为几个不同的子阶段,每个阶段在不同的功能部件上并行执行,以便在同一时刻能够同时执行多个任务,进而提升系统性能,这种方法称为流水线技术。
②空间上的并行技术,在一个处理机内设置多个执行相同任务的功能部件,并让这些功能部件并行工作,这样的处理机被称为超标量处理机。
传统冯诺依曼机采用顺序执行方式,又称串行执行方式
重叠执行方式是在最理想情况下的,实际过程中很难得到这种效果
流水线的表示方法
时空图主要用于分析流水线的性能
流水线的性能指标
1、吞吐率
单位时间内流水线所完成的任务数量
2、加速比
不使用流水线所用的时间与使用流水线所用时间之比
研究的是理想情况下的,看时空图
3、效率
流水线的设备利用率称为流水线的效率
在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比。
小结
5.2 指令流水线的影响因素和分类
MIPS指令集适合该经典五段流水线
为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。即此处应将机器周期设置为100ns
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。
IF流水段功能:将PC的值作为地址到指令寄存器IM(或Instruction Cache)中取指令,并更新PC值,送入pc输入端。
ID流水段功能:对指令中的操作码op字段进行译码,还会完成取数的操作,将本指令要用到的数从Registers(通用寄存器)取出来放到锁存器A、B中。
ID阶段有可能要对某通用寄存器进行读操作,WB阶段有可能要对某通用寄存器进行写操作。
影响流水线的因素
1、结构相关(资源冲突):由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
相当于操作系统的互斥问题
2、数据相关(数据冲突):数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
相当于操作系统的同步问题
**
数据旁路技术又叫转发机制,在第一条指令加法结果出来之后,加一条电路,让运算结果直接从ALU的输出端流到ALU的一个输入端
3、控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令二造成断流时,会引起控制相关
流水线的分类
流水线的多发技术
1、超标量技术:不能调整指令的执行顺序
需要配置多个功能部件
2、超流水技术:不能调整指令的执行顺序,一个机器周期再分段,在一个机器周期内一个功能部件使用多次(分成几段就需要被使用多少次)
下图写的是时钟周期有点不准确,不过最理想的情况下,一个机器周期可以只有一个时钟周期
3、超长指令字:由编译器挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字
小结
五段式指令流水的指令执行过程
每个阶段耗时不同,为了方便流水线设计,将每个阶段的耗时取成一样,以最长耗时为准
考试中常见的五类指令:
运算类指令、LOAD指令、STORE指令、条件转移指令、无条件转移指令
运算类指令执行过程:M段为空段,不用存取数据
LOAD指令执行过程:也需要运算,算出有效地址(基地址加上偏移量)
RISC处理器只有“取数LOAD”和“存数STARE”指令才能访问主存
STORE指令执行过程:也需要运算,算出有效地址(基地址加上偏移量)
在ID阶段将要存的数放到B,在EX阶段将锁存器B中的内容放到锁存器Store
WB段为空段
条件转移类指令执行过程:转移类指令常采用相对寻址
通常在IF阶段末取指完成后PC自动+“1”,注意上图红字部分
EX阶段结束后,就知道了条件符不符合,就能确定到底要送哪个地址进PC,所以在M阶段会将目标PC值写回PC,上图没有画出来
WB段是空段
无条件转移类指令执行过程:转移类指令常采用相对寻址
由于是无条件转移指令不需要判断满不满足条件,所以用不到ALU,因此在EX阶段就可以把目标PC值写回PC
为什么要尽早修改PC的值呢?为了避免控制冲突
5.3 多处理器的基本概念(考选择题)
5.3.1 SISD、SIMD、MIMD的基本概念,向量处理机、多核处理器的基本概念、共享内存多处理器的基本概念
不是数据级并行
SIMD:数据级并行技术,一个指令控制部件+多个处理单元(如ALU)+多个局部存储器
每个处理单元虽然执行的都是同一条指令,但每个单元都有自己的存储器,因此,不同处理单元执行的同一条指令所处理的数据是不同的
MISD:现实中不存在
线程级并行甚至线程级以上并行技术
实质是SIMD,处理对象是向量,而不是传统的标量。
多个处理单元
主存储器采用“多个端口同时读取”的交叉多模块存储器
这两者跟多MIMD中的处理器系统是一个东西,注意跟多计算机系统的对比