CPU中央处理器(上)

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 中设置有多个通用寄存器,通用寄存器可以由程序编址访问。通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。另外,通用寄存器的内容一般都是可被程序员改变的,并且改变之后并不影响机器的正常运行,所以像指令寄存器、数据寄存器、状态寄存器都不属于通用寄存器。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值