CPU的结构和功能:
CPU的结构:
- CPU的功能:
- 控制器功能:
- 取指令 指令控制
- 分析指令 操作控制
- 执行指令,发出各种操作命令
- 控制程序的输入及输出 时间控制
- 总线管理 处理中断
- 异常情况和特殊请求
- 运算器:
- 实现算术运算和逻辑运算 数据加工
- 控制器功能:
- CPU的结构框图
- CPU的寄存器:
- 用户可见寄存器
- 通用寄存器 存放操作数 某一种寻址方式的专门寄存器
- 数据寄存器 存放操作数 两个寄存器拼接存放双倍字长数据
- 地址寄存器 存放地址
- 条件码寄存器 条件码 作为分支的依据
- 控制和状态寄存器
- 控制寄存器 PC->MAR->M->MDR->IR 由CPU控制
- 状态寄存器 存放条件码
- PSW寄存器 存放程序状态字 存放程序的中断现场
- 用户可见寄存器
- 控制单元CU和中断系统
- CU产生全部指令的位操作命令序列,使用下面两种来实现
- 组合逻辑设计 硬连线逻辑
- 微程序设计 存储逻辑
- 中断系统
- CU产生全部指令的位操作命令序列,使用下面两种来实现
- ALU,运算逻辑部件
指令周期:
-
指令周期的基本概念:
- 指令周期:
- 取出并指令一条指令需要的时间
- 完成一条指令:
- 取指,分析 取指周期
- 执行 执行周期
- 指令周期:
-
每条指令的指令周期不同
-
具有间接寻址的指令周期
-
具有中断周期的指令周期
-
指令周期的流程:
-
CPU工作周期的标志
- CPU访存的四种性质:
- 取指令 取指周期
- 取地址 间址周期
- 存取操作数或结果 执行周期
- 存程序断点 中断周期
- 在不同的周期,一个访存操作的意义是不同的
通过时钟,固定个时钟周期对应一个机器周期,来确定从前的访存操作发生在哪个周期
- CPU访存的四种性质:
-
指令周期的数据流
- 指令周期数据流:
PC给出地址,给MAR,CU发出读命令,通过控制总线到存储器,通过数据总线将数据给MDR,将MDR的数据给IR,CU发出PC+1指令
- 间址周期数据流:
- 执行周期数据流
不同指令不同 - 中断周期数据流:
CU给出断点保存位置,给MAR,再地址总线,存储器中,发出写命令,PC将寄存器值存放到MDR,存入内存,CU给出中断服务程序地址。
- 指令周期数据流:
指令流水
-
如何提高机器速度
- 提高访存速度:
高速芯片,cache,多体并行 - 提高IO和主机之间的传输速度
中断,DMA,通道 - 提高运算器速度
高速芯片,改进算法,快速进位链 - 提高整机处理能力
高速配件,改进系统结构,开发系统并行性
- 提高访存速度:
-
系统并行性:
- 并行概念:
- 并发:两个或多个以上时间在统一时间段发生
- 同时:连个或多个时间在同一时刻发生
- 并行等级:
- 过程级,程序,进程 粗粒度,通过软件实现
- 指令级,指令之间,指令内部 细粒度,硬件实现
- 并行概念:
-
指令流水的原理:
-
影响指令流水的效率因素:
执行时间大于取值时间,使用指令部件缓冲区,当执行部件空闲就会取指令部件缓冲区中取出指令
其中的FO为取操作数,WO为存放结果,FI为取指令
指令预取技术:利用空闲时间,将多条指令预取到CPU中解决方法:后推法,旁路技术(将发生冲突的结果直接写入第二条指令的输入,节约时间)
-
流水线性能:
-
吞吐率:单位时间内流水线完成的指令或输出结果的数量
m段流水线,每段时间为t- 最大吞吐率:完全未发生冲突
Tmax=1/t - 实际吞吐率,连续处理n条指令的吞吐量
Tp=n/m * t+(n-1) * t实际吞吐量就是求出处在实际工作情况下,每条指令的平均执行时间:(m * t+(n-1) * t)/n;再用1/每条指令的平均执行时间,得到的是n/(m * t+(n-1) * t),也就是单位时间可以执行的指令数
最大吞吐量和实际吞吐量的区别就在于:最大吞吐量没有将流水线开始时的状况加入计算,只计算了在第一条指令执行完后,流水线进入平稳状态后的吞吐量
- 最大吞吐率:完全未发生冲突
-
加速比:
* 效率:
-
-
其他流水技术:
这个和增加流水线级数有什么区别:流水线级之间有锁存器,用来存放上一级完成的结果,送入下一级,当下一级空闲就取出指令,在超流水技术中,相同级之间的不同段不需要加入这样的锁存器
中断系统:
-
概述:
-
引起中断的各种因素
- 人为设置转管程序
- 程序性事故
溢出,操作码不能识别,除法异常 - 硬件故障
- IO设备中断
- 外部事件
- 人为设置转管程序
-
中断系统要解决的问题
- 各中断源如何向CPU提出中断
- 多个中断源提出中断如何
- CPU在什么条件,什么时间,方式响应中断
- 如何保护现场
- 如何找到入口地址
- 如何恢复现场
- 处理中断过程中,出现新中断怎么办
-
中断请求标记和中断判优逻辑
- 中断请求标记
- INTR 一个中断源对应一个INTR
- 多个INTR组成了中断请求标记寄存器
- 中断请求标记
-
中断判优逻辑
- 硬件实现(排队器)
- 排队器分散在各个中断源的接口电路中,链式排队器
- 见第五章
- 集中在CPU中
- 排队器分散在各个中断源的接口电路中,链式排队器
- 软件实现:
- 硬件实现(排队器)
-
入口地址
- 硬件向量法:
- 软件查询法:
- 硬件向量法:
-
-
中断响应:
- 响应的条件:
- 允许中断触发器 EINT=1
- 响应中断的时间
- 通常情况为指令结束之后,查询并执行中断
- 通常情况为指令结束之后,查询并执行中断
- 中断隐指令:
- 保存程序断点
- 断点存放在指定位置
- 寻找服务程序入口地址
- 向量地址->PC 硬件方式
- 中断识别程序入口地址M->PC 软件方式
- 硬件关中断
- EINT置为0
- INT中断标记
- EINT允许中断
- R-S触发器
- 排队器中只要有一个请求了中断,当EINT为1则通过或门和与非门,得到INT为0,表示有中断请求,这时0信号通过非门,将EINT的R置为1,EINT为0,表示不可以被中断,同时排队器通过地址形成部件得到中断源地址。
- RS触发器:
S=0,R=0时候,Q状态保持不变。
S=1,R=0时候,Q状态被设置为1.
S=0,R=1时候,Q状态被设置为0.
S=1,R=1时候,Q状态不确定。
- EINT置为0
- 保存程序断点
- 响应的条件:
-
保护现场:
- 保护现场:
- 断点 中断隐指令
- 寄存器内容 中断服务程序
- 恢复现场:
- 中断服务程序
- 中断服务程序:
- 保护现场
- 其他服务程序
- 恢复现场
- 中断返回
- 保护现场:
-
多重中断:
- 在执行中断服务程序过程中,又被中断了,当该中断优先级高,中断当前中断服务程序
- 实现多重中断的条件:
- EINT,提前设置开中断指令
-
屏蔽技术:
-
屏蔽触发器的作用
第一种表示在发出中断时使用mask,来屏蔽某个中断的提出,
第二种表示在中断提出后,在即将进入排队器时,于mask做与非运算让某个中断不能进入排队。
每个中断源的中断屏蔽字对应一个位,可以通过这样的设置来决定,当某个中断请求发出,该将各个中断源的中断屏蔽字设为什么 -
屏蔽技术可以改变处理优先级
- 响应优先级 不可改变
- 处理优先级 可以改变
响应优先级指定是,当某个时刻某有中断执行,需要选择哪个进入,处理优先级指的时,当某个低优先级中断执行时,可以被高优先级中断打断
-
新屏蔽字设置:
置屏蔽字,是将某个中断的屏蔽字设置到MASK中,也就是设置处理优先级,恢复屏蔽字是将MASK设置到初始,也就是恢复到响应优先级
-
-
多重中断的断步保护:两种方法