纯净基地 - 专注分享最好用的电脑系统

当前位置: 纯净基地 >  微软资讯 >  干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术

干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术

更新时间:2023-11-17 11:33:54作者:czlaby
【干货】一文搞懂CPU的工作原理


3)缓存(Cache):主要作用是CPU与主存的缓冲层,那么Cache的速度应该接近于CPU,基本上是与CPU同频运作。

4)主存:分别存储了各种数据,包括代码段、数据段、字符串、地址等。它的读写速度相对寄存器、cache慢了很多,但是单位成本却低了很多。通过系统中的存储金字塔设计,利用程序的时间及空间局部性原理,可以很好地利用主存的价格优势,弥补读写时间慢的问题。

5)总线(BUS):主要作用是完成地址、数据的传输。它就像一条高速公路,快速完成各个单元间的数据交换,也是数据从内存流进和流出CPU的地方。CPU总线(前端总线)传输速率决定着CPU与内存之间传输数据的速度快慢。CPU总线速率越高,CPU从内存取指令和数据的等待时间越少,运行程序速度越快。总线又细分成数据总线、地址总线和控制总线。

CPU指令集架构(Instruction Set Architecture,简称ISA)是CPU和软件之间的桥梁。ISA包含指令集、特权级、寄存器、执行模式、安全扩展、性能加速扩展等方面。其中,指令集是ISA的重要组成部分,通常包含一系列不同功能的指令,用于数据搬移、计算、内存访问、过程调用等。CPU在运行操作系统或者应用程序的时候,实际上是在执行它被编译后所包含的指令。

CPU指令是CPU规定执行操作的类型和操作数的基本命令。指令是由一个字节或者多个字节组成(对于arm64,指令长度是4个字节),其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。有的指令中也直接包含操作数本身,且用二进制序列表示。

图片

根据执行指令的特征,CPU分为精简指令集计算机(Reduced Instruction Set Conputer,简称RISC)和复杂指令集计算机(Complex Instruction Set Conputer,简称CISC)。

图片

CPU工作运行原理:CPU从cache或主存中取出指令,然后放入指令寄存器,控制器对该指令进行译码。最终把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作序列,从而完成一条指令的执行。

图片

1)取指:取指令(Instruction Fetch,简称IF)阶段是将一条指令从cache或主存中获取指令到指令寄存器的过程。CPU中有一个程序计数器(Program Counter,简称PC)寄存器,其中保存着将要执行指令的地址。指令读取是通过将PC寄存器的值,输出给cache或者内存,然后由cache或内存返回该值对应地址中的指令。当一条指令被取出后,PC中的数值将根据指令字长度自动递增。


2)译码:取出指令后,CPU会立即进入指令译码(Instruction Decode,简称ID)阶段。在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。指令有很多种,有进行各种运算的指令、控制下一条命令的指令、对内存进行读写的命令,还有对CPU进行控制的指令。

3)执行:在取指令和指令译码阶段之后,接着进入执行指令(Execute,简称EX)阶段。此阶段的任务是完成指令所规定的各种操作,实现具体指令的功能。为此,CPU的不同部分的组件被连接起来,以执行所需的操作。例如,执行一个加法运算,ALU将会连接到一组输入和一组输出。输入提供了要进行相加运算的数值,而输出求和后的结果。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,运算溢出(Arithmetic Overflow,简称AO)标志可能会被设置。

4)访存:根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数的阶段。此阶段的任务是:根据指令中的地址码,经过MMU将虚拟地址转化成物理地址。根据物理地址得到操作数在cache或主存中的地址,并从cache或主存中读取该操作数用于运算。

5)写回:结果写回(Write Back,简称WB)阶段,一般把执行指令阶段的运行结果数据,写回到内部寄存器中,以便被后续的指令快速地存取。在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生。CPU就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期顺序取出下一条指令。

干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术干货一文搞懂CPU的工作原理3.缓存(Cache)- 提高CPU运行效率的核心技术

Copyright ©  2012-2024 纯净基地 版权声明 网站地图