微程序控制器:硬件加软件完成控制器功能
易混淆概念:微命令与微操作一一对应;微指令中可能包含多个微命令
一个指令对应一个微程序,一个微程序有多个微指令构成
微地址形成部件通过IR中的OP确定指令对应的微程序的起始地址,CMAR(≈MAR+ID)数据通过地址译码得到微指令在CM中的存储位置放入CMDR(≈MDR+IR)。CMDR中的微指令包括两部分:送往CPU进行硬件控制的控制信号和下一条微指令的地址。顺序逻辑:间接寻址,中断程序等因素在此处发挥作用---改变下一条微指令的存储位置,以起到改变命令的作用
CM:
不同指令的取指周期,间址周期,中断周期是相同的,只有执行周期有不同的微指令
设系统中有n条机器指令,则CM中微程序的个数至少是n+1个(n条不同的执行微程序+1条相同的的取指微程序) 有的计算机不支持间址和中断,所以有时没有这两个微程序。有的教材认为每个周期对应一个微程序,有的认为一条指令对应一个微程序,具体情况看题目要求
微指令的设计:
水平型微指令:一条微指令能定义多个可并行的微命令。微程序短,执行速度快。微指令长,编写为程序麻烦
垂直型微指令:一条微指令只能定义一个微命令。微指令段,便于编写。微程序长,执行速度慢
直接编码方式:
操作控制部分每一位代表一种操作,有多少种操作就需要多少位字长。缺点是字长过长
字段直接编码方式:
优点:缩短指令字长;缺点:译码需要时间,速度较慢
例题:
字段间接编码方式:需要多个字段来确定一条命令:字长更短,速度更慢
微指令的地址形成方式:断定方式--由微指令下地址字段指出;计数器法--(CMAR)+1=CMAR;(根据IR中机器指令的操作码形成;通过顺序逻辑处理;由硬件产生微程序入口地址;分支转移
例题:
微程序控制单元的设计:
第四步以直接编码为例
第二步:微操作序列与硬布线操作类似,补充上微程序控制器特有的微操作
以取指周期为例:
硬布线与微程序比较:
指令流水线:对指令执行过程进行优化
顺序取值方式:指令指令依次执行,设指令有三个步骤(取址,分析,执行),每步用t,n条指令耗时T=n*3t=3nt
二次重叠同理
上面那个叫指令执行过程图 下图叫时空图
评价流水线性能指标:
吞吐率TP:单位时间可以完成多少指令
加速比S:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
效率:流水线的设备利用率
在时空图上,完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积(也就是整体长方形的面积)之比
五段式:取址 指令译码 执行 访存 写回
每个功能段后面都有一个缓冲寄存器(又名锁存器)用于暂存本流水段中的执行结果,提供给下一流水段使用
影响流水线的因素:
结构相关(资源冲突):多条指令在同一时刻争用同一物理资源
解决方法:后一相关指令暂停一周期;资源重复配置(如上图将cache分为指令cache和数据cache)
数据相关(数据冲突):后一指令需要调用前一指令的结果数据
解决方法:硬件阻塞;插入空指令(二者效果相同,均可用右图表示);编译优化---先执行后面不需要冲突数据的命令;数据旁路技术(如下图,加一条蓝色的数据线)
控制相关(控制冲突):PC转移指令
解决方法:分支预测(预测是否会转移),预取两个方向的指令
例题: