计算机底层:CPU结构与组成原理、工作原理

CPU:中央处理器(CPU,英语:Central Processing Unit / Processor),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

6ceea05cfa4143aea9473b5c9cb66815.webp

54330476ed93470f86b995d4bf5fef18.png

6e0a31d958bd4ed19c9704a2b40bd265.png

 这是CPU的大致组成,易于理解。

解释:

ALU:这是逻辑运算单元,用于计算。如,加减乘除,位移操作,按位逻辑运算。

Registers:这是寄存器可用来暂存指令数据地址。其中地址反面:可以存放任何类型的地址,包括内存地址、I/O地址、中断向量地址等。

PC:这是程序计数器,程序计数器是用于存放下一条指令所在单元的地址的地方。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中(就是寄存器),此过程称为"取指令"。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

就是下一条指令的地址。

cache:这是高速缓冲存储器,位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。

区别寄存器和高速缓冲器:

1、寄存器:

寄存器是CPU内部的高速存储单元,主要用于存放程序运行过程中所使用的各种数据,寄存器的容量最小,但存取速度最高。

2、高速缓冲存储器:

简称高速缓存Cache,其存取速度与CPU速度相当,非常快,但成本高且容量较小(一般为几KB到几百KB),主要用来存放使用频率较高的少量信息。

高速缓存可以保存数据副本,访问高速缓存要比访问内存中的原始数据效率更高,速度更快。

扩展:CPU从内存拿东西,拿到的东西会先到高速缓冲器,然后再到寄存器。

CU和MMU暂时不做太多解释,会另外启一篇文章。

MMU(内存管理单元)是一种硬件设备,用于将虚拟地址映射到物理地址,以实现虚拟内存管理。它可以提供内存保护、内存分配和内存映射等功能,以确保系统的安全性和可靠性。
 

CU(控制单元)是一种硬件设备,用于控制CPU的指令流程,以及指令的执行和数据的传输。以确保系统的正确运行。

下面不会提到这两个

73e5491d2eae40168ad8b8be9bfed7ba.webp

总地来说,其实cpu分会三个单位:控制单元、数据单元、逻辑运算单元。

并且每个单元其实是由寄存器构成地。

376458210b9e4198ade96df9abedf857.png

CPU各个模块的由来:

首先,需要从语言开始,正常人很少会手语,这是因为我们有自己的语言,并且我们没有去学手语,那么手语是怎么来的呢?手语其实是一个一个动作产生来表达自己想法,而这些动作的规定了什么动作是什么意思,这才组成了手语。

同样,我们如果用灯泡来规定一种语言,可以规定打开或者关闭的意思,也可以规定打开几次或者关闭几次的意思,还可以规定通过间隔时间进行开关的意思。一系列的意思的组成就形成了一种语言,也就是灯泡语言。

到后来,出现了二进制。

再后来,通过电路的电路的开关,或是灯泡的开关,确定了0和1。

我们可以通过各种方式,确定灯泡的开关,可以是打开,然后灯泡亮,也可以是关闭,灯泡亮。也就是输入1可以输出1或者0,输入0可以输出1或者0。

之后,发明出了,与门、或门、异或门、与非门、或非门,可以理解为C语言的按位与、按位或、按位疑惑,就是输入两个数,输出不同的结果。就相当于两个开关控制一个灯泡。

通过各种门的结合就发明出了加法器:

a2e96fba228549f0b92b7f36fd05e0a3.png

        但是一个加法器只能算出一位,这种叫做半加器:

bc4ccc26cc934cea86bc289b68074295.png

        如果要算多位,只需要把他们串联起来就行了。此时就叫做全加器。

ab6cfc18dad846669ef22b9f4c5f643a.png

有了加法器,就可以得到加减乘除等等的运算,因为这些运算,都可以从+法中得到。

然后这些不同的运算结合后就得到了上面说的ALU

616d880ec7cb4a0989f9c48b794e52af.png        

 然后出现了时钟电路,当通电后,线圈产生磁场 把开关b拿下来,然后电就不通了,b又回去了,又通了。。。。

为什么需要这个时钟电路呢,因为程序在运算时,是需要同步的,但是如果一直通着电,程序就会停在那里,或者某个单元提前做事,或者没做,比如运算逻辑单元提前运算,如果3+5,如果运算单元先动了,而寄存器才把数据传到一半,或压根没传,那么就由可能算出错误答案,需要由时间才能分先后,最后才能得到8

再到后来出现了锁存器,这个东西输入什么就输出什么:

6c479e3fe0dc443480674d0b353ecc97.png

        

但是锁存器只有一位,那么8个锁存器就可以有8位,1024个锁存器就可以有1k,有了1k就可以有1G和1T,那么这是什么?这其实就是存储器。内存、寄存器。。。

有了存储器,我们就可以把数据放到内部,也开关吧地址放到内部,当程序执行的时候就会通过地址,找到数据。

有了这些,就出现了registers和pc以及cache

当程序执行时,通过地址找到数据,通过数字信号执行表达式,再通过pc找到下一行代码,然后再由时钟信号改变控制端,执行下一行代码,由此实现了程序的自动化。

d9aaba48fb824eb79fac0bbf4fed6985.png

 数据从内存到CPU是通过总线传输的。

但是底层任何数据或是地址都是由0和1组成的。

那么从内存到cpu的时候怎么知道是地址还是数据呢?

其实总线分为三条:

1.控制线

CPU从控制线读过来的是 指令(加减法之类的操作符)

2.地址线

CPU从地址线读过来的是 地址

3.数据线

CPU从数据线读过来的是 数据

一个程序的执行:首先把可执行文件存放在内存 ,再从main的起始地址,读出指令和地址,然后传入cpu,把进行运算后的结果返回内存。    

        

        489a677d5a5642e8822e887696bc3544.png

 CPU指令的执行流程

一、取指令阶段
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。

程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增。

二、指令译码阶段
取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。

在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。

三、执行指令阶段
在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。

此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。

四、访存取数阶段
根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。

此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运算。

五、结果写回阶段
作为最后一个阶段,结果写回(Write Back,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式。

结果数据经常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;

在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。

CPU内部细分与计算机工作过程(执行程序时,CPU与内存之间数据详细交替过程):

计算机底层:计算机工作过程_srhqwe的博客-CSDN博客

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

srhqwe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值