- 控制器部分的内容算是让我对处理器有了更深一步的理解
- 学到汇编其实还是有些抽象,为什么机器指令就可以直接被机器识别并执行呢?
- 这才知道,机器指令之下还有微程序,细究起来最不可分的操作应当是微指令,多条微指令实现了一个指令的功能
- 进一步把指令细分为很多阶段(称为周期,如取指周期、执行周期等)的话,那在微指令和指令层次之间,还有一个指令的分段的中间层次,即多条微指令实现指令的某个阶段(如取指、读取等等)的功能,指令的多个阶段的功能就组成了这条指令的功能,多条指令又组成了程序来运行
- 一条微指令作为最基本的机器动作,按我理解就是,一条微指令就指明了哪些部件在这一步需要工作,哪些不需要工作。需要工作的就给“通上电”,不需要的就“断开”,部件通上了电也就会自己运行起来,电流就流通起来,像门电路这种就实现各种逻辑,最终完成一条微指令的操作
- 比如取指周期的安排
节拍 | 动作 |
---|---|
C1 | MAR <- (PC), R <- 1 |
C2 | MDR <- M(MAR) |
C3 | PC <- (PC)+1 |
C4 | IR <- (MDR), CU <-OP(IR) |
- 节拍是时序的控制信号,所有的动作都在时序的严格控制下
- C1节拍,PC的内容也就是下一条指令的地址送入MAR中,并置读信号为1有效
- C2节拍按照MAR的地址指示从主存中读取数据到MDR中,读取的是一条指令
- C3节拍PC自加1,指向下一条指令
- C4节拍讲MDR的指令送入IR指令寄存器,并将IR指令的操作码部分送入CU控制器准备译码
- 每一个“MAR <- (PC)”的小动作就由一个微指令来完成,只涉及少数几个部件。都是通过电信号来控制,那么按我的猜想,给PC的输出打开,给MAR的输入打开,电流自然流通,PC的内容也就传送到MAR中去了。不知道对不对,反正有电路控制下都可以实现。
组成与功能
- 处理器的工作就是在控制器CU的指挥下,按照“取指令 - 分析指令 - 根据寻址方式计算操作数地址- 取源操作数 - 处理源操作数 - 写目的操作数”的顺序,周而复始地解释指令。
- CU的功能就是,对指令进行分析(译码),按照一定时序,根据当前处理器状态,向计算机的各个部件发出控制信号/命令。
时序系统
- 操作有序的基础,即在时序的控制下。
简单来讲就是规定时间间隔,每个时间段内完成能完成的任务,完不成就分配两个时间段等等,但时间总是时间段的整数倍。
指令周期:处理器从主存取出一条指令并执行完该指令所需的时间
- 然而不同指令所需的时间不同,且同一指令的时间也受环境的影响,为了简化控制,一般都设计成节拍的某个整数倍——基准周期
- 基准周期称为机器周期或CPU周期,其长短取决于指令的基本操作和期间的工作速度
- 对于单周期处理器,所有指令的指令周期都是相同的,都等于一个机器周期。
- 为了保证适配所有的指令,所以指令周期就要选取最复杂指令所用的时间
- 多周期处理器,把一条指令的周期分为好几个部分来细化,最简单的两周期就分为“取指周期”和“执行周期”
- 多个周期之间总得有个基准,这个基准就是机器周期
- 为了保证一个机器周期内至少可以完成一个指令的基本操作(细化后的一个部分),一般选取花费时间较长的一次访存的时间(访存依赖于总线,所以一次访存的时间也叫总线周期)
- 一个标准的、同步总线的总线周期为4个节拍
三级时序
- 节拍
- 时钟脉冲,由一个频率相当精确和稳定的脉冲信号发生器按一定电压幅度,一定时间间隔连续发出的脉冲