大家好,欢迎来到IT知识分享网。
目录
一、CPU的功能
中央处理器(CPU)由 运算器 和 控制器 组成。
运算器负责数据加工,也就是对数据进行算术和逻辑运算;而控制器则需要完成计算机各部件之间的协调和控制,保障每一条指令按规定的执行步骤正确执行,还要处理各项紧急事件。
计算机核心的功能就是自动执行一系列指令,这项工作主要由 CPU 中的控制器来完成。具体来说,指令的执行过程包括了 取指令、分析指令 和 执行指令 三个步骤。
- 取指令:控制器能够自动地从存储器中取出指令,并且按预定的顺序依次取下一条指令。这要求控制器可以自动形成要执行的指令地址,并发出取指命令将对应的指令从主存取到控制器中。
- 分析指令:首先,控制器需要分析指令需要完成什么操作,从而发出对应的操作命令;其次,控制器需要分析操作数的地址,计算出有效地址。
- 执行指令:根据分析出的 “操作命令” 和 “操作数地址”,控制器就可以形成操作控制信号序列, 通过对运算器、主存以及 I/O 设备的操作,执行每条指令。
除此之外,控制器还必须能控制程序的输入和运算结果的输出,以及对总线(Bus)的控制,甚至需要处理一些运行中的异常情况和特殊请求。
所以总结起来,CPU 的功能包括:
- 数据加工:对数据进行算术和逻辑运算。
- 指令控制:控制程序的顺序执行,完成取指令、分析指令和执行指令的操作。
- 操作控制:产生完成每条指令的一系列操作命令,把各种控制信号送往相应的部件,使这些部件按指令的要求进行工作。
- 时间控制:对各种操作加以时间上的控制,为每条指令按时间顺序提供应有的控制信号。
- 中断处理:对计算机运行中出现的异常情况和特殊请求进行处理。
二、CPU的基本结构
根据 CPU 的功能可以看出,数据的运算需要由运算器来完成,剩下的功能则由控制器完成。
1.运算器
运算器需要对数据进行运算,所以核心部件是 算术逻辑单元(ALU),此外还有一系列的 寄存器 用来缓存数据、运算结果和状态。
运算器中的寄存器主要有暂存寄存器(X)、累加寄存器(ACC)、通用寄存器组(GPRs)、程序状态字寄存器(PSW)等。
- 暂存寄存器:用于暂存从主存读来的数据。
- 累加寄存器(ACC):用于暂存 ALU 的运算结果,可以作为加法运算的一个操作数再次输入 ALU。
- 通用寄存器组:通用功能的一组寄存器,主要用于存放操作数和地址信息。
- 程序状态字寄存器(PSW):对于算术/逻辑运算指令或测试指令的运行结果,专门用一个寄存器 PSW 来保存各种状态信息,也叫 条件码寄存器。典型的条件码有溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。
这些寄存器对于程序员来说,除了暂存寄存器一般是透明的,其它都是可见的。
2.控制器
控制器是计算机中负责协调控制的部件,主要功能就是取指令、分析指令、执行指令。
控制器需要根据指令中操作码、指令的执行步骤以及当前状态字信息,来生成一系列对计算机各部件的控制信号(也叫做 “微操作”),这个专门的部分就叫做 “控制单元”(CU)。
为了准确地取出指令,需要一个寄存器来保存下一条指令的地址,这就是 程序计数器(PC);取出的指令同样也需要先保存下来再做分析,存放指令的寄存器就是 指令寄存器(IR),另外还需要一个 指令译码器(ID)来对指令操作码进行译码。最后,还需要有 中断系统 来处理异常情况和特殊请求。
MAR 和 MDR 一般也会集成在控制器中。因此控制器内的寄存器主要有:
- 程序计数器(PC):存放下一条指令的主存地址。
- 指令寄存器(IR):存放取出的指令。
- 主存地址寄存器(MAR):存放要访问的主存单元的地址。
- 主存数据寄存器(MDR):存放要向主存写入或从主存读出的信息。
这些寄存器的功能主要是控制指令的执行过程,因此大多数情况下对用户是透明(不可见)的。不过一般情况下计算机允许汇编程序员访问程序计数器(比如 x86 架构下的 IP),因此 PC 可以认为对汇编程序员来说是可见的。
除此之外,CPU 中一般还会包含 高速缓存(Cache)和 内存管理单元(MMU),以及用于数据传输的内部数据总线和产生时序信号的时序电路。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/146527.html