中央处理器
一、基本概念以及名词
-
运算器主要组成:
- 算术逻辑单元ALU
- 暂存寄存器
- 累加寄存器ACC
- 通用寄存器组(可见)
- 程序状态字寄存器(可见)PSW
- 位移器
- 计数器CT
控制器的主要组成:
- 程序计数器PC
- 指令寄存器(不可见)IR
- 指令译码器
- 存储器地址寄存器(不可见)MAR
- 存储器数据寄存器(不可见)MDR
- 时序系统
- 微操作信号发生器
-
指令周期:CPU从主存中取出并执行一条指令的全部时间
机器周期:在同步控制的机器中,执行指令周期中一步相对完整的操作所需的时间;用来表示指令周期
时钟周期:计算机主时钟的周期时间,对应一个;节拍或者T周期,CPU操作最基本单位,对应一个微操作所需要的的时间
存取周期:存储器进行两次独立存储操作所需最小间隔时间
-
一个完整的指令周期如下
4个工作期间都有访存操作。取值周期为了取指令,间址周期为了取有效地址,执行周期为了取操作数,中断周期为了保存程序断点
4.5段流水线:IF、ID、EXE、MEM、WB
- IF:取指,所有指令公有部分,访存取指到IR
- ID:译码,所有指令公有部分,将IR的指令译码,此时也有默认取寄存器数的过程
- EXE:运用ALU,其中加法取反等运算指令直接对操作数进行运算,访存指令用于计算下地址
- MEM:访存指令用于访存过程,不访存的指令直接跳过
- WB:运算指令将结果输出到寄存器,load指令访存写回寄存器
ps:只有EXE部分使用ALU。IF、MAM都可能访存,通常设置指令Cache和数据Cache避免资源冲突。IF、ID不收指令类型影响
二、需要理解的思想
- CPU的具体功能包括:指令控制、操作控制、时间控制、数据加工、中断处理
- CPU中专用寄存器:PC、IR、MDR、MAR、PSW
- 指令总是根据程序计数器从主存中读出
- 控制器可以区分存储单元中存放的是指令还是数据
- 中断周期之前是执行周期,之后是下一条指令的取指周期
- 数据通路的功能是实现CPU内部的运算器与寄存器以及寄存器之间的数据交换
- 将控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。存放未指令的控制存储器的单元地址称为微地址
- 主存储器在CPU外部,用于存放程序和数据,用RAM和ROM实现;CPU内部的控制存储器(CM)用于存放微程序,用ROM实现
- 机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微指令的入口地址送入CMAR
- 取值微程序中,除了第一条微指令外,其余微指令的地址均由上一条微指令的下地址字段直接给出,记为Ad(CMDR)->CMAR,为断定方式
- 从内存读出的指令流流向控制器,从内存读出的数据流流向运算器
- 一条指令对应一个微程序,一个微程序由许多微指令组成,一条微指令会发出很多不同的微命令
三、常见误区
- 冯诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们是依据指令周期的不同阶段
- 内部总线是指同一部件,如CPU内部寄存器和运算部件之间的总线;系统总线是指同一台计算机系统的各个部件,如CPU、内存、通道和各类I/O接口相互连接的总线
- 在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非只是微程序控制器的专有概念
- 流水线方式并不能缩短一条指令的执行时间,但对于整个程序来说,可以大大增加吞吐率
- 取指阶段是将现行指令从主存中取出并送至指令寄存器,是公共操作,每条指令都要运行,不需要操作码的控制
- 指令流水线数据通路中,包括程序计数器、算术逻辑运算部件、通用寄存器组、取指部件,不包括控制部件
- 按序流动的流水线只有可能发生RAW相关
- 流水段间有用于缓冲间传送数据、进行各种准备和发送功能的开销;还有用于流水线优化和存储器冲突处理的控制逻辑的开销;如果单纯增加流水线段不一定让指令执行变快。
四、一些冷知识
- 中断周期的进栈操作是SP减1,因为计算机中的堆栈都是向低地址增加。所以进栈操作是减1而不是加1
五、经典题目
(微指令格式)
(指令流水错误的产生于解决)
(指令系统、存储管理、CPU综合)