CPU
功能
- 指令控制:取指、分析、执行
- 操作控制:一条指令的功能由若干操作信号组合实现
- 时间控制
- 数据加工
- 中断处理
基本结构
运算器
ALU:算术/逻辑运算
暂存寄存器:暂存从主存读来的数据,透明
ACC:通用寄存器,暂存ALU的结果
X:存放操作数和各种地址信息,如堆栈指针SP指示栈顶地址
PSW:OF、SF、CF、ZF
移位器
计数器:控制乘除运算的操作步数
控制器
CU的输入信号来源:
指令操作码、时序、状态条件
标志:来自执行单元的反馈信息
CU的时序控制:同步控制、异步控制、联合控制、人工控制
同步控制:定长的机器周期、不定长的机器周期、中央控制和局部控制相结合
PC:指出下一条指令在主存中的存放地址
IR:存放当前正在执行的指令
指令译码器:对操作码字段译码,向控制器提供特定的操作信号
MAR
MDR
时序系统
微操作信号发生器:产生控制整个计算机系统所需的各种控制信号
透明的寄存器:MAR、MDR、PC、IR
不透明的寄存器:通用寄存器、数据寄存器、地址寄存器、条件码寄存器
指令执行过程
- CPU读取PC存储的指令内存地址,CPU的控制单元操作地址总线访问指令内存地址,通知内存准备数据并通过数据总线传给CPU,CPU将指令数据存到指令寄存器
- CPU分析指令寄存器的指令,确定类型和参数,若是计算类型指令则交给ALU,若是存储类型指令则交给控制单元
- CPU执行指令后PC自增
指令周期
指令周期 > 机器周期 > 时钟周期
- 指令周期:CPU从主存取出并执行一条指令的时间
- 机器周期:所有指令执行过程的一个基准时间,通常以存取周期作为机器周期
- 时钟周期:CPU操作的最基本单位、控制计算机操作的最小时间单位,也称为节拍、T周期;时钟频率的倒数
机器周期、节拍组成多级时序系统
上述4个周期都有CPU访存操作:
取指周期FE:取指令
- PC->MAR,1->R
- M(MAR)->MDR
- MDR->IR
- OP(IR)->CU
- (PC)+1->PC
间址周期IND:取有效地址 - Ad(IR)->MAR,1->R
- M(MAR)->MDR
- MDR->Ad(IR)
执行周期EX:(访存指令)取操作数
____没有统一的数据流
中断周期INT:保存程序断点
- SP-1->SP
- SP->MAR
- PC->MDR
- MDR->M(MAR),向量地址->PC
- 0->EINT
存数指令 STA
- Ad(IR)->MAR,1->W
- AC->MDR
- MDR->M(MAR)
间接寻址的存数指令“STA @ X”
- X(MDR)->MAR
- M(MAR)→MDR
- MDR→MAR
- AC→Bus→MDR
- MDR→M(MAR)
指令执行方案
单指令周期:所有指令选用相同的执行时间,串行执行
多指令周期:串行执行
流水线:并行执行
指令流水线
提高处理机的并行性
流水线技术:时间上,将一个任务分解成几个子阶段,在不同的功能部件执行
超标量处理机:空间上,一个处理机内设置多个执行相同任务的功能部件并行工作
冒险及解决
结构冒险(资源冲突):多条指令在同一时刻争用同一硬件资源
数据冒险(数据冲突):下一条指令会用到当前指令计算出的结果
写后读、读后写、写后写
控制冒险(控制冲突):遇到改变指令执行顺序的情况,会改变PC值,造成断流
解决方式:
- 推迟指令
- 旁路技术(直接将执行结果送到其他指令所需要的地方)
高级流水线技术
超标量流水线技术(动态多发射技术):每个时钟周期内可并发执行多条独立指令,以并行操作方式将两条或多条指令编译并执行。超标量的指令来自同一标准的指令流
超流水线技术:将一些流水线寄存器插入到流水线段中,好比将流水线再分道,提高了原来流水线的速度,在一个时钟周期内一个功能部件被使用多次
超长指令字技术(静态多发射技术):由编译程序挖掘指令间潜在的并行性,组合成一条具有多个操作码字段的超长指令字
流水线结构
指令流水线、运算流水线
异常和中断
定义
异常:CPU内部产生的意外事件,内中断,与正在执行的指令相关的同步事件
中断:CPU外部的设备向CPU发出的中断请求,外中断,与正在执行的指令无关的异步事件
分类
异常的分类:(按照发生原因和返回方式)
- 故障:引起故障的指令执行后、执行结束前被检测到的异常,如缺段缺页、非法操作码、除数为0
- 自陷(Trap):预先安排的断点
- 终止:随机发生的使计算机无法继续执行的硬件故障
引起中断的因素
人为设置的中断、程序性事故、硬件故障、I/O设备、外部事件
区别
- 缺页、溢出等异常事件由特定指令在执行过程产生,中断不和任何指令关联,不阻止任何指令完成
- 异常的检测由CPU自身完成,不必通过外部的某个信号通知CPU;CPU必须通过中断请求线获取中断源的信息,才能知道哪个设备发生了哪种中断
屏蔽技术
案例:01234->14203
屏蔽字填写原则:
- 对角线全是1,关于对角线对称的一对是0与1
- 每行的1的个数递减,为54321
- 最强的该列全0(自己除外),最弱的该列全1
微程序设计
将一条机器指令编写为一个微程序,每个微程序包含若干微指令,每个微指令对应若干微操作命令
微程序控制单元的核心是控制存储器,存放全部微程序
微指令的基本格式:操作控制(发出控制信号)+顺序控制(指出下地址)
微程序可看作是解释机器指令,毫微程序可看作是解释微程序,毫微指令是解释微指令
原理
取值阶段:
- PC->MAR,1->R
- Ad(CMDR)->CMAR
- M(MAR)->MDR
- Ad(CMDR)->CMAR
- MDR->IR
- OP(IR)->微地址形成部件->CMAR
执行阶段:
- OP(IR)->微指令形成部件->CMAR
- CM(CMAR)->CMDR
- Ad(IR)->MAR,1->R
- Ad(CMDR)->CMAR
添加的微操作:
编码方式
- 直接编码
- 字段直接编码(显式编码)
- 字段间接编码(隐式编码)
- 混合编码
格式
水平型微指令:一次能定义并执行多个并行操作的微指令,有很强的并行操作能力
包括操作控制字段、判别测试字段、下地址字段
垂直型微指令:设置微操作码字段,由操作码规定微指令的功能,有严格的顺序结构
比较:
- 水平型并行操作能力强、效率高、灵活
- 执行一条机器指令所需微指令少、速度快
- 用较短的微程序结构换取较长的
若下地址字段为8位,微指令字长28位,则控制存储器的容量为256 X 28位
数据通路
数据通路:实现CPU内部的运算器与寄存器、寄存器与寄存器的数据交换
数据通路中各个部件之间的数据传输需要通过总线完成
多处理器的基本概念
SISD、SIMD、MIMD
单指令流单数据流(SISD)结构:
传统的串行结构,一个处理器和一个存储器
单指令流多数据流(SIMD)结构:
数据级并行,一个指令控制部件和多个处理单元
多指令流多数据流(MIMD)结构
硬件多线程
细粒度多线程:多个线程轮流交叉执行指令,多个线程直接的指令不相关,可以乱序并行执行。处理器可以在每个时钟周期切换线程
粗粒度多线程:仅在一个线程出现较大开销的阻塞时,才切换线程。流水线阻塞时,清除阻塞的流水线,新线程的指令开始执行前需重载流水线
同时多线程SMT:指令级并行的同时实现线程级并行,超线程