控制器:协调并控制计算机各部件执行程序的指令序列,其基本功能是取指令、分析指令和执行指令
功能
CPU 必须具有控制程序的顺序执行(指令控制)、产生完成每条指令所需的控制命令(操作控制)、对各种操作加以时间上的控制(时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等能力
取指令
控制器必须具备自动地从存储器中取出指令的功能
要求控制器能自动形成指令的地址,并能发出取指令的命令,将对应此地址的指令取到控制器中
第一条指令的地址可以人为指定,也可由系统设定
分析指令
1.分析此指令要完成什么操作,即控制器需发出什么操作命令
2.分析参与这次操作的操作数地址,即操作数的有效地址
执行指令
根据分析指令产生的“操作命令”和“操作数地址”的要求,形成操作控制信号序列,通过对运算器、存储器以及 I/O 设备的操作,执行每条指令
控制器必须能控制程序的输入和运算结果的输出以及对总线的管理,甚至能处理机器运行过程中出现的异常情况和特殊请求,即处理中断的能力
结构框图
CPU 的寄存器
指令周期
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数(时钟周期)也可以不等
基本概念
指令周期:CPU 每取出并执行一条指令所需的全部时间,即 CPU 完成一条指令的时间
取指周期:取指阶段完成取指令和分析指令的操作
执行周期:执行阶段完成执行指令的操作
由于各种指令操作功能不同,故各种指令的指令周期不相同
取指、间址、执行和中断 4 个周期都有 CPU 访存操作,但是目的各不相同
取指周期,为了取指令
间址周期,为了取有效地址
执行周期,为了取操作数
中断周期,为了保存程序断点
FE、IND、EX、INT 分别对应取指、间址、执行、中断 4 个周期,“1”状态表示有效
CPU 区分指令和数据的依据:
- 取指令(取指周期)或数据(执行周期)时所处的机器周期不同
- 取指令(程序计数器 PC)或数据(地址形成部件)时地址来源不同
数据流
取指周期的数据流
PC 存放现行指令的地址,该地址送到 MAR 并送至地址总线,控制部件 CU 向存储器发读命令,对应 MAR 所指单元的内容(指令)经数据总线送至 MDR,再送至 IR,CU 控制 PC 内容+1,形成下一条指令的地址
间址周期的数据流
一旦取值周期结束,CU 便检查 IR 中的内容,以确定其是否有间址操作,如果需要,则 MDR 中指示形式地址的右 N 位(Ad(MDR))将被送到 MAR,又送至地址总线,此后 CU 向存储器发读命令,以获取有效地址并存至 MAR
执行周期的数据流
不同指令在执行周期的操作不同,故执行周期的数据流是多种多样的
中断周期的数据流
CPU 进入中断周期要完成一系列操作,其中 PC 当前的内容必须保存起来,以待执行完中断服务程序后可以准确返回到该程序的间断处
CU 把用于保存程序断点的存储器特殊地址送往 MAR ,并送到地址总线上,后由 CU 向存储器发出写命令,并将 PC 的内容(程序断点)送到 MDR,使程序断点经数据总线存入存储器。CU 还将中断服务程序的入口地址送至 PC,为下一个指令周期的取值周期做好准备
指令流水
流水线性能
吞吐率
定义:单位时间内流水线所完成指令或输出结果的数量
加速比 >1
定义:指 m 段流水线的速度与等功能的非流水线的速度之比
效率
定义:指流水线中各功段的利用率