CPU功能和结构
cpu的功能
- 指令控制
控制指令的执行,即完成取指令,分析指令,执行指令的操作;- 操作控制
控根据指令生成操作信号,并将其送入相应的部件,进而操作这些部件进行相应的动作;- 时间控制
对各种操作加以时间上的控制;- 数据加工
对数据进行算术逻辑运算:- 中断处理
对计算机运行过程中的异常情况和特殊请水的处理。
CU 和 ALU 的功能
- CU 功能
1.取出指令,并指出下一条指令在下存中的强暖
2.对指令译码,产生相应的操作信号进而控制部件进行相应的动作,
3.指挥并控制CPU ,主存和输入喻出设备之间的数据流向。- ALU 功能
执行算数和逻辑运算,并执行逻辑测试。
cpu结构组成
cpu中的寄存器
●通用寄存器
数量多,功能多,对用户可见,可以由程序编址;
ACC ,是一个通用寄存器。
例如:register int i =0;//定义了一个通用寄存器变量
●专用寄存器
1.程序计数器( PC )
2.指令寄存器( IR )
3.存储器数据寄存器( MDR )
4.存储器地址寄存器( MAR )
5.状态标志寄存器( PSWR )
补充:CPU中有一些重要的寄存器,
1.程序计数器(PC)
用于存放指令的地址。当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指出新的指令地址。
2.状态寄存器
用于记录运算中产生的标志信息。状态寄存器中的每一位单独使用,称为标志位。标志位的取值反映了ALU当前的工作状态,可以作为条件转移指令的转移条件。典型的标志位有以下几种:进位标志位©、零标志位(Z)、符号标志位(S)、溢出标志位(V)、奇偶标志位§。
3.通用寄存器组
是CPU中的一组工作寄存器,运算时用于暂存操作数或地址。在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。
4.累加器(accumulator):
累加器是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间地保存一个数据。累加器是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间地保存一个数据。
指令执行过程
指令周期
取指周期的数据流
1.当前指令地址送至存储器地址寄存器,记作 :(PC)->MAR;
绿色为地址总线,红色为数据总线,橙色为控制总线
2.向主存 发送读操作命令,启动主存做读操作,记作:1->R;
绿色为地址总线,红色为数据总线,橙色为控制总线
3.将MAR所指主存单元中的内容经过数据总线送入MDR,记作:M(MAR)-> MDR;
绿色为地址总线,红色为数据总线,橙色为控制总线
4.将MDR中的指令送入IR,记作(MDR)-> IR;
绿色为地址总线,红色为数据总线,橙色为控制总线
5.形成下一条指令地址(由CU发出信号控制),记作:(PC)+1 ->PC;
绿色为地址总线,红色为数据总线,橙色为控制总线
间接取值周期的数据流
1.将指令的地址码送入MAR,记作:Ad(IR)-> MAR;
绿色为地址总线,红色为数据总线,橙色为控制总线
2.向主存 发送读操作命令,启动主存做读操作,记作:1->R;
绿色为地址总线,红色为数据总线,橙色为控制总线
3.将MAR所指主存单元中的内容经过数据总线送入MDR,记作:M(MAR)-> MDR;
绿色为地址总线,红色为数据总线,橙色为控制总线
4.将MDR中的指令送入IR,记作(MDR)-> Ad(IR);
绿色为地址总线,红色为数据总线,橙色为控制总线
中断周期的数据流
说明:
如果程序断点存入堆栈,且进栈操作是先修改栈指针后存入数据,则将(1)改为(SP)-1->SP,且SP->MAR
1.将特定的地址a送至MAR(假设将程序断点存入主存地址a处),记作:a-> MAR;
2.向主存 发送读操作命令,启动主存做写操作,记作:1->w;
3.(保存断点即为保存PC里面的内容)故将断点(PC内容)送入MDR ,记作:PC-> MDR;
4.将MAR的内容通过数据总线写入MAR所指示的存储单元内,记作:MDR-> M(MAR);
5.将向量地址形成部件的输出送至PC,为下一个指令的取值周期做准备,记作:向量地址 -> PC;
一、
存放指令的寄存器是指令寄存器( IR ),
存放程序状态字的寄存器是程序状态字寄存器( PSWR ),
这些寄存器都不属于通用寄存器。其次,通用寄存器并不一定本身都具有计数和移位功能。
二、
通常, CPU 中设置有多个通用寄存器,通用寄存器可以由程序编址访问。通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。另外,通用寄存器的内容一般都是可被程序员改变的,并且改变之后并不影响机器的正常运行,所以像指令寄存器、数据寄存器、状态寄存器都不属于通用寄存器。