目录
8.1CPU的结构
8.1.1CPU的功能
1.控制器的功能
取指令、分析指令、执行指令,发出各种操作命令、控制程序输入及结果的输出、总线管理、处理异常情况和特殊请求
操作控制、指令控制、时间控制、处理中断、数据加工
2.运算器的功能
实现算术运算和逻辑运算
8.1.2 CPU结构框图
- IR指令寄存器(IR,Instruction Register),PC程序计数器(PC,Program counter)
8.1.3 CPU的寄存器
用户可见寄存器:通用寄存器、数据寄存器、地址寄存器、条件码寄存器
2.控制和状态寄存器:PC-MAR-M-MDR-IR
8.1.4 其他
其他部分还包括CU(控制单元)、中断系统以及ALU。
CU产生全部指令执行的时候的微操作命令序列,可使用组合逻辑设计或微程序设计。
8.2 指令周期
8.2.1 基本概念
指令周期,取出并执行一条指令所需要的全部时间。
2.每条指令的指令周期不同
有些指令周期没有执行周期——例如空操作(NOP);
有些指令的取址周期和执行周期是等长的——add mem
有些指令的执行周期比较长——mul mem
3.具有间接寻址的指令周期
因为寻址方式的不同,可能是间接寻址,所以在执行周期中要取出操作数,需要进行两次访存,那么这时候,周期划分为:取址周期、间址周期、执行周期。
那么,这个时候,间址周期执行的是将操作数的地址从主存中取出,执行周期执行的是取出操作数并执行相应的操作并把结果保存在给定的寄存器当中。
4.带中断的指令周期
如果程序程序执行的过程中有中断,就要添加一个中断周期:如果有中断请求的话,我们就要去响应中断:保存断点,形成中断服务程序的入口地址,硬件中断。
指令周期
在指令周期中,至少包含了1个周期:取址周期
在取址周期后,需要判断是否有间址周期,如果没有就进入到了执行周期,在执行周期过程中,需要判断有没有中断程序,如果有,就响应中断:保存断点,生成中断服务程序入口,硬件关断点;如果没有,就进入下一个取址周期
CPU工作周期的标志
由于处在不同的指令周期,控制器需要做不同的操作,所以控制器在指令周期的不同时段,需要发出不同的控制命令。控制器也要知道当前处于指令周期的哪一个阶段。
CPU工作周期:取指令、取地址、存取操作数或结果、存数据断点。
取指周期、间址周期、执行周期、中断周期。
3.2.2指令周期的数据流
1.取值周期数据流
目标:需要将PC中的地址取出,并存在IR(指令寄存器中)。
步骤:先将PC中的指令地址送到MAR(主存地址寄存器)中,再通过地址总线送到存取器中,然后CU通过控制总线将存储器中的数据读出来并通过数据总线将数据送到MDR中,然后再送到IR中。但是,这样还没有完,CU还会将PC+1,使得PC指向下一条指令所在的地址
2.间址周期数据流
间址周期说明IR中或者是MDR中保存的是操作数的地址。
假设我们的操作数的地址保存在了MDR中:
首先,MAR先从MDR中将数据地址的地址读出,然后通过地址总线传到存储器中,CU发出控制信号,并通过控制总线将地址读出通过数据总线放回到MDR中。
3.执行周期数据流
不同指令执行周期数据流不同
4.中断周期数据流
我们要知道中断周期我们做了什么操作:
保存断点
生成中断服务程序入口地址
硬件关闭断点
CU决定了把中断保存在内存单元的哪一个地址(保存断点是一个写操作)
首先,我们需要保存断点,但是有谁知道断点需要保存在哪里呢——CU,所以第一步是将CU中的地址传到MAR再通过地址总线传到存储器中,那么,我们是要保存当前断点的地址,当前断点的地址在哪里有呢——PC,所以第2步我们需要将PC的地址传到MDR通过数据总线传到存储器中。而中断程序的入口地址是由CU给出,CU直接将入口地址放