一、CPU的架构体系
目前市场上的CPU架构体系主要分为冯诺依曼结构和哈佛结构两类。其中,x86架构本质上就是冯诺依曼结构,ARM架构本质上就是哈佛结构。前者广泛应用在PC端,比如主机、笔记本、服务器等;比如后者主要应用在移动端,比如手机、平板等。
1、冯诺依曼结构:数据和指令统一编址
- 用寄存器和指令周期来区分数据和指令。例如Code Segment(CS)即代码段,存储代码;Data Segment(DS)即数据段,存储数据。
- 通过不同的时间段来区分指令和数据,取指阶段取出的就是指令,执行阶段取出的就是数据。
- CPU工作流程:取指令、译码、执行
2、哈佛结构:数据和指令独立编址
- CPU工作流程:取指令、译码、执行
- 相比于冯诺依曼结构,哈佛结构效率更高,可以并行执行指令。
冯诺依曼结构和哈佛结构的区别
3、下面是对上图的几个引申知识点:
时钟周期也称为振荡周期:CPU无非就是开关闭合电路组成,定义为时钟脉冲的倒数。是计算机中的最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。
机器周期:常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。
指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。
二、CPU简介
CPU从逻辑上可以划分为三个模块:控制单元、存储单元、运算单元。如图所示:
-
控制单元:控制单元是整个CPU的指挥控制中心,由程序计数器PC(Program Counter), 指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
-
运算单元:是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
-
存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。
三、CPU运行原理
CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去。
- 取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般是这个样子滴:
操作码就是汇编语言里的mov,add,jmp等符号码;操作数地址说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。 - 指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。
- 执行指令,分两个阶段“取操作数”和“进行运算”。
- 修改指令计数器,决定下一条指令的地址。