文章目录
- CPU主要功能
- CPU总体结构模型
- 运算部件
- 缓存部件
- 寄存器组(堆)
- 控制器
- 时序部件
CPU主要功能
CPU是取指令并执行指令的部件
CPU总体结构模型
运算部件
运算部件用于对操作数进行运算,主要是算术运算/逻辑运算
运算部件的基本组成如下:
缓存部件
缓存部件用于缓存从主存中读取的部分指令/数据 ,提高CPU从主存中读取指令/数据的效率,在CPU内部集成了多级缓存部件
寄存器组(堆)
寄存器用于存储各种用途的数据信息
部件选用:一般用小容量的多端口存储器来构成寄存器组,其中1个存储单元作为1个寄存器
-
通用寄存器:多个
- 通用寄存器有全局唯一地址,可通过地址码访问,可在机器指令中直接使用
- 通用寄存器主要用于提供操作数、地址码、存放运算结果等
-
暂存器
- 暂存器的主要特点是:多个,内部专用,无需分配地址码,不能在机器指令中使用
- 主要用于暂存产生的临时数据,以备在后续操作过程中使用
-
指令寄存器(IR)
- 指令寄存器只有1个,用于存放指令代码
- 从存储器(或者指令缓存)中读取到指令以后,就直接存入到指令寄存器中
-
程序计数器(PC)
- 程序计数器仅有1个,用来指明指令在存储器中的存放位置,即存储单元的地址码
【注】取指令结束后,PC保存的地址码自动修改,以指向下一条指令的存储单元,修改量取决于指令字长和存储器的编址单位
-
程序状态字寄存器(PSW)
程序状态字寄存器仅有1个,记录现行程序的运行状态和程序的工作模式
-
PSW - 特征位
特征位也叫标志位,反映CPU的当前状态
指令执行时,根据情况自动设置这些特征位,作为后续操作的判断依据,通常有5类:
-
PSW - 编程设定位
PSW中某些位或字段可通过程序来设定,以决定程序的调试、对中断的响应、程序的运行模式等
-
-
地址寄存器(MAR)
-
地址寄存器只有1个,读写存储器时,先要定位存储单元,因此设置MAR来存放目标单元的地址码
-
先将有效地址送入MAR,再启动后续的读写操作
-
-
数据寄存器(MDR)
- 数据寄存器只有1个,过渡性地存放CPU与主存之间交换的数据
- 无论是从主存读取的数据,还是写入到主存的数据,都要经过MDR
-
堆栈指针(SP)
-
堆栈指针仅有1个,固定存放堆栈的栈顶单元的地址码
-
根据这个地址码,去读写堆栈
-
【寄存器组 这部分的内容可以看我在 汇编专栏 中的 中央处理器CPU & 寄存器 这篇文章,对部分寄存器有详细介绍】
控制器
控制器主要用于:根据指令、时钟信号、外部信号等信息,产生各种控制信号(微命令),以便控制各种功能部件协同工作,完成指令
根据产生微命令的方式,有两类控制单元:
-
组合逻辑控制器
组合逻辑硬件电路 → 控制信号
-
微程序控制器
微程序译码 → 控制信号
控制器的主要工作内容:循环取指、执行、处理异常
控制器可分为两类:
- 硬布线控制器 (时序逻辑型) (硬件实现)
- 微程序控制器 (存储程序型) (软件实现)
时序部件
时序部件用于确保指令按照正确的顺序和时间序列进行执行,并与其他组件进行正确的协调
时序信号
时序信号是周期、节拍、脉冲等频率型信号序列,产生时序信号的部件称为时序发生器或时序系统,由1个低频振荡器和倍频逻辑组成
低频信号振荡器:它是一个低频脉冲源,能输出固定频率的基准脉冲信号(外频),作为系统时钟信号
系统时钟信号经过倍频放大以后,产生执行指令所需要的各种时序信号:
- 节拍信号,即CPU时钟周期信号
- 工作周期信号,即机器周期信号
- 指令周期信号
- 指令周期包括若干(≥2)机器周期
- 机器周期包括若干(≥1)时钟周期